diff --git a/docs/plugins/shiki.md b/docs/plugins/shiki.md index 46dabd297..9d9b214e8 100644 --- a/docs/plugins/shiki.md +++ b/docs/plugins/shiki.md @@ -41,7 +41,7 @@ export default { This option will be forwarded to `getHighlighter()` method of shikiji. - You need to provide the languages list you are using explicitly, otherwise shikiji won't load any languages. + You'd better provide the languages list you are using explicitly, otherwise shikiji will load all languages and can affect performance. - Also see: - [shikiji > Languages](https://shikiji.netlify.app/languages) diff --git a/docs/zh/plugins/shiki.md b/docs/zh/plugins/shiki.md index 2126a84ee..eb9d90483 100644 --- a/docs/zh/plugins/shiki.md +++ b/docs/zh/plugins/shiki.md @@ -41,7 +41,7 @@ export default { 该配置项会被传递到 Shikiji 的 `getHighlighter()` 方法中。 - 你需要明确传入所有你使用的语言列表,否则 Shikiji 将不会加载任何语言。 + 你最好明确传入所有你使用的语言列表,否则 Shikiji 会加载所有语言,并可能影响性能。 - 参考: - [shikiji > Languages](https://shikiji.netlify.app/languages) diff --git a/plugins/plugin-shiki/package.json b/plugins/plugin-shiki/package.json index d50406fe1..37e3ecb3c 100644 --- a/plugins/plugin-shiki/package.json +++ b/plugins/plugin-shiki/package.json @@ -35,7 +35,7 @@ "clean": "rimraf --glob ./lib ./*.tsbuildinfo" }, "dependencies": { - "shikiji": "^0.10.2" + "shiki": "^1.0.0-rc.0" }, "peerDependencies": { "vuepress": "2.0.0-rc.6" diff --git a/plugins/plugin-shiki/src/node/shikiPlugin.ts b/plugins/plugin-shiki/src/node/shikiPlugin.ts index 82daa9916..f2ba6d5ad 100644 --- a/plugins/plugin-shiki/src/node/shikiPlugin.ts +++ b/plugins/plugin-shiki/src/node/shikiPlugin.ts @@ -1,4 +1,3 @@ -import { getHighlighter } from 'shikiji' import type { BundledLanguage, BundledTheme, @@ -7,7 +6,8 @@ import type { StringLiteralUnion, ThemeRegistration, ThemeRegistrationRaw, -} from 'shikiji' +} from 'shiki' +import { bundledLanguages, getHighlighter } from 'shiki/bundle/full' import type { Plugin } from 'vuepress/core' export type ShikiLang = @@ -52,8 +52,10 @@ export interface ShikiPluginOptions { } } +const DEFAULT_LANGS = Object.keys(bundledLanguages) + export const shikiPlugin = ({ - langs, + langs = DEFAULT_LANGS, theme = 'nord', themes, }: ShikiPluginOptions = {}): Plugin => ({ diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 945f37150..779e901b6 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -540,9 +540,9 @@ importers: plugins/plugin-shiki: dependencies: - shikiji: - specifier: ^0.10.2 - version: 0.10.2 + shiki: + specifier: ^1.0.0-rc.0 + version: 1.0.0-rc.0 vuepress: specifier: 2.0.0-rc.6 version: 2.0.0-rc.6(@vuepress/bundler-vite@2.0.0-rc.6)(@vuepress/bundler-webpack@2.0.0-rc.6)(typescript@5.3.3)(vue@3.4.15) @@ -3270,6 +3270,10 @@ packages: requiresBuild: true optional: true + /@shikijs/core@1.0.0-rc.0: + resolution: {integrity: sha512-j/7te+hvEYlQTvk/wPoA+1rOklZTz8QuyqVvV81KcEN/g1WXKVnqp9WZ7jFuv0ZVLqBtDx/V8viRDROJniyMLA==} + dev: false + /@sideway/address@4.1.5: resolution: {integrity: sha512-IqO/DUQHUkPeixNQ8n0JA6102hT9CmaljNTPmQ1u8MEhBo/R4Q8eKLN/vGZxuebwOroDB4cbpjheD4+/sKFK4Q==} dependencies: @@ -10390,14 +10394,10 @@ packages: /shell-quote@1.8.1: resolution: {integrity: sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==} - /shikiji-core@0.10.2: - resolution: {integrity: sha512-9Of8HMlF96usXJHmCL3Gd0Fcf0EcyJUF9m8EoAKKd98mHXi0La2AZl1h6PegSFGtiYcBDK/fLuKbDa1l16r1fA==} - dev: false - - /shikiji@0.10.2: - resolution: {integrity: sha512-wtZg3T0vtYV2PnqusWQs3mDaJBdCPWxFDrBM/SE5LfrX92gjUvfEMlc+vJnoKY6Z/S44OWaCRzNIsdBRWcTAiw==} + /shiki@1.0.0-rc.0: + resolution: {integrity: sha512-aeEjERF5qeK+YChgEv94LOjcEcjZBLd0acPaHginz0N8FvyTn2iSLhO0AtoqfvlZ8cWGCJRKLWtDApnQVQB6/Q==} dependencies: - shikiji-core: 0.10.2 + '@shikijs/core': 1.0.0-rc.0 dev: false /side-channel@1.0.4: