@slidev/docs 51.7.1 → 51.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,128 @@
1
+ ---
2
+ depends:
3
+ - guide/syntax#code-block
4
+ tags: [codeblock]
5
+ description: |
6
+ Group multiple code blocks and automatically match icon by the title name.
7
+ ---
8
+
9
+ # Code Groups
10
+
11
+ > [!NOTE]
12
+ > This feature requires [MDC Syntax](/features/mdc#mdc-syntax). Enable `mdc: true` to use it.
13
+
14
+ You can group multiple code blocks like this:
15
+
16
+ ````md
17
+ ::code-group
18
+
19
+ ```sh [npm]
20
+ npm i @slidev/cli
21
+ ```
22
+
23
+ ```sh [yarn]
24
+ yarn add @slidev/cli
25
+ ```
26
+
27
+ ```sh [pnpm]
28
+ pnpm add @slidev/cli
29
+ ```
30
+
31
+ ::
32
+ ````
33
+
34
+ ## Title Icon Matching
35
+
36
+ `code groups` and `code block` also supports the automatically icon matching by the title name:
37
+
38
+ ![code-groups-demo](/assets/code-groups-demo.png)
39
+
40
+ ::: details All builtin icons
41
+
42
+ ```js
43
+ const builtinIcons = {
44
+ // package managers
45
+ 'pnpm': 'i-vscode-icons:file-type-light-pnpm',
46
+ 'npm': 'i-vscode-icons:file-type-npm',
47
+ 'yarn': 'i-vscode-icons:file-type-yarn',
48
+ 'bun': 'i-vscode-icons:file-type-bun',
49
+ 'deno': 'i-vscode-icons:file-type-deno',
50
+ // frameworks
51
+ 'vue': 'i-vscode-icons:file-type-vue',
52
+ 'svelte': 'i-vscode-icons:file-type-svelte',
53
+ 'angular': 'i-vscode-icons:file-type-angular',
54
+ 'react': 'i-vscode-icons:file-type-reactjs',
55
+ 'next': 'i-vscode-icons:file-type-light-next',
56
+ 'nuxt': 'i-vscode-icons:file-type-nuxt',
57
+ 'solid': 'logos:solidjs-icon',
58
+ 'astro': 'i-vscode-icons:file-type-light-astro',
59
+ // bundlers
60
+ 'rollup': 'i-vscode-icons:file-type-rollup',
61
+ 'webpack': 'i-vscode-icons:file-type-webpack',
62
+ 'vite': 'i-vscode-icons:file-type-vite',
63
+ 'esbuild': 'i-vscode-icons:file-type-esbuild',
64
+ // configuration files
65
+ 'package.json': 'i-vscode-icons:file-type-node',
66
+ 'tsconfig.json': 'i-vscode-icons:file-type-tsconfig',
67
+ '.npmrc': 'i-vscode-icons:file-type-npm',
68
+ '.editorconfig': 'i-vscode-icons:file-type-editorconfig',
69
+ '.eslintrc': 'i-vscode-icons:file-type-eslint',
70
+ '.eslintignore': 'i-vscode-icons:file-type-eslint',
71
+ 'eslint.config': 'i-vscode-icons:file-type-eslint',
72
+ '.gitignore': 'i-vscode-icons:file-type-git',
73
+ '.gitattributes': 'i-vscode-icons:file-type-git',
74
+ '.env': 'i-vscode-icons:file-type-dotenv',
75
+ '.env.example': 'i-vscode-icons:file-type-dotenv',
76
+ '.vscode': 'i-vscode-icons:file-type-vscode',
77
+ 'tailwind.config': 'vscode-icons:file-type-tailwind',
78
+ 'uno.config': 'i-vscode-icons:file-type-unocss',
79
+ 'unocss.config': 'i-vscode-icons:file-type-unocss',
80
+ '.oxlintrc': 'i-vscode-icons:file-type-oxlint',
81
+ 'vue.config': 'i-vscode-icons:file-type-vueconfig',
82
+ // filename extensions
83
+ '.mts': 'i-vscode-icons:file-type-typescript',
84
+ '.cts': 'i-vscode-icons:file-type-typescript',
85
+ '.ts': 'i-vscode-icons:file-type-typescript',
86
+ '.tsx': 'i-vscode-icons:file-type-typescript',
87
+ '.mjs': 'i-vscode-icons:file-type-js',
88
+ '.cjs': 'i-vscode-icons:file-type-js',
89
+ '.json': 'i-vscode-icons:file-type-json',
90
+ '.js': 'i-vscode-icons:file-type-js',
91
+ '.jsx': 'i-vscode-icons:file-type-js',
92
+ '.md': 'i-vscode-icons:file-type-markdown',
93
+ '.py': 'i-vscode-icons:file-type-python',
94
+ '.ico': 'i-vscode-icons:file-type-favicon',
95
+ '.html': 'i-vscode-icons:file-type-html',
96
+ '.css': 'i-vscode-icons:file-type-css',
97
+ '.scss': 'i-vscode-icons:file-type-scss',
98
+ '.yml': 'i-vscode-icons:file-type-light-yaml',
99
+ '.yaml': 'i-vscode-icons:file-type-light-yaml',
100
+ '.php': 'i-vscode-icons:file-type-php',
101
+ }
102
+ ```
103
+
104
+ :::
105
+
106
+ ## Custom Icon
107
+
108
+ You can also specify the icon manually by the following steps:
109
+
110
+ 1. Add the icon to the `uno.config.ts` file:
111
+
112
+ ```ts [uno.config.ts] {3-5}
113
+ import { defineConfig } from 'unocss'
114
+
115
+ export default defineConfig({
116
+ safelist: [
117
+ 'i-vscode-icons:file-type-coverage',
118
+ ],
119
+ })
120
+ ```
121
+
122
+ 2. Use the icon in the code block with the `~icon~` syntax:
123
+
124
+ ````md
125
+ ```sh [npm ~i-vscode-icons:file-type-coverage~]
126
+ npm i @slidev/cli
127
+ ```
128
+ ````
package/guide/syntax.md CHANGED
@@ -148,6 +148,7 @@ More about code blocks:
148
148
  <LinkCard link="features/shiki-magic-move" />
149
149
  <LinkCard link="features/twoslash" />
150
150
  <LinkCard link="features/import-snippet" />
151
+ <LinkCard link="features/code-groups" />
151
152
 
152
153
  ## LaTeX Blocks {#latex-block}
153
154
 
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@slidev/docs",
3
3
  "type": "module",
4
- "version": "51.7.1",
4
+ "version": "51.8.0",
5
5
  "license": "MIT",
6
6
  "funding": "https://github.com/sponsors/antfu",
7
7
  "homepage": "https://sli.dev",
@@ -17,9 +17,9 @@
17
17
  ],
18
18
  "devDependencies": {
19
19
  "@antfu/utils": "^9.2.0",
20
- "@iconify/json": "^2.2.339",
20
+ "@iconify/json": "^2.2.341",
21
21
  "@shikijs/vitepress-twoslash": "^3.4.2",
22
- "@types/node": "^22.15.18",
22
+ "@types/node": "^22.15.21",
23
23
  "@unocss/reset": "^66.1.2",
24
24
  "@vueuse/core": "^13.2.0",
25
25
  "fast-glob": "^3.3.3",
@@ -31,14 +31,14 @@
31
31
  "unocss": "^66.1.2",
32
32
  "unplugin-icons": "^22.1.0",
33
33
  "unplugin-vue-components": "^28.5.0",
34
- "vite-plugin-inspect": "^11.0.1",
34
+ "vite-plugin-inspect": "^11.1.0",
35
35
  "vitepress": "^2.0.0-alpha.5",
36
36
  "vitepress-plugin-group-icons": "^1.5.5",
37
- "vitepress-plugin-llms": "^1.2.0",
37
+ "vitepress-plugin-llms": "^1.3.3",
38
38
  "vue": "^3.5.14",
39
- "@slidev/client": "51.7.1",
40
- "@slidev/types": "51.7.1",
41
- "@slidev/parser": "51.7.1"
39
+ "@slidev/parser": "51.8.0",
40
+ "@slidev/client": "51.8.0",
41
+ "@slidev/types": "51.8.0"
42
42
  },
43
43
  "scripts": {
44
44
  "dev": "vitepress",