惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

雷峰网
雷峰网
MongoDB | Blog
MongoDB | Blog
D
Docker
Martin Fowler
Martin Fowler
人人都是产品经理
人人都是产品经理
GbyAI
GbyAI
Jina AI
Jina AI
酷 壳 – CoolShell
酷 壳 – CoolShell
M
MIT News - Artificial intelligence
腾讯CDC
阮一峰的网络日志
阮一峰的网络日志
H
Hackread – Cybersecurity News, Data Breaches, AI and More
N
Netflix TechBlog - Medium
B
Blog RSS Feed
云风的 BLOG
云风的 BLOG
Blog — PlanetScale
Blog — PlanetScale
Vercel News
Vercel News
The Cloudflare Blog
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
有赞技术团队
有赞技术团队
G
Google Developers Blog
Stack Overflow Blog
Stack Overflow Blog
I
InfoQ
U
Unit 42

Hyde Blog

Hyde Blog Hyde Blog Hyde Blog Hyde Blog Hyde Blog Hyde Blog Hyde Blog Hyde Blog Hyde Blog Hyde Blog Hyde Blog Hyde Blog Hyde Blog Hyde Blog Hyde Blog Hyde Blog Hyde Blog Hyde Blog Hyde Blog Hyde Blog Hyde Blog Hyde Blog Hyde Blog Hyde Blog Hyde Blog Hyde Blog Hyde Blog Hyde Blog Hyde Blog Hyde Blog
Hyde Blog
Hyde · 2025-10-05 · via Hyde Blog

代码组图标 ​

安装插件 ​

提示

  • 推荐使用 pnpm 安装,我在子项目的,所以需要切换到子项目的 Demo\docs-base 目录下安装

pnpmyarnnpmbun

sh

cd Demo\docs-base
pnpm add -D vitepress-plugin-group-icons

sh

yarn add -D vitepress-plugin-group-icons

sh

npm install vitepress-plugin-group-icons

sh

bun add -D vitepress-plugin-group-icons

注册插件 ​

  • Demo\docs-base\.vitepress\config.mts 中注册插件

注意

groupIconMdPlugin不要在“export default defineConfig({})进行插件注册”,否则影响导航卡片样式不生效。详情查看TeeK 插件配置

  • 错误示例

ts

export default defineConfig({
  markdown: {
    config(md) {
      md.use(groupIconMdPlugin); // 代码组图标
    },
  },
})
  • 正确示例

ts

// Demo\docs-base\.vitepress\config.mts
import { defineConfig } from "vitepress";
import { groupIconMdPlugin, groupIconVitePlugin } from "vitepress-plugin-group-icons"; // 导入代码组图标插件

const tkConfig = tkThemeConfig({
  markdownPlugins: [
        (md: any) => md.use(groupIconMdPlugin), //代码组图标插件
  ],
});

export default defineConfig({
  vite: {
    plugins: [
      groupIconVitePlugin(), //代码组图标
    ],
  },
});

提示

groupIconMdPlugin 报错? 请备份配置及文件后,参考下面解决方案

配置插件 ​

  • 最后还需要在 Demo\docs-base\.vitepress\theme\index.ts 中引入样式

ts

import "virtual:group-icons.css"; //代码组图标样式

使用图标 ​

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

md

::: code-group

```sh [pnpm]
pnpm -v
```

```sh [yarn]
yarn -v
```

```sh [bun]
bun -v
```

:::

内置图标 ​

  • 已经内置的常用图标有

md

```ts
export const builtInIcons: Record<string, string> = {
  // package manager
  pnpm: "logos:pnpm",
  npm: "logos:npm-icon",
  yarn: "logos:yarn",
  bun: "logos:bun",
  // framework
  vue: "logos:vue",
  svelte: "logos:svelte-icon",
  angular: "logos:angular-icon",
  react: "logos:react",
  next: "logos:nextjs-icon",
  nuxt: "logos:nuxt-icon",
  solid: "logos:solidjs-icon",
  // bundler
  rollup: "logos:rollupjs",
  webpack: "logos:webpack",
  vite: "logos:vitejs",
  esbuild: "logos:esbuild",
};
```

自定义图标 ​

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

说明

  • 本地图标格式:只能使用相对路径

  • 远程图标格式:必须是 logos:***

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

ts

// Demo\docs-base\.vitepress\config.mts
import { defineConfig } from "vitepress";
import { groupIconMdPlugin, groupIconVitePlugin, localIconLoader } from "vitepress-plugin-group-icons";  

export default defineConfig({
  markdown: {
    config(md) {
      md.use(groupIconMdPlugin); //代码组图标
    },
  },

  vite: {
    plugins: [
      groupIconVitePlugin({
        customIcon: {
          ts: localIconLoader(import.meta.url, "../public/svg/typescript.svg"), //本地ts图标导入
          js: "logos:javascript", //js图标
          md: "logos:markdown", //markdown图标
          css: "logos:css-3", //css图标
        },
      }),
    ],
  },
});

图标效果 ​

npmyarnpnpmbun

sh

npm install vitepress-plugin-group-icons

sh

yarn add vitepress-plugin-group-icons

sh

pnpm add vitepress-plugin-group-icons

sh

bun add vitepress-plugin-group-icons