Skip to content

Commit 70059df

Browse files
committed
feat: 修改图标说明
1 parent e6b6bb6 commit 70059df

12 files changed

+45
-131
lines changed

app.config.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
export default defineAppConfig({
22
title: 'wiki3',
33
version: '1.2.19',
4-
sourceUrl: 'http://10.102.81.50/gitlab/admin3/wiki3',
5-
demoUrl: 'http://10.102.81.15:30294/Home',
4+
sourceUrl: 'https://github.com/vampirefan/admin3-docs',
5+
demoUrl: 'https://admin3.netlify.app',
66
})

components/Navbar.vue

+2-2
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ onMounted(() => {
3838
<div class="flex-grow" />
3939
<el-sub-menu v-for="link of navTree" :key="link._path" :index="link._path">
4040
<template #title>
41-
<AdminIcon :name="link.icon" />
41+
<Icon :name="link.icon" />
4242
<span class="text-lg font-bold">{{ link.title }}</span>
4343
</template>
4444
<el-menu-item
@@ -51,7 +51,7 @@ onMounted(() => {
5151

5252
<el-tooltip content="项目源码">
5353
<el-link :underline="false" @click="openUrl(appConfig.sourceUrl)">
54-
<AdminIcon name="i-logos-gitlab" class="mx-2 text-xl" />
54+
<Icon :name="appConfig.sourceUrl?.includes('github') ? 'i-logos-github-icon' : 'i-logos-gitlab'" class="mx-2 text-xl" />
5555
</el-link>
5656
</el-tooltip>
5757

components/Sidebar.vue

+2-2
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,12 @@ const route = useRoute()
1111
<aside class="sidebar">
1212
<el-menu class="mt" router :ellipsis="false" :default-active="route.path" unique-opened>
1313
<el-menu-item index="/" @click="navigateTo('/')">
14-
<AdminIcon name="i-twemoji-house-with-garden" />
14+
<Icon name="i-twemoji-house-with-garden" />
1515
<span class="text-base font-600">介绍</span>
1616
</el-menu-item>
1717
<el-sub-menu v-for="link of navTree" :key="link._path" :index="link._path">
1818
<template #title>
19-
<AdminIcon :name="link.icon" />
19+
<Icon :name="link.icon" />
2020
<span class="text-base font-600">{{ link.title }}</span>
2121
</template>
2222
<el-menu-item

components/admin/AdminDarkToggle.vue

+2-2
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ function toggleDark() {
77

88
<template>
99
<el-link :underline="false" @click="toggleDark">
10-
<AdminIcon v-if="color === 'dark'" name="i-twemoji-last-quarter-moon-face" />
11-
<AdminIcon v-else name="i-twemoji-sun" />
10+
<Icon v-if="color === 'dark'" name="i-twemoji-last-quarter-moon-face" />
11+
<Icon v-else name="i-twemoji-sun" />
1212
</el-link>
1313
</template>
File renamed without changes.

components/global/LinkCard.vue

+1-1
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ function handleClickLink(link: string) {
3333
@click="handleClickLink(link)"
3434
>
3535
<div>
36-
<AdminIcon v-if="icon" :name="icon" class="el-icon text-2xl" />
36+
<Icon v-if="icon" :name="icon" class="el-icon text-2xl" />
3737
<img v-if="image" :src="image" class="m-0 m-auto h-8 w-8">
3838
</div>
3939
<div class="mt1 text-sm">

content/1.guide/6.icon.md

+30-70
Original file line numberDiff line numberDiff line change
@@ -3,88 +3,67 @@ title: 图标
33
icon: i-twemoji-beaming-face-with-smiling-eyes
44
---
55

6-
图标是前端的灵魂,你可以直接使用官方的 `@iconify/vue` 组件来引入在线图标。或者使用项目封装的 `<AdminIcon />` 组件来使用离线打包进项目的 svg 和 iconify 图标。也可以直接使用 `unocss` 提供的图标预设。此外,项目还封装了`<AdminIconOnline />` 组件来使用在线图标
6+
图标是前端的灵魂,你可以直接使用官方的 `@iconify/vue` 组件来引入在线图标。或者使用项目封装的 `<Icon />` 组件来使用离线打包进项目的 svg 和 iconify 图标。也可以直接使用 `unocss` 提供的图标预设。
77

8-
## 使用`@iconify/vue` 组件来引入在线图标
8+
## 使用 `<Icon />` 图标组件
99

10-
1. 在入口页面 `app.vue` 中初始化在线图标的 api 服务地址
11-
```ts
12-
import { addAPIProvider, disableCache } from '@iconify/vue'
13-
addAPIProvider('', {
14-
resources: ['https://api.iconify.design'],
15-
})
16-
disableCache('all')
17-
```
18-
19-
2. 在页面中引用图标组件
20-
```vue
21-
<script setup lang="ts">
22-
import { Icon as IconifyIcon } from '@iconify/vue'
23-
</script>
24-
25-
<template>
26-
<IconifyIcon icon="ep:element-plus" />
27-
</template>
28-
```
29-
30-
## 直接使用 `<AdminIcon />` 图标组件
31-
32-
项目注册了可以全局使用的 `<AdminIcon />` 图标组件。
10+
项目封装了 `<Icon />` 图标组件来方便图标的引用。
3311

3412
::alert{type="danger" title="特别注意"}
35-
因为离线图标是按需引入的,UnoCSS无法通过动态的方式解析除`.jsx`, `.tsx`, `.vue` 等以外的如 `.ts`, `.js` 文件中的图标,所以如果出现无法显示icon图标的时候,可以尝试将图标的名称添加到 `@/unocss.config.ts` `safelist` 属性中
13+
因为离线图标是按需引入的,UnoCSS无法通过动态的方式解析除`.jsx`, `.tsx`, `.vue` 等以外的如 `.ts`, `.js` 文件中的图标,所以如果出现无法显示icon图标的时候,可以修改 `@/unocss.config.ts` 来实现手动引入
3614
```ts{}[@/unocss.config.ts]
3715
export default defineConfig({
38-
...
16+
// 方式 1. 添加 unocss 扫描文件类型,开发时需重启
17+
content: {
18+
pipeline: {
19+
include: [
20+
/\.(ts|vue|html)($|\?)/,
21+
]
22+
}
23+
},
24+
// 方式 2. 添加图标名称到 safelist 中
3925
safelist: [
4026
'i-twemoji-blue-book',
4127
'i-twemoji-books',
4228
'i-twemoji-rocket',
4329
],
44-
...
30+
// 方式 3. 在需要引入的文件中添加扫描标识:@unocss-include
4531
})
4632
```
4733
::
48-
### 使用 Svg 图标
34+
## 使用 Svg 图标
4935
将下载的 `.svg` 图标放在项目 `@/assets/svg` 文件夹下,然后就可以直接在代码中引用到了。`name` 属性为 `svg-${svgFileName}`
5036
**输入**
5137
```html
52-
<AdminIcon name="svg-train" class="text-2xl" />
38+
<Icon name="svg-train" class="text-2xl" />
5339
```
5440
**输出**
55-
<AdminIcon name="svg-train" class="text-2xl" />
41+
<Icon name="svg-train" class="text-2xl" />
5642

5743
**输入**
5844
```html
59-
<AdminIcon name="svg-train" filled class="text-4xl" />
45+
<Icon name="svg-train" filled class="text-4xl" />
6046
```
6147
**输出**
62-
<AdminIcon name="svg-train" filled class="text-4xl" />
48+
<Icon name="svg-train" filled class="text-4xl" />
6349

6450
### 使用 iconify 图标
65-
`<AdminIcon />` 图标组件的 `name` 属性为 `i-${iconifyName}` 的时候,图标将解析为 iconify 图标。
51+
`<Icon />` 图标组件的 `name` 属性为 `i-${iconifyName}` 的时候,图标将解析为 iconify 图标。
6652
**输入**
6753
```html
68-
<AdminIcon name="i-twemoji-sun" class="text-2xl"></AdminIcon>
69-
<AdminIcon name="i-twemoji-rocket" class="text-2xl"></AdminIcon>
70-
<AdminIcon name="i-twemoji-blue-book" class="text-2xl"></AdminIcon>
71-
<AdminIcon name="i-twemoji-books" class="text-2xl"></AdminIcon>
54+
<Icon name="i-twemoji-sun" class="text-2xl"></Icon>
55+
<Icon name="i-twemoji-rocket" class="text-2xl"></Icon>
56+
<Icon name="i-twemoji-blue-book" class="text-2xl"></Icon>
57+
<Icon name="i-twemoji-books" class="text-2xl"></Icon>
7258
```
7359
**输出**
74-
<AdminIcon name="i-twemoji-sun" class="text-2xl"></AdminIcon>
75-
<AdminIcon name="i-twemoji-rocket" class="text-2xl"></AdminIcon>
76-
<AdminIcon name="i-twemoji-blue-book" class="text-2xl"></AdminIcon>
77-
<AdminIcon name="i-twemoji-books" class="text-2xl"></AdminIcon>
60+
<Icon name="i-twemoji-sun" class="text-2xl"></Icon>
61+
<Icon name="i-twemoji-rocket" class="text-2xl"></Icon>
62+
<Icon name="i-twemoji-blue-book" class="text-2xl"></Icon>
63+
<Icon name="i-twemoji-books" class="text-2xl"></Icon>
7864

79-
## 通过 `unocss``iconify` 使用图标
80-
项目预先安装了以下4套图标:
81-
::list{type="success"}
82-
- `@iconify-json/ep` ,element-plus 图标库
83-
- `@iconify-json/carbon` ,carbon 图标库
84-
- `@iconify-json/logos` ,各类 logo 图标
85-
- `@iconify-json/twemoji` ,twitter emoji 图标
86-
::
87-
使用的时候给`<div>``<i>` 加上 `class="i-icon-name"` 的样式即可:
65+
## 通过 `unocss``iconify` 来使用图标
66+
可以根据 `unocss` 的文档,给`<div>``<i>` 加上 `class="i-icon-name"` 的样式即可渲染出图标:
8867
**输入**
8968
```html
9069
<div class="i-twemoji-sun inline-block text-2xl"></div>
@@ -97,22 +76,3 @@ export default defineConfig({
9776
<div class="i-twemoji-rocket inline-block text-2xl"></div>
9877
<div class="i-twemoji-blue-book inline-block text-2xl"></div>
9978
<div class="i-twemoji-books inline-block text-2xl"></div>
100-
101-
## 通过 `<AdminIconOnline />` 使用在线图标
102-
103-
在线图标是指在渲染时通过互联网获取的图标,没有打包和引入项目,直接使用图标名字(不用提前引入项目)。
104-
::alert{type="tip"}
105-
**`iconify`** 集成了上千种图标,都可以通过 `API` 在线获取,具体实现可以看[https://docs.iconify.design/icon-components/vue/](https://docs.iconify.design/icon-components/vue/)
106-
107-
::
108-
使用方法是在 [iconify 图标集网站](https://icones.js.org/) 上找到所需的图标,直接复制到 name 属性即可:
109-
**输入**
110-
```html
111-
<AdminIconOnline name="vscode-icons:file-type-azurepipelines" class="text-4xl"></AdminIconOnline>
112-
<AdminIconOnline name="logos:steam" class="text-4xl"></AdminIconOnline>
113-
<AdminIconOnline name="logos:tiktok" class="text-4xl"></AdminIconOnline>
114-
```
115-
**输出**
116-
<AdminIconOnline name="vscode-icons:file-type-azurepipelines" class="text-4xl"></AdminIconOnline>
117-
<AdminIconOnline name="logos:steam" class="text-4xl"></AdminIconOnline>
118-
<AdminIconOnline name="logos:tiktok" class="text-4xl"></AdminIconOnline>

deploy.sh

-15
This file was deleted.

eslint.config.js

+1-3
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,7 @@
11
import antfu from '@antfu/eslint-config'
22

33
export default antfu(
4-
{
5-
unocss: true,
6-
},
4+
{ unocss: true },
75
{
86
rules: {
97
'unocss/order': 'error',

nuxt.config.ts

-1
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@ export default defineNuxtConfig({
3131
'@nuxt/content',
3232
'@unocss/nuxt',
3333
'@vueuse/nuxt',
34-
// '@pinia/nuxt',
3534
],
3635

3736
content: {

package.json

+4-7
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
"type": "module",
44
"version": "2.0.0",
55
"anthor": "vampirefan",
6-
"packageManager": "[email protected].19",
6+
"packageManager": "[email protected].22",
77
"license": "MIT",
88
"engines": {
99
"node": ">=18.18.0"
@@ -19,16 +19,13 @@
1919
"taze": "taze -wIr"
2020
},
2121
"dependencies": {
22-
"element-plus": "^2.8.4",
23-
"pdfobject": "^2.3.0"
22+
"element-plus": "^2.8.5"
2423
},
2524
"devDependencies": {
2625
"@antfu/eslint-config": "^3.7.3",
27-
"@iconify/json": "^2.2.259",
28-
"@nuxt/content": "^2.13.2",
29-
"@pinia/nuxt": "^0.5.4",
26+
"@iconify/json": "^2.2.260",
27+
"@nuxt/content": "^2.13.4",
3028
"@types/node": "20.10.5",
31-
"@types/pdfobject": "^2.2.5",
3229
"@unocss/eslint-plugin": "^0.63.4",
3330
"@unocss/nuxt": "^0.63.4",
3431
"@vueuse/core": "^11.1.0",

unocss.config.ts

+1-26
Original file line numberDiff line numberDiff line change
@@ -23,33 +23,8 @@ export default defineConfig({
2323
'i-ep-edit-pen',
2424
'i-ep-magic-stick',
2525
'i-ep-menu',
26-
'i-logos-adobe',
27-
'i-logos-astro',
28-
'i-logos-chrome',
29-
'i-logos-docker-icon',
30-
'i-logos-element',
31-
'i-logos-git-icon',
3226
'i-logos-gitlab',
33-
'i-logos-hexo',
34-
'i-logos-intellij-idea',
35-
'i-logos-java',
36-
'i-logos-markdown',
37-
'i-logos-microsoft-icon',
38-
'i-logos-mongodb-icon',
39-
'i-logos-nodejs-icon',
40-
'i-logos-nvidia',
41-
'i-logos-openai-icon',
42-
'i-logos-python',
43-
'i-logos-stability-ai-icon',
44-
'i-logos-tailwindcss-icon',
45-
'i-logos-terminal',
46-
'i-logos-typescript-icon',
47-
'i-logos-ubuntu',
48-
'i-logos-unocss',
49-
'i-logos-visual-studio-code',
50-
'i-logos-vitejs',
51-
'i-logos-vue',
52-
'i-logos-vueuse',
27+
'i-logos-github-icon',
5328
'i-twemoji-beaming-face-with-smiling-eyes',
5429
'i-twemoji-blue-book',
5530
'i-twemoji-books',

0 commit comments

Comments
 (0)