From 4cb6f3e529b50faf10d08102fe106591ee1b9959 Mon Sep 17 00:00:00 2001 From: Farnabaz Date: Tue, 25 Feb 2025 15:36:07 +0100 Subject: [PATCH] chore: upgrade shiki v3 --- package.json | 4 +- playground/nuxt.config.ts | 2 +- playground/pages/index.vue | 2 +- pnpm-lock.yaml | 125 +++++++++++++++---------------- src/templates/mdc-highlighter.ts | 4 +- 5 files changed, 67 insertions(+), 70 deletions(-) diff --git a/package.json b/package.json index 6254efb2..d82e4218 100644 --- a/package.json +++ b/package.json @@ -72,7 +72,7 @@ }, "dependencies": { "@nuxt/kit": "^3.15.2", - "@shikijs/transformers": "^1.27.2", + "@shikijs/transformers": "^3.0.0", "@types/hast": "^3.0.4", "@types/mdast": "^4.0.4", "@vue/compiler-core": "^3.5.13", @@ -105,7 +105,7 @@ "remark-rehype": "^11.1.1", "remark-stringify": "^11.0.0", "scule": "^1.3.0", - "shiki": "^1.27.2", + "shiki": "^3.0.0", "ufo": "^1.5.4", "unified": "^11.0.5", "unist-builder": "^4.0.0", diff --git a/playground/nuxt.config.ts b/playground/nuxt.config.ts index 8ba773f1..4802a7d0 100644 --- a/playground/nuxt.config.ts +++ b/playground/nuxt.config.ts @@ -14,7 +14,7 @@ export default defineNuxtConfig({ default: 'vitesse-light', dark: 'material-theme-palenight' }, - shikiEngine: 'javascript', + shikiEngine: 'oniguruma', preload: [ 'sql' ] diff --git a/playground/pages/index.vue b/playground/pages/index.vue index 7d5fb151..f85ad3a8 100644 --- a/playground/pages/index.vue +++ b/playground/pages/index.vue @@ -51,7 +51,7 @@ onMounted(() => { MDC AST - +
Source -> MDC -> Render diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 46ff23c5..b39d83e2 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -15,8 +15,8 @@ importers: specifier: ^3.15.2 version: 3.15.4(magicast@0.3.5) '@shikijs/transformers': - specifier: ^1.27.2 - version: 1.29.2 + specifier: ^3.0.0 + version: 3.0.0 '@types/hast': specifier: ^3.0.4 version: 3.0.4 @@ -114,8 +114,8 @@ importers: specifier: ^1.3.0 version: 1.3.0 shiki: - specifier: ^1.27.2 - version: 1.29.2 + specifier: ^3.0.0 + version: 3.0.0 ufo: specifier: ^1.5.4 version: 1.5.4 @@ -1466,29 +1466,29 @@ packages: '@sec-ant/readable-stream@0.4.1': resolution: {integrity: sha512-831qok9r2t8AlxLko40y2ebgSDhenenCatLVeW/uBtnHPyhHOvG0C7TvfgecV+wHzIm5KUICgzmVpWS+IMEAeg==} - '@shikijs/core@1.29.2': - resolution: {integrity: sha512-vju0lY9r27jJfOY4Z7+Rt/nIOjzJpZ3y+nYpqtUZInVoXQ/TJZcfGnNOGnKjFdVZb8qexiCuSlZRKcGfhhTTZQ==} + '@shikijs/core@3.0.0': + resolution: {integrity: sha512-gSm3JQf2J2psiUn5bWokmZwnu5N0jfBtRps4CQ1B+qrFvmZCRAkMVoaxgl9qZgAFK5KisLAS3//XaMFVytYHKw==} - '@shikijs/engine-javascript@1.29.2': - resolution: {integrity: sha512-iNEZv4IrLYPv64Q6k7EPpOCE/nuvGiKl7zxdq0WFuRPF5PAE9PRo2JGq/d8crLusM59BRemJ4eOqrFrC4wiQ+A==} + '@shikijs/engine-javascript@3.0.0': + resolution: {integrity: sha512-zoB10hTfvk1iZk1ldt6VaF+0iucQL+4TtSvTdTu5MhOeLPLEf5nZ8Wz6uxlp99y627OLalYa2z4W0iTTwb6oyA==} - '@shikijs/engine-oniguruma@1.29.2': - resolution: {integrity: sha512-7iiOx3SG8+g1MnlzZVDYiaeHe7Ez2Kf2HrJzdmGwkRisT7r4rak0e655AcM/tF9JG/kg5fMNYlLLKglbN7gBqA==} + '@shikijs/engine-oniguruma@3.0.0': + resolution: {integrity: sha512-uM9lqwMrlPHPVcdpAN/4pAzTJah1pY7mi9f1MxG887SDkjF/tdiQK+5200Y8N5Hg125sewdMQ1K2agoAo8hDiA==} - '@shikijs/langs@1.29.2': - resolution: {integrity: sha512-FIBA7N3LZ+223U7cJDUYd5shmciFQlYkFXlkKVaHsCPgfVLiO+e12FmQE6Tf9vuyEsFe3dIl8qGWKXgEHL9wmQ==} + '@shikijs/langs@3.0.0': + resolution: {integrity: sha512-HBsZAukiYz7k3hzttPWa0en3PABEwK3cpxcAcERRwvwuKc5pn0Y+yPxAIYZtN9cFdtNqrbFJNhfcEu/xbG1u/A==} - '@shikijs/themes@1.29.2': - resolution: {integrity: sha512-i9TNZlsq4uoyqSbluIcZkmPL9Bfi3djVxRnofUHwvx/h6SRW3cwgBC5SML7vsDcWyukY0eCzVN980rqP6qNl9g==} + '@shikijs/themes@3.0.0': + resolution: {integrity: sha512-mz63nyVB5nXWsv5H2hifDFIThZEJ/cJhMq1/+0JjMdOuuBq2H2D1Fn8UM5yzUtEvap/ipRltv381+hsHZFs4ug==} - '@shikijs/transformers@1.29.2': - resolution: {integrity: sha512-NHQuA+gM7zGuxGWP9/Ub4vpbwrYCrho9nQCLcCPfOe3Yc7LOYwmSuhElI688oiqIXk9dlZwDiyAG9vPBTuPJMA==} + '@shikijs/transformers@3.0.0': + resolution: {integrity: sha512-N6iwlPt1IN4oQMdwSqWJhveBjfY2eLBjdmGglPngQ9ML1OPAgCPog0hI1lFPl52Rx7+s7GGuvWsSIu4zCUv2XA==} - '@shikijs/types@1.29.2': - resolution: {integrity: sha512-VJjK0eIijTZf0QSTODEXCqinjBn0joAHQ+aPSBzrv4O2d/QSbsMw+ZeSRx03kV34Hy7NzUvV/7NqfYGRLrASmw==} + '@shikijs/types@3.0.0': + resolution: {integrity: sha512-kh/xgZHxI6m9trVvPw+C47jyVHx190r0F5gkF+VO5vYB54UtcoPJe66dzZmK7GbJbzmtGEGbOwct/jsoPjjUqg==} - '@shikijs/vscode-textmate@10.0.1': - resolution: {integrity: sha512-fTIQwLF+Qhuws31iw7Ncl1R3HUDtGwIipiJ9iU+UsDUwMhegFcQKQHd51nZjb7CArq0MvON8rbgCGQYWHUKAdg==} + '@shikijs/vscode-textmate@10.0.2': + resolution: {integrity: sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==} '@sindresorhus/is@4.6.0': resolution: {integrity: sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==} @@ -4141,8 +4141,8 @@ packages: resolution: {integrity: sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==} engines: {node: '>=18'} - oniguruma-to-es@2.3.0: - resolution: {integrity: sha512-bwALDxriqfKGfUufKGGepCzu9x7nJQuoRoAFp4AnwehhC2crqrDIAP/uN2qdlsAvSMpeRC3+Yzhqc7hLmle5+g==} + oniguruma-to-es@3.1.1: + resolution: {integrity: sha512-bUH8SDvPkH3ho3dvwJwfonjlQ4R80vjyvrU8YpxuROddv55vAEJrTuCuCVUhhsHbtlD9tGGbaNApGQckXhS8iQ==} only@0.0.2: resolution: {integrity: sha512-Fvw+Jemq5fjjyWz6CpKx6w9s7xxqo3+JCyM0WXWeCSOboZ8ABkyvP8ID4CZuChA/wxSx+XSJmdOm8rGVyJ1hdQ==} @@ -4676,14 +4676,14 @@ packages: resolution: {integrity: sha512-J8rn6v4DBb2nnFqkqwy6/NnTYMcgLA+sLr0iIO41qpv0n+ngb7ksag2tMRl0inb1bbO/esUwzW1vbJi7K0sI0g==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - regex-recursion@5.1.1: - resolution: {integrity: sha512-ae7SBCbzVNrIjgSbh7wMznPcQel1DNlDtzensnFxpiNpXt1U2ju/bHugH422r+4LAVS1FpW1YCwilmnNsjum9w==} + regex-recursion@6.0.2: + resolution: {integrity: sha512-0YCaSCq2VRIebiaUviZNs0cBz1kg5kVS2UKUfNIx8YVs1cN3AV7NTctO5FOKBA+UT2BPJIWZauYHPqJODG50cg==} regex-utilities@2.3.0: resolution: {integrity: sha512-8VhliFJAWRaUiVvREIiW2NXXTmHs4vMNnSzuJVhscgmGav3g9VDxLrQndI3dZZVVdp0ZO/5v0xmX516/7M9cng==} - regex@5.1.1: - resolution: {integrity: sha512-dN5I359AVGPnwzJm2jN1k0W9LPZ+ePvoOeVMMfqIMFz53sSwXkxaJoxr50ptnsC771lK95BnTrVSZxq0b9yCGw==} + regex@6.0.1: + resolution: {integrity: sha512-uorlqlzAKjKQZ5P+kTJr3eeJGSVroLKoHmquUj4zHWuR+hEyNqlXsSKlYYF5F4NI6nl7tWCs0apKJ0lmfsXAPA==} regexp-ast-analysis@0.7.1: resolution: {integrity: sha512-sZuz1dYW/ZsfG17WSAG7eS85r5a0dDsvg+7BiiYR5o6lKCAtUrEwdmRmaGF6rwVj3LcmAeYkOWKEPlbPzN3Y3A==} @@ -4930,8 +4930,8 @@ packages: engines: {node: '>=4'} hasBin: true - shiki@1.29.2: - resolution: {integrity: sha512-njXuliz/cP+67jU2hukkxCNuH1yUi4QfdZZY+sMr5PPrIyXSu5iTb/qYC4BiWWB0vZ+7TbdvYUCeL23zpwCfbg==} + shiki@3.0.0: + resolution: {integrity: sha512-x6MMdYN9auPGx7kMFtyKbaj65eCdetfrfkvQZwqisZLnGMnAZsZxOpcWD0ElvLPFWHOSMukVyN9Opm7TxQjnZA==} siginfo@2.0.0: resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} @@ -7508,45 +7508,43 @@ snapshots: '@sec-ant/readable-stream@0.4.1': {} - '@shikijs/core@1.29.2': + '@shikijs/core@3.0.0': dependencies: - '@shikijs/engine-javascript': 1.29.2 - '@shikijs/engine-oniguruma': 1.29.2 - '@shikijs/types': 1.29.2 - '@shikijs/vscode-textmate': 10.0.1 + '@shikijs/types': 3.0.0 + '@shikijs/vscode-textmate': 10.0.2 '@types/hast': 3.0.4 hast-util-to-html: 9.0.4 - '@shikijs/engine-javascript@1.29.2': + '@shikijs/engine-javascript@3.0.0': dependencies: - '@shikijs/types': 1.29.2 - '@shikijs/vscode-textmate': 10.0.1 - oniguruma-to-es: 2.3.0 + '@shikijs/types': 3.0.0 + '@shikijs/vscode-textmate': 10.0.2 + oniguruma-to-es: 3.1.1 - '@shikijs/engine-oniguruma@1.29.2': + '@shikijs/engine-oniguruma@3.0.0': dependencies: - '@shikijs/types': 1.29.2 - '@shikijs/vscode-textmate': 10.0.1 + '@shikijs/types': 3.0.0 + '@shikijs/vscode-textmate': 10.0.2 - '@shikijs/langs@1.29.2': + '@shikijs/langs@3.0.0': dependencies: - '@shikijs/types': 1.29.2 + '@shikijs/types': 3.0.0 - '@shikijs/themes@1.29.2': + '@shikijs/themes@3.0.0': dependencies: - '@shikijs/types': 1.29.2 + '@shikijs/types': 3.0.0 - '@shikijs/transformers@1.29.2': + '@shikijs/transformers@3.0.0': dependencies: - '@shikijs/core': 1.29.2 - '@shikijs/types': 1.29.2 + '@shikijs/core': 3.0.0 + '@shikijs/types': 3.0.0 - '@shikijs/types@1.29.2': + '@shikijs/types@3.0.0': dependencies: - '@shikijs/vscode-textmate': 10.0.1 + '@shikijs/vscode-textmate': 10.0.2 '@types/hast': 3.0.4 - '@shikijs/vscode-textmate@10.0.1': {} + '@shikijs/vscode-textmate@10.0.2': {} '@sindresorhus/is@4.6.0': {} @@ -10973,11 +10971,11 @@ snapshots: dependencies: mimic-function: 5.0.1 - oniguruma-to-es@2.3.0: + oniguruma-to-es@3.1.1: dependencies: emoji-regex-xs: 1.0.0 - regex: 5.1.1 - regex-recursion: 5.1.1 + regex: 6.0.1 + regex-recursion: 6.0.2 only@0.0.2: {} @@ -11527,14 +11525,13 @@ snapshots: dependencies: '@eslint-community/regexpp': 4.12.1 - regex-recursion@5.1.1: + regex-recursion@6.0.2: dependencies: - regex: 5.1.1 regex-utilities: 2.3.0 regex-utilities@2.3.0: {} - regex@5.1.1: + regex@6.0.1: dependencies: regex-utilities: 2.3.0 @@ -11910,15 +11907,15 @@ snapshots: interpret: 1.4.0 rechoir: 0.6.2 - shiki@1.29.2: + shiki@3.0.0: dependencies: - '@shikijs/core': 1.29.2 - '@shikijs/engine-javascript': 1.29.2 - '@shikijs/engine-oniguruma': 1.29.2 - '@shikijs/langs': 1.29.2 - '@shikijs/themes': 1.29.2 - '@shikijs/types': 1.29.2 - '@shikijs/vscode-textmate': 10.0.1 + '@shikijs/core': 3.0.0 + '@shikijs/engine-javascript': 3.0.0 + '@shikijs/engine-oniguruma': 3.0.0 + '@shikijs/langs': 3.0.0 + '@shikijs/themes': 3.0.0 + '@shikijs/types': 3.0.0 + '@shikijs/vscode-textmate': 10.0.2 '@types/hast': 3.0.4 siginfo@2.0.0: {} diff --git a/src/templates/mdc-highlighter.ts b/src/templates/mdc-highlighter.ts index acf32ade..98344bb2 100644 --- a/src/templates/mdc-highlighter.ts +++ b/src/templates/mdc-highlighter.ts @@ -75,7 +75,7 @@ export async function mdcHighlighter({ 'import { getMdcConfigs } from \'#mdc-configs\'', shikiEngine === 'javascript' ? 'import { createJavaScriptRegexEngine } from \'shiki/engine/javascript\'' - : 'import { createWasmOnigEngine } from \'shiki/engine/oniguruma\'', + : 'import { createOnigurumaEngine } from \'shiki/engine/oniguruma\'', code, 'const bundledLangs = {', ...Array.from(langsMap.entries()) @@ -94,7 +94,7 @@ export async function mdcHighlighter({ }), shikiEngine === 'javascript' ? 'const engine = createJavaScriptRegexEngine({ forgiving: true })' - : `const engine = createWasmOnigEngine(() => import('shiki/wasm'))`, + : `const engine = createOnigurumaEngine(() => import('shiki/wasm'))`, 'const highlighter = createShikiHighlighter({ bundledLangs, bundledThemes, options, getMdcConfigs, engine })', 'export default highlighter' ].join('\n')