From 564cfc72b563dfb87366e1b1d2f44c5908b2dc9e Mon Sep 17 00:00:00 2001 From: Aviv Keller Date: Thu, 13 Aug 2026 12:16:38 -0400 Subject: [PATCH 1/2] feat(shiki): add support for all languages on the server Signed-off-by: Aviv Keller --- packages/rehype-shiki/src/index.mjs | 44 ++++++++--------------------- 1 file changed, 11 insertions(+), 33 deletions(-) diff --git a/packages/rehype-shiki/src/index.mjs b/packages/rehype-shiki/src/index.mjs index 229f079bc084f..dffbde84d8b69 100644 --- a/packages/rehype-shiki/src/index.mjs +++ b/packages/rehype-shiki/src/index.mjs @@ -1,18 +1,4 @@ -// Keep all imports at the top -import cLanguage from 'shiki/langs/c.mjs'; -import coffeeScriptLanguage from 'shiki/langs/coffeescript.mjs'; -import cPlusPlusLanguage from 'shiki/langs/cpp.mjs'; -import diffLanguage from 'shiki/langs/diff.mjs'; -import dockerLanguage from 'shiki/langs/docker.mjs'; -import httpLanguage from 'shiki/langs/http.mjs'; -import iniLanguage from 'shiki/langs/ini.mjs'; -import javaScriptLanguage from 'shiki/langs/javascript.mjs'; -import jsonLanguage from 'shiki/langs/json.mjs'; -import powershellLanguage from 'shiki/langs/powershell.mjs'; -import shellScriptLanguage from 'shiki/langs/shellscript.mjs'; -import shellSessionLanguage from 'shiki/langs/shellsession.mjs'; -import typeScriptLanguage from 'shiki/langs/typescript.mjs'; -import yamlLanguage from 'shiki/langs/yaml.mjs'; +import { bundledLanguagesInfo } from 'shiki/langs'; import createHighlighter, { getLanguageByName } from '#rs/highlighter.mjs'; @@ -37,7 +23,10 @@ async function getEngine({ wasm = false }) { const { createJavaScriptRegexEngine } = await import('@shikijs/engine-javascript'); - return createJavaScriptRegexEngine(); + + // Not every bundled grammar compiles under the JavaScript engine, + // so skip the patterns it cannot handle instead of throwing. + return createJavaScriptRegexEngine({ forgiving: true }); } /** @@ -55,24 +44,13 @@ async function getTransformers({ twoslash = false, twoslashOptions }) { return transformers; } +// Every language, since this is meant for SSR-ed highlighting :-) export const LANGS = [ - ...cLanguage, - ...coffeeScriptLanguage, - ...cPlusPlusLanguage, - ...diffLanguage, - ...dockerLanguage, - ...httpLanguage, - ...iniLanguage, - { - ...javaScriptLanguage[0], - aliases: javaScriptLanguage[0].aliases.concat('cjs', 'mjs'), - }, - ...jsonLanguage, - ...powershellLanguage, - ...shellScriptLanguage, - ...shellSessionLanguage, - ...typeScriptLanguage, - ...yamlLanguage, + ...new Set( + ( + await Promise.all(bundledLanguagesInfo.map(language => language.import())) + ).flatMap(language => language.default) + ), ]; export const getLanguageDisplayName = language => From 724bd4cdeb3bffe218a545d4ffaadb4846f9f333 Mon Sep 17 00:00:00 2001 From: Aviv Keller Date: Thu, 13 Aug 2026 12:18:46 -0400 Subject: [PATCH 2/2] Create shiki-more-more.md Signed-off-by: Aviv Keller --- .changeset/shiki-more-more.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/shiki-more-more.md diff --git a/.changeset/shiki-more-more.md b/.changeset/shiki-more-more.md new file mode 100644 index 0000000000000..9f206d3fe804a --- /dev/null +++ b/.changeset/shiki-more-more.md @@ -0,0 +1,5 @@ +--- +'@node-core/rehype-shiki': minor +--- + +Add support for all Shiki languages when the `minimal` preset is not selected.