跳到主要内容

代码组图标

最后更新于:

代码组图标

前言

给自己博客整一个好看的代码组图标哦。

版权

次功能借鉴《Hyde》大佬的《代码组图标》文章,感谢大佬的手把手文档💖💖💖。

提示

使用的是 @yuyinws/vitepress-plugin-group-icons

参照教程安装:https://vpgi.vercel.app/

环境

2025年3月29日解决。

配置环境:

Youbg Kbt》大佬开源的《vitepress-theme-teek》一个博客项目(知识库+博客 二合一),它是一个轻量、简易的VitePress主题框架,非常简约唯美,且也在持续迭代更新,感谢大佬开源的这款优秀产品,大佬威武。💖💖💖

1、安装插件

  • 进到demo/docs-base/路径,执行如下命令:
1cd demo/docs-base/
2pnpm add -D vitepress-plugin-group-icons

2、注册插件

  • Demo\docs-base\.vitepress\config.mts中注册插件
 1// Demo\docs-base\.vitepress\config.mts
 2import { defineConfig } from "vitepress";
 3import { groupIconMdPlugin, groupIconVitePlugin } from "vitepress-plugin-group-icons"; // 导入代码组图标插件
 4
 5const tkConfig = tkThemeConfig({
 6  markdownPlugins: [
 7        (md: any) => md.use(groupIconMdPlugin), //代码组图标插件
 8  ],
 9});
10
11export default defineConfig({
12  vite: {
13    plugins: [
14      groupIconVitePlugin() //代码组图标
15    ],
16  },
17});

`groupIconMdPlugin` 报错?

请备份配置及文件后,重新安装VitePress

警告

不要在“export default defineConfig({})进行插件注册”,详情查看TeeK插件配置

3、配置插件

  • 最后还需要在 Demo\docs-base\.vitepress\theme\index.ts 中引入样式
1import "virtual:group-icons.css"; //代码组图标样式

4、使用图标

使用时,请确保代码后有对应的文字触发:

在md里添加如下代码:

1
1npm -v
1pnpm -v
1yarn -v
1bun -v
1npm -v
1pnpm -v
1yarn -v
1bun -v

5、验证

运行,验证:

1pnpm i
2pnpm to:theme stub
3pnpm demo:base dev

完美:

扩展

内置图标

  • 已经内置的常用图标有
 1```ts
 2export const builtInIcons: Record<string, string> = {
 3  // package manager
 4  pnpm: "logos:pnpm",
 5  npm: "logos:npm-icon",
 6  yarn: "logos:yarn",
 7  bun: "logos:bun",
 8  // framework
 9  vue: "logos:vue",
10  svelte: "logos:svelte-icon",
11  angular: "logos:angular-icon",
12  react: "logos:react",
13  next: "logos:nextjs-icon",
14  nuxt: "logos:nuxt-icon",
15  solid: "logos:solidjs-icon",
16  // bundler
17  rollup: "logos:rollupjs",
18  webpack: "logos:webpack",
19  vite: "logos:vitejs",
20  esbuild: "logos:esbuild",
21};
22```

自定义图标

那么如何自定义呢,我们先在 iconify 中找到中意的图标

说明

  • 本地图标格式:只能使用相对路径
  • 远程图标格式:必须是 logos:

图标名复制后,可以在 config.mts 中配置

 1// Demo\docs-base\.vitepress\config.mts
 2import { defineConfig } from "vitepress";
 3import { groupIconMdPlugin, groupIconVitePlugin, localIconLoader } from "vitepress-plugin-group-icons";  
 4
 5export default defineConfig({
 6  markdown: {
 7    config(md) {
 8      md.use(groupIconMdPlugin); //代码组图标
 9    },
10  },
11
12  vite: {
13    plugins: [
14      groupIconVitePlugin({
15        customIcon: {
16          ts: localIconLoader(import.meta.url, "../public/svg/typescript.svg"), //本地ts图标导入
17          js: "logos:javascript", //js图标
18          md: "logos:markdown", //markdown图标
19          css: "logos:css-3", //css图标
20        },
21      }),
22    ],
23  },
24});

结束。

最新文章

文档导航