diff --git a/.vscode/settings.json b/.vscode/settings.json index 5cc73a74..0235cbb1 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -64,9 +64,11 @@ "composables", "Docsearch", "esbuild", + "fontawesome", "frontmatter", "gsap", "iarna", + "iconfont", "iconify", "katex", "leancloud", diff --git a/docs/.vuepress/public/images/icon/fontawesome-1.png b/docs/.vuepress/public/images/icon/fontawesome-1.png new file mode 100644 index 00000000..66bc69bb Binary files /dev/null and b/docs/.vuepress/public/images/icon/fontawesome-1.png differ diff --git a/docs/.vuepress/public/images/icon/iconfont-1.png b/docs/.vuepress/public/images/icon/iconfont-1.png new file mode 100644 index 00000000..2813b551 Binary files /dev/null and b/docs/.vuepress/public/images/icon/iconfont-1.png differ diff --git a/docs/.vuepress/public/images/icon/iconfont-2.png b/docs/.vuepress/public/images/icon/iconfont-2.png new file mode 100644 index 00000000..9986ff51 Binary files /dev/null and b/docs/.vuepress/public/images/icon/iconfont-2.png differ diff --git a/docs/.vuepress/public/images/icon/iconfont-3.png b/docs/.vuepress/public/images/icon/iconfont-3.png new file mode 100644 index 00000000..439d9e51 Binary files /dev/null and b/docs/.vuepress/public/images/icon/iconfont-3.png differ diff --git a/docs/.vuepress/public/images/icon/iconify-1.png b/docs/.vuepress/public/images/icon/iconify-1.png new file mode 100644 index 00000000..eb63a650 Binary files /dev/null and b/docs/.vuepress/public/images/icon/iconify-1.png differ diff --git a/docs/notes/theme/config/markdown.md b/docs/notes/theme/config/markdown.md index 89e424b2..fc1a125a 100644 --- a/docs/notes/theme/config/markdown.md +++ b/docs/notes/theme/config/markdown.md @@ -137,11 +137,13 @@ export default defineUserConfig({ - **默认值**: `false` - **详情**: 是否启用 `npm-to` 容器 -### icons +### icon -- **类型**: `boolean | IconsOptions` -- **默认值**: `true` -- **详情**: 是否启用图标语法 +- **类型**: `IconOptions` +- **默认值**: `{ provider: 'iconify' }` +- **详情**: 图标配置 + + [查看 **icon** 使用说明](../../theme/guide/features/icon.md){.read-more} ### plot diff --git a/docs/notes/theme/config/navbar.md b/docs/notes/theme/config/navbar.md index 1c0b9021..487e34fb 100644 --- a/docs/notes/theme/config/navbar.md +++ b/docs/notes/theme/config/navbar.md @@ -123,11 +123,7 @@ type NavItem = string | { */ link: string /** - * 支持 iconify 图标,直接使用 iconify name 即可自动加载 - * @see https://icon-sets.iconify.design/ - * - * - 如果 iconify 图标不满足您的需求,也可以支持传入 svg 字符串。 - * - 还支持使用 本地图片 或 远程图片,本地图片的路径需要以 `/` 开头。 + * 图标名称,或者 svg 图标 */ icon?: string | { svg: string } @@ -225,6 +221,20 @@ export default defineUserConfig({ 这表示,以 `/blog/` 或 `/article/` 开头的页面链接地址,该链接元素将被激活。 +### 图标 + +支持通过 [markdown -> icon](../guide/features/icon.md) 配置的来源的图标。 + +- 当 `markdown.icon.provide` 为 `iconify` 时,支持 [iconify](https://iconify.design/) 图标 +- 当 `markdown.icon.provide` 为 `iconfont` 时,支持 [iconfont](https://www.iconfont.cn/) 图标 +- 当 `markdown.icon.provide` 为 `fontawesome` 时,支持 [fontawesome](https://fontawesome.com/) 图标 + +`markdown.icon.provide` 为非 `iconify` 值时,可以在 图标名称前加上 `iconify` 前缀,强制使用 [iconify](https://iconify.design/) 图标。 + +```ts +const item = { text: '首页', link: '/', icon: 'iconify carbon:home' } +``` + ## 配置帮助函数 主题提供了 `defineNavbarConfig(config)` 函数,为主题使用者提供导航栏配置的类型帮助。 diff --git a/docs/notes/theme/guide/components/icon.md b/docs/notes/theme/guide/components/icon.md index a5e88f65..20471f97 100644 --- a/docs/notes/theme/guide/components/icon.md +++ b/docs/notes/theme/guide/components/icon.md @@ -7,16 +7,53 @@ permalink: /guide/components/icon/ ## 概述 -支持 iconify 所有图标,通过 icon name 加载图标。 +图标组件 ``,根据 `markdown.icon` 配置,从不同的图标库加载图标。 -可在 [iconify search](https://icon-sets.iconify.design/) 搜索图标使用。 +[主题还提供了 markdown 语法支持,点击了解更多](../markdown/icons.md){.read-more} + +## 配置 + +```ts title=".vuepress/config.ts" twoslash +import { defineUserConfig } from 'vuepress' +import { plumeTheme } from 'vuepress-theme-plume' + +export default defineUserConfig({ + theme: plumeTheme({ + markdown: { // [!code ++:3] + icon: { provider: 'iconify' } // 默认支持 + } + }) +}) +``` + +```ts +interface IconOptions { + /** + * 图标提供商 + */ + provider: 'iconify' | 'iconfont' | 'fontawesome' + /** + * 图标默认前缀,不同的提供商默认前缀不同 + * - iconify - 默认为 `''` + * - iconfont - 默认为 `iconfont icon-` + * - fontawesome - 默认为 `fas` + */ + prefix?: string + /** + * 图标资源地址 + */ + assets?: IconAssetLink | IconAssetLink[] + size?: string | number + color?: string +} +``` ## Props :::: field-group ::: field name="name" type="string" default="''" optional -图标名称 +图标名称,当 `markdown.icon.prefix` 有值时,`name` 中的前缀可以省略 ::: ::: field name="color" type="string" default="'currentcolor'" optional diff --git a/docs/notes/theme/guide/components/link-card.md b/docs/notes/theme/guide/components/link-card.md index 8cd5ea05..eef4d16d 100644 --- a/docs/notes/theme/guide/components/link-card.md +++ b/docs/notes/theme/guide/components/link-card.md @@ -18,7 +18,7 @@ permalink: /guide/components/link-card/ ::: ::: field name="icon" type="string | { svg: string }" default="''" optional -显示在标题左侧的图标,支持 iconify 所有图标,也可以使用 图片链接 +显示在标题左侧的图标,支持 [markdown.icon](../features/icon.md) 配置的提供商的图标,也可以使用 图片链接 ::: ::: field name="href" type="string" default="''" optional diff --git a/docs/notes/theme/guide/features/icon.md b/docs/notes/theme/guide/features/icon.md index e9748b75..635ca279 100644 --- a/docs/notes/theme/guide/features/icon.md +++ b/docs/notes/theme/guide/features/icon.md @@ -7,80 +7,110 @@ permalink: /guide/features/icon/ ## 概述 -主题支持 [iconify](https://icon-sets.iconify.design/) 的所有图标,并提供了不同的方式来使用它们: +主题支持以下来源的图标: + +- [iconify](https://iconify.design/) - 默认支持 +- [iconfont](https://www.iconfont.cn/) - 可选 +- [fontawesome](https://fontawesome.com/) - 可选 + +在主题的以下功能中以相同的方式使用图标: - [导航栏图标](../../config/navbar.md#配置) - [侧边栏图标](../../guide/document.md#侧边栏图标) -- [图标组件](#图标组件) -- [图标语法糖](../../guide/markdown/icons.md) - [文件树图标](../../guide/markdown/file-tree.md) - [代码分组标题图标](../code/code-tabs.md#分组标题图标) +提供语法糖和组件支持: + +[Markdown 图标语法糖支持](../markdown/icons.md){.read-more} + +[图标组件支持](../components/icon.md){.read-more} + ::: tip 主题对图标的优化 上述的不同的使用图标的方式,主题在内部都采取了相同的解析策略,即使您在不同的位置使用了相同的图标, 也不会重复加载相同的图标资源。 - -图标默认是通过远程请求加载,主题也非常建议您在本地项目中安装 `@iconify/json` 包,以便主题能够将图标全部解析为本地资源, -这可以有效的提高页面的访问体验。 ::: -## 图标组件 +## 配置 -通过 `` 组件来使用图标。 +```ts title=".vuepress/config.ts" twoslash +import { defineUserConfig } from 'vuepress' +import { plumeTheme } from 'vuepress-theme-plume' -你可以在 markdown 文件中使用该 组件。 - -### 属性 - -`` 组件接受一个 `name` 属性,用于指定图标的名称。还支持传入 `color` 和 `size` 属性来设置图标的颜色和大小。 -但对于 彩色图标,`color` 属性设置无效。 - -| 属性 | 类型 | 描述 | -| ----- | ------------------ | -------------------------------------------------------------------------- | -| name | `string` | 图标名称,在 [iconify](https://icon-sets.iconify.design/) 可获取对应的名称 | -| color | `string` | 图标颜色,仅纯色图标支持设置颜色 | -| size | `number \| string` | 设置图标大小,默认单位为 `px` ,可自定义单位 | - -**示例:** - -````md -- 纯色图标: -- 定义纯色图标的颜色和大小: -- 彩色图标: -- 定义彩色图标的大小: -```` - -- 纯色图标: -- 定义纯色图标的颜色和大小: -- 彩色图标: -- 定义彩色图标的大小: - -### 加载图标 - -`` 组件默认通过 远程请求 `CDN` 获取图标资源,但这可能受到网络环境的影响,出现加载失败 -或者延迟显示的情况。 - -为了解决这一问题,主题建议 在你的站点项目中安装 `@iconify/json` 包。 -主题会检查当前项目是否安装了 `@iconify/json`,如果安装了该包,则主题自动解析所使用到的图标, -并处理为本地图标资源,在构建时打包到 `dist` 目录中。 - -由于 `@iconify/json` 包比较大,需要手动进行安装: - -::: npm-to - -```sh -npm install @iconify/json +export default defineUserConfig({ + theme: plumeTheme({ + markdown: { // [!code ++:3] + icon: { provider: 'iconify' } // 默认支持 + } + }) +}) ``` -::: +## 配置项 -## markdown 语法糖 +### provider -相关内容请查看 [iconify-图标 语法糖](../markdown/icons.md) +- **类型**: `'iconify' | 'iconfont' | 'fontawesome'` +- **默认值**: `'iconify'` ---- +图标提供商 -::: tip 说明 -[navbar](../../config/theme.md#navbar) 配置和 [notes](../../config/theme.md#notes) 配置 -中的 `icon` 选项,也支持传入 iconify 图标名,并且当安装了 `@iconify/json`,也会自动解析为本地图标资源。 -::: +### prefix + +- **类型**: `string` +- **默认值**: `''` (不同的图标提供商有不同的默认值) +- **详情**: + + 图标前缀 + + - 提供商为 `iconify` 时,默认为 `''`,设置 `iconify` 的图标集作为前缀,比如 `mdi` 。 + - 提供商为 `iconfont` 时,默认为 `'iconfont icon-'` + - 提供商为 `fontawesome` 时默认为 `'fas'`,可选值如下: + + ```ts + type FontAwesomePrefix = + | 'fas' | 's' // fa-solid fa-name + | 'far' | 'r' // fa-regular fa-name + | 'fal' | 'l' // fa-light fa-name + | 'fat' | 't' // fa-thin fa-name + | 'fads' | 'ds' // fa-duotone fa-solid fa-name + | 'fass' | 'ss' // fa-sharp fa-solid fa-name + | 'fasr' | 'sr' // fa-sharp fa-regular fa-name + | 'fasl' | 'sl' // fa-sharp fa-light fa-name + | 'fast' | 'st' // fa-sharp fa-thin fa-name + | 'fasds' | 'sds' // fa-sharp-duotone fa-solid fa-name + | 'fab' | 'b' // fa-brands fa-name + ``` + +### assets + +- **类型**: `(string | FontAwesomeAssetBuiltin)[] | string | FontAwesomeAssetBuiltin` + + ```ts + type FontAwesomeAssetBuiltin = 'fontawesome' | 'fontawesome-with-brands' + ``` + +- **默认值**: `undefined` + +- **详情**: + + - `iconify` 时,不需要设置; + - `iconfont` 时,设置为 iconfont 的资源地址; + - `fontawesome` 时,设置为 `fontawesome` 的资源地址,可选值为 `fontawesome` 或 `fontawesome-with-brands`, + 或者自定义资源地址。 + +### size + +- **类型**: `string | number` +- **默认值**: `1em` +- **详情**: + + 图标的默认尺寸 + +### color + +- **类型**: `string` +- **默认值**: `'currentColor'` +- **详情**: + + 图标的默认颜色 diff --git a/docs/notes/theme/guide/markdown/icons.md b/docs/notes/theme/guide/markdown/icons.md index acac63a8..b5ffad77 100644 --- a/docs/notes/theme/guide/markdown/icons.md +++ b/docs/notes/theme/guide/markdown/icons.md @@ -2,12 +2,33 @@ title: 图标 createTime: 2024/09/30 14:49:39 icon: grommet-icons:emoji -permalink: /guide/markdown/iconify/ +permalink: /guide/markdown/icon/ badge: text: 变更 type: warning --- + + ::: warning 图标语法糖在 `1.0.0-rc.144` 版本中进行了破坏性变更。 `:[collect:name size/color]:` 语法糖已弃用,请使用 `::collect:name =size /color::` 代替。 @@ -23,13 +44,127 @@ badge: ## 概述 -在 Markdown 文件中使用 [iconify](https://iconify.design/) 的图标。 +主题支持在 Markdown 文件中以下来源的图标: -主题一方面提供了[``](../components/icon.md) 组件来支持在 markdown 中使用图标; -另一方面,主题还提供了图标的 markdown 语法,以更简单的方式,在 Markdown 中使用图标。 +- [iconify](https://iconify.design/) - 默认支持 +- [iconfont](https://www.iconfont.cn/) - 可选 +- [fontawesome](https://fontawesome.com/) - 可选 -为了更好的使用该功能,主题推荐你安装 `@iconify/json` 依赖。主题会自动解析 `@iconify/json` 中的图标数据, -将有使用的图标打包为本地资源,以获得更好的访问体验。 +主题提供图标 markdown 语法支持,使用简单灵活的方式在 Markdown 中插入图标。 + +[主题还提供了 `` 组件支持,点击了解更多](../components/icon.md){.read-more} + +## 语法 + +图标语法为行内语法,可以在段落中与其他 markdown 语法混合使用。 + +**基础语法**,使用 `::` 包裹图标名称: + +```md +::name:: +``` + +**设置图标大小和颜色**:(注意空格不可缺少) + +```md +::name =size:: +::name /color:: +::name =size /color:: +``` + +- `=size`: 设置图标大小 + + - `=16`: 图标的宽高为 `16px` + - `=24x16`: 图标的宽为 `24px`,高为 `16px` + - `=x16`: 图标的高为 `16px`,宽为自适应 + - `=1.2em`: 图标的宽高为 `1.2em` + - `=1.2emx1.5em`: 图标的宽为 `1.2em`,高为 `1.5em` + +- `/color`: 设置图标颜色,支持 `hex`/ `rgb` / `rgba` / `hsl` / `hsla` 等合法颜色色值 + + - `/#fff` : 图标的颜色为 `#fff` + - `/rgb(255,0,0)`: 图标的颜色为 `rgb(255,0,0)` + +## Iconify + +[iconify](https://iconify.design/) 提供了 **200K +** 的开源图标支持,足以满足大多数项目的需求。 +主题将 **iconify** 作为默认的图标来源支持。 + +在 Markdown 中使用 `::collect:name` 语法来插入图标。 + +### 配置 + +```ts title=".vuepress/config.ts" twoslash +import { defineUserConfig } from 'vuepress' +import { plumeTheme } from 'vuepress-theme-plume' + +export default defineUserConfig({ + theme: plumeTheme({ + markdown: { // [!code ++:3] + icon: { provider: 'iconify' } // 默认支持 + } + }) +}) +``` + +```ts +interface IconOptions { + provider: 'iconify' + prefix?: string +} +``` + +### 使用 + +::: steps + +- 从 [iconify search](https://icon-sets.iconify.design/) 搜索想要使用的图标,复制图标名称: + + ![iconify](/images/icon/iconify-1.png) + +- 在 Markdown 中使用 `::collect:name` 语法来插入图标 + + ```md + ::carbon:home:: + ``` + + **输出:** ::carbon:home:: + +::: + +在 Iconify 中,图标被分为不同的 `collect`,每个 `collect` 下有若干个图标。 +在 `::collect:name` 语法中,使用 `:` 来分隔 `collect` 和 `name`。 + +如果你主要使用某个 `collect` 下的图标,可以在配置中指定 `prefix`, 以便在 `::collect:name` 语法中省略 `collect` 前缀: + +```ts title=".vuepress/config.ts" twoslash +import { defineUserConfig } from 'vuepress' +import { plumeTheme } from 'vuepress-theme-plume' + +export default defineUserConfig({ + theme: plumeTheme({ + markdown: { + icon: { + provider: 'iconify', + prefix: 'carbon', // 默认使用 `collect` 图标集合 // [!code ++] + } + } + }) +}) +``` + +```md +::home:: +::solar:user-bold:: +``` + +**输出:** ::carbon:home:: ::solar:user-bold:: + +### 安装 + +对于企业内部项目,或无法访问外部网络资源的情况下,主题推荐安装 `@iconify/json` 依赖。 + +主题自动解析 `@iconify/json` 中的图标数据,将已使用的图标打包为本地资源。 ::: npm-to @@ -39,38 +174,7 @@ npm install @iconify/json ::: -## 语法 - -```md -::collect:name:: -``` - -设置图标大小和颜色 - -```md -::collect:name =size:: -::collect:name /color:: -::collect:name =size /color:: -``` - -`iconify` 拥有非常多的图标,这些图标被分组为不同的 `collect`,每个 `collect` 都有自己的 -图标。 - -你可以从 中获取 collect 和 name。 - -## 示例 - -输入: - -```md -::ion:logo-markdown:: -``` - -输出: - -::ion:logo-markdown:: - -该语法为行内语法,因此,你可以在同一行中跟其他 markdown 语法 一起使用。 +### 示例 输入: @@ -91,3 +195,243 @@ github: ::tdesign:logo-github-filled:: 修改大小颜色:::tdesign:logo-github-filled =36px /#f00:: 彩色图标 ::skill-icons:vscode-dark =36px:: + +## Iconfont + +[iconfont](https://www.iconfont.cn/) 是提供了海量的图标支持。 + +### 配置 + +```ts title=".vuepress/config.ts" twoslash +import { defineUserConfig } from 'vuepress' +import { plumeTheme } from 'vuepress-theme-plume' + +export default defineUserConfig({ + theme: plumeTheme({ + markdown: { // [!code ++:3] + icon: { + provider: 'iconfont', + assets: 'https://at.alicdn.com/t/c/xxxx.css' // 示例地址 + } + } + }) +}) +``` + +```ts +interface IconOptions { + provider: 'iconfont' + /** + * 图标前缀 + * @default 'iconfont icon-' + */ + prefix?: string + + /** + * iconfont 资源地址 + */ + assets: string | string[] +} +``` + +### 使用 + +[前往 **iconfont 帮助中心** 了解 **创建项目**和 **添加图标**](https://www.iconfont.cn/help/detail){.read-more} + +:::steps + +- 从 iconfont 获取项目的资源地址,复制并粘贴到 `assets` 配置中: + + ![iconfont assets](/images/icon/iconfont-1.png) + + ```ts title=".vuepress/config.ts" + export default defineUserConfig({ + theme: plumeTheme({ + markdown: { + icon: { + provider: 'iconfont', + assets: 'https://at.alicdn.com/t/c/xxxx.css' // 示例地址 // [!code ++] + } + } + }) + }) + ``` + + 也可以选择下载至本地,将资源存放到 `.vuepress/public` 目录中,然后在 `assets` 配置中填写本地文件路径。 + +- 检查 iconfont 的项目配置,获取 `prefix` 配置: + + ![iconfont prefix](/images/icon/iconfont-2.png) + + 其中 `prefix` 配置由 `font family` 和 `font class` 前缀组成,如果 iconfont 的项目配置为默认配置, + 则 `prefix` 为 `iconfont icon-`,此时你可以忽略此步骤。 + + ```ts title=".vuepress/config.ts" + export default defineUserConfig({ + theme: plumeTheme({ + markdown: { + icon: { + provider: 'iconfont', + prefix: 'iconfont icon-', // 默认值 // [!code ++] + } + } + }) + }) + ``` + +- 在 Markdown 中使用 `::name::` 语法来插入图标: + + ![iconfont name](/images/icon/iconfont-3.png) + + 将图片中的 `font class` 填入 `::name::` 语法中: + + ```md + ::hot:: + ::hot =24px:: + ::hot =24px /#f00:: + ``` + + 输出: + + + + +::: + +## Fontawesome + +[Fontawesome](https://fontawesome.com/) 提供了 免费 和 付费 的图标支持,付费图标需要进行订阅。 + +[查看 **Fontawesome** 官方文档](https://docs.fontawesome.com/web/setup/get-started){.read-more} + +### 配置 + +```ts title=".vuepress/config.ts" twoslash +import { defineUserConfig } from 'vuepress' +import { plumeTheme } from 'vuepress-theme-plume' + +export default defineUserConfig({ + theme: plumeTheme({ + markdown: { // [!code ++:3] + icon: { + provider: 'fontawesome', + assets: 'fontawesome' // 预设资源地址,从 CDN 加载 + } + } + }) +}) +``` + +```ts +interface IconOptions { + provider: 'fontawesome' + /** + * 图标前缀 + * @default 'fas' + */ + prefix?: FontAwesomePrefix + /** + * iconfont 资源地址 + */ + assets: (FontAwesomeAssetBuiltin | string)[] +} + +type FontAwesomeAssetBuiltin = 'fontawesome' | 'fontawesome-with-brands' + +type FontAwesomePrefix = + | 'fas' | 's' // fa-solid fa-name + | 'far' | 'r' // fa-regular fa-name + | 'fal' | 'l' // fa-light fa-name + | 'fat' | 't' // fa-thin fa-name + | 'fads' | 'ds' // fa-duotone fa-solid fa-name + | 'fass' | 'ss' // fa-sharp fa-solid fa-name + | 'fasr' | 'sr' // fa-sharp fa-regular fa-name + | 'fasl' | 'sl' // fa-sharp fa-light fa-name + | 'fast' | 'st' // fa-sharp fa-thin fa-name + | 'fasds' | 'sds' // fa-sharp-duotone fa-solid fa-name + | 'fab' | 'b' // fa-brands fa-name +``` + +[在 **Fontawesome** 中,图标通过 families + styles 控制样式,**查看详情**](https://docs.fontawesome.com/web/add-icons/how-to#setting-different-families--styles){.read-more} + +为便于管理,可以通过 `::prefix:name` 语法,通过前缀设置 families + styles,默认前缀为 `fas`,可以省略它: + +```md +::name:: +::fas:name:: +::s:name:: +``` + +可以通过配置 `markdown.icon.prefix` 修改默认前缀。 + +::: tip +Fontawesome 的免费图标仅支持 `solid` 、部分 `regular` 以及 `brands`, +对于免费版本,前缀仅支持 `fas` / `far` / `fab` 和它们的缩写前缀。 +::: + +### 使用 + +[前往 **https://fontawesome.com/search?ic=free** 搜索免费图标](https://fontawesome.com/search?ic=free){.read-more} + +:::steps + +- 复制图标名称: + + ![fontawesome name](/images/icon/fontawesome-1.png) + +- 在 Markdown 中使用 `::prefix:name` 语法插入图标: + + ```md + ::circle-user:: + ::fas:circle-user:: + ::s:circle-user:: + ``` + +::: + +### 示例 + +```md +::circle-user:: +::circle-user =24px:: +::circle-user =24px /#f00:: +``` + +输出: + + + + + +[为 Fontawesome 添加更多样式支持](https://docs.fontawesome.com/web/style/styling){.read-more} + +``` +::circle-user 2xl:: +::circle-user rotate-90:: +::circle-user beat:: +::circle-user border:: +::circle-user 2xl beat:: +``` + +输出: + + + + + + + +## 其它说明 + +当 `markdown.icon.provider` 设置为非 `iconify` 时,`iconify` 作为默认支持,依然可以在 +markdown 中插入 iconify 图标: + +在 `::collect:name::` 语法中,在开始位置添加 `iconify`: + +```md /iconify / +::iconify carbon:home:: +``` + +输出: + +::iconify carbon:home:: diff --git a/docs/notes/theme/guide/quick-start/document.md b/docs/notes/theme/guide/quick-start/document.md index 426571ae..644e52a9 100644 --- a/docs/notes/theme/guide/quick-start/document.md +++ b/docs/notes/theme/guide/quick-start/document.md @@ -481,8 +481,19 @@ const typescript = defineNoteConfig({ ### 侧边栏图标 -为侧边栏添加 ==图标== 有助于 侧边栏更好的呈现。得益于 [iconify](https://iconify.design/) 这个强大的开源图标库, -你可以使用超过 `200k` 的图标,仅需要添加 `icon` 配置即可。 +为侧边栏添加 ==图标== 有助于 侧边栏更好的呈现。 + +支持通过 [markdown -> icon](../guide/features/icon.md) 配置的来源的图标。 + +- 当 `markdown.icon.provide` 为 `iconify` 时,支持 [iconify](https://iconify.design/) 图标 +- 当 `markdown.icon.provide` 为 `iconfont` 时,支持 [iconfont](https://www.iconfont.cn/) 图标 +- 当 `markdown.icon.provide` 为 `fontawesome` 时,支持 [fontawesome](https://fontawesome.com/) 图标 + +`markdown.icon.provide` 为非 `iconify` 值时,可以在 图标名称前加上 `iconify` 前缀,强制使用 [iconify](https://iconify.design/) 图标。 + +```ts +const item = { text: '首页', link: '/', icon: 'iconify carbon:home' } +``` ```ts title=".vuepress/notes.ts" twoslash import { defineNoteConfig } from 'vuepress-theme-plume' diff --git a/plugins/plugin-md-power/__test__/__snapshots__/codeTabsPlugin.spec.ts.snap b/plugins/plugin-md-power/__test__/__snapshots__/codeTabsPlugin.spec.ts.snap index a5587ae4..43a9ecd4 100644 --- a/plugins/plugin-md-power/__test__/__snapshots__/codeTabsPlugin.spec.ts.snap +++ b/plugins/plugin-md-power/__test__/__snapshots__/codeTabsPlugin.spec.ts.snap @@ -7,13 +7,13 @@ exports[`codeTabsPlugin > should work with default 1`] = `