@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.
- package/features/code-groups.md +128 -0
- package/guide/syntax.md +1 -0
- package/package.json +8 -8
|
@@ -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
|
+

|
|
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
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@slidev/docs",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "51.
|
|
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.
|
|
20
|
+
"@iconify/json": "^2.2.341",
|
|
21
21
|
"@shikijs/vitepress-twoslash": "^3.4.2",
|
|
22
|
-
"@types/node": "^22.15.
|
|
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
|
|
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.
|
|
37
|
+
"vitepress-plugin-llms": "^1.3.3",
|
|
38
38
|
"vue": "^3.5.14",
|
|
39
|
-
"@slidev/
|
|
40
|
-
"@slidev/
|
|
41
|
-
"@slidev/
|
|
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",
|