From ca765c9b181aa8be8d51f1249a40c82ef994e556 Mon Sep 17 00:00:00 2001 From: ccbikai Date: Sun, 11 Aug 2024 15:36:36 +0800 Subject: [PATCH] feat: integrate prismjs components importer for modular syntax highlighting Enhances PrismJS usage by adopting a dedicated importer tool to manage language components, improving maintainability and reducing bundle size. --- package.json | 1 + pnpm-lock.yaml | 12 ++++++++++++ src/lib/prism.js | 50 ++++++++++++++++++++++++------------------------ 3 files changed, 38 insertions(+), 25 deletions(-) diff --git a/package.json b/package.json index c779d8b..7863f3c 100644 --- a/package.json +++ b/package.json @@ -25,6 +25,7 @@ "lru-cache": "^11.0.0", "ofetch": "^1.3.4", "prismjs": "^1.29.0", + "prismjs-components-importer": "^0.2.0", "sanitize-html": "^2.13.0" }, "devDependencies": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 7c6b069..f9cc6d9 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -38,6 +38,9 @@ importers: prismjs: specifier: ^1.29.0 version: 1.29.0 + prismjs-components-importer: + specifier: ^0.2.0 + version: 0.2.0(prismjs@1.29.0) sanitize-html: specifier: ^2.13.0 version: 2.13.0 @@ -3925,6 +3928,11 @@ packages: printable-characters@1.0.42: resolution: {integrity: sha512-dKp+C4iXWK4vVYZmYSd0KBH5F/h1HoZRsbJ82AVKRO3PEo8L4lBS/vLwhVtpwwuYcoIsVY+1JYKR268yn480uQ==} + prismjs-components-importer@0.2.0: + resolution: {integrity: sha512-2WJBqocATZOOoApIH9y6QmZG7dkQsX9BKexbW6LjMZ9QBAxoDsmoAKTzOt3g9xgpTQVEydmkS4I4tSlguJ52Kg==} + peerDependencies: + prismjs: 1.28.0 + prismjs@1.29.0: resolution: {integrity: sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==} engines: {node: '>=6'} @@ -9050,6 +9058,10 @@ snapshots: printable-characters@1.0.42: {} + prismjs-components-importer@0.2.0(prismjs@1.29.0): + dependencies: + prismjs: 1.29.0 + prismjs@1.29.0: {} progress@2.0.3: {} diff --git a/src/lib/prism.js b/src/lib/prism.js index d61da0f..f9efe72 100644 --- a/src/lib/prism.js +++ b/src/lib/prism.js @@ -1,29 +1,29 @@ import prism from 'prismjs' -import 'prismjs/components/prism-c' -import 'prismjs/components/prism-clojure' -import 'prismjs/components/prism-cpp' -import 'prismjs/components/prism-csharp' -import 'prismjs/components/prism-css' -import 'prismjs/components/prism-dart' -import 'prismjs/components/prism-docker' -import 'prismjs/components/prism-elixir' -import 'prismjs/components/prism-go' -import 'prismjs/components/prism-markup' -import 'prismjs/components/prism-java' -import 'prismjs/components/prism-javascript' -import 'prismjs/components/prism-json' -import 'prismjs/components/prism-julia' -import 'prismjs/components/prism-kotlin' -import 'prismjs/components/prism-lua' -import 'prismjs/components/prism-markdown' -import 'prismjs/components/prism-pascal' -import 'prismjs/components/prism-php' -import 'prismjs/components/prism-python' -import 'prismjs/components/prism-ruby' -import 'prismjs/components/prism-rust' -import 'prismjs/components/prism-sql' -import 'prismjs/components/prism-typescript' -import 'prismjs/components/prism-yaml' +import 'prismjs-components-importer/cjs/prism-c' +import 'prismjs-components-importer/cjs/prism-clojure' +import 'prismjs-components-importer/cjs/prism-cpp' +import 'prismjs-components-importer/cjs/prism-csharp' +import 'prismjs-components-importer/cjs/prism-css' +import 'prismjs-components-importer/cjs/prism-dart' +import 'prismjs-components-importer/cjs/prism-docker' +import 'prismjs-components-importer/cjs/prism-elixir' +import 'prismjs-components-importer/cjs/prism-go' +import 'prismjs-components-importer/cjs/prism-markup' +import 'prismjs-components-importer/cjs/prism-java' +import 'prismjs-components-importer/cjs/prism-javascript' +import 'prismjs-components-importer/cjs/prism-json' +import 'prismjs-components-importer/cjs/prism-julia' +import 'prismjs-components-importer/cjs/prism-kotlin' +import 'prismjs-components-importer/cjs/prism-lua' +import 'prismjs-components-importer/cjs/prism-markdown' +import 'prismjs-components-importer/cjs/prism-pascal' +import 'prismjs-components-importer/cjs/prism-php' +import 'prismjs-components-importer/cjs/prism-python' +import 'prismjs-components-importer/cjs/prism-ruby' +import 'prismjs-components-importer/cjs/prism-rust' +import 'prismjs-components-importer/cjs/prism-sql' +import 'prismjs-components-importer/cjs/prism-typescript' +import 'prismjs-components-importer/cjs/prism-yaml' export default prism