From 08ad2cffe91e2e6c62dd4fc8fdb075ceb2f8ff4d Mon Sep 17 00:00:00 2001 From: Divyansh Singh <40380293+brc-dd@users.noreply.github.com> Date: Sun, 30 Oct 2022 15:25:22 +0530 Subject: [PATCH] fix(build): use addClass from shiki-processor reverts #1546 (fixed in upstream) fixes #1555 --- package.json | 2 +- pnpm-lock.yaml | 13 +++----- src/node/markdown/plugins/highlight.ts | 44 +++++++++++++++----------- 3 files changed, 32 insertions(+), 27 deletions(-) diff --git a/package.json b/package.json index ee29c3d8ad3..c9a3fe0764a 100644 --- a/package.json +++ b/package.json @@ -88,7 +88,6 @@ "@vueuse/core": "^9.4.0", "body-scroll-lock": "4.0.0-beta.0", "shiki": "^0.11.1", - "shiki-processor": "^0.1.0", "vite": "^3.1.8", "vue": "^3.2.41" }, @@ -157,6 +156,7 @@ "semver": "^7.3.8", "simple-git-hooks": "^2.8.1", "sirv": "^2.0.2", + "shiki-processor": "^0.1.1", "supports-color": "^9.2.3", "typescript": "~4.8.4", "vitest": "^0.24.3", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 0140c221e56..e6333d2b11a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -73,7 +73,7 @@ importers: rollup-plugin-esbuild: ^4.10.1 semver: ^7.3.8 shiki: ^0.11.1 - shiki-processor: ^0.1.0 + shiki-processor: ^0.1.1 simple-git-hooks: ^2.8.1 sirv: ^2.0.2 supports-color: ^9.2.3 @@ -91,7 +91,6 @@ importers: '@vueuse/core': 9.4.0_vue@3.2.41 body-scroll-lock: 4.0.0-beta.0 shiki: 0.11.1 - shiki-processor: 0.1.0_shiki@0.11.1 vite: 3.1.8 vue: 3.2.41 devDependencies: @@ -157,6 +156,7 @@ importers: rollup-plugin-dts: 4.2.3_gypgyaqhine6mwjfvh7icfhviq rollup-plugin-esbuild: 4.10.1_g3cmpcqb4ptt4sr26x7hjpe6wu semver: 7.3.8 + shiki-processor: 0.1.1_shiki@0.11.1 simple-git-hooks: 2.8.1 sirv: 2.0.2 supports-color: 9.2.3 @@ -3450,13 +3450,13 @@ packages: resolution: {integrity: sha512-8o/QEhSSRb1a5i7TFR0iM4G16Z0vYB2OQVs4G3aAFXjn3T6yEx8AZxy1PgDF7I00LZHYA3WxaSYIf5e5sAX8Rw==} dev: true - /shiki-processor/0.1.0_shiki@0.11.1: - resolution: {integrity: sha512-7ty3VouP7AQMlERKeiobVeyhjUW6rPMM1b+xFcFF/XwhkN4//Fg9Ju6hPfIOvO4ztylkbLqYufbJmLJmw7SfQA==} + /shiki-processor/0.1.1_shiki@0.11.1: + resolution: {integrity: sha512-K2v/JNHdMRGFnbcVqAgvPU8qmZNgtiBrYcYKe3O6Lx2W0RoyiwzrrpCUU917b2r2EMS+2FNgRIgz9xvtmF/L7w==} peerDependencies: shiki: ^0.11.1 dependencies: shiki: 0.11.1 - dev: false + dev: true /shiki/0.11.1: resolution: {integrity: sha512-EugY9VASFuDqOexOgXR18ZV+TbFrQHeCpEYaXamO+SZlsnT/2LxuLBX25GGtIrwaEVFXUAbUQ601SWE2rMwWHA==} @@ -3464,7 +3464,6 @@ packages: jsonc-parser: 3.2.0 vscode-oniguruma: 1.6.2 vscode-textmate: 6.0.0 - dev: false /side-channel/1.0.4: resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} @@ -3931,11 +3930,9 @@ packages: /vscode-oniguruma/1.6.2: resolution: {integrity: sha512-KH8+KKov5eS/9WhofZR8M8dMHWN2gTxjMsG4jd04YhpbPR91fUj7rYQ2/XjeHCJWbg7X++ApRIU9NUwM2vTvLA==} - dev: false /vscode-textmate/6.0.0: resolution: {integrity: sha512-gu73tuZfJgu+mvCSy4UZwd2JXykjK9zAZsfmDeut5dx/1a7FeTk0XwJsSuqQn+cuMCGVbIBfl+s53X4T19DnzQ==} - dev: false /vue-demi/0.13.11_vue@3.2.41: resolution: {integrity: sha512-IR8HoEEGM65YY3ZJYAjMlKygDQn25D5ajNFNoKh9RSDMQtlzCxtfQjdQgv9jjK+m3377SsJXY8ysq8kLCZL25A==} diff --git a/src/node/markdown/plugins/highlight.ts b/src/node/markdown/plugins/highlight.ts index 9f0c807c131..46e3f92ab24 100644 --- a/src/node/markdown/plugins/highlight.ts +++ b/src/node/markdown/plugins/highlight.ts @@ -1,12 +1,13 @@ -import { IThemeRegistration, HtmlRendererOptions } from 'shiki' +import type { HtmlRendererOptions, IThemeRegistration } from 'shiki' import { + addClass, createDiffProcessor, createFocusProcessor, createHighlightProcessor, createRangeProcessor, + defineProcessor, getHighlighter, - Processor, - defineProcessor + type Processor } from 'shiki-processor' import type { ThemeOptions } from '../markdown' @@ -68,7 +69,6 @@ export async function highlight( processors }) - const classRE = /]*class="(.*?)"/ const styleRE = /]*(style=".*?")/ const preRE = /^/ const vueRE = /-vue$/ @@ -93,21 +93,29 @@ export async function highlight( ) } - const dark = cleanup( - highlighter.codeToHtml(str, { - lang, - lineOptions, - theme: getThemeName(theme.dark) - }) - ).replace(classRE, (_, cls) => _.replace(cls, 'vp-code-dark')) + const dark = addClass( + cleanup( + highlighter.codeToHtml(str, { + lang, + lineOptions, + theme: getThemeName(theme.dark) + }) + ), + 'vp-code-dark', + 'pre' + ) - const light = cleanup( - highlighter.codeToHtml(str, { - lang, - lineOptions, - theme: getThemeName(theme.light) - }) - ).replace(classRE, (_, cls) => _.replace(cls, 'vp-code-light')) + const light = addClass( + cleanup( + highlighter.codeToHtml(str, { + lang, + lineOptions, + theme: getThemeName(theme.light) + }) + ), + 'vp-code-light', + 'pre' + ) return dark + light }