From 58e4c45b10e6cb06e28cc3431b4512934c1832ee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B9=9D=E6=9D=A1=E6=B6=BC=E6=9E=9C?= Date: Wed, 3 Sep 2025 02:45:25 +0800 Subject: [PATCH] Render shiki special language like 'ansi' and 'plaintext'. --- src/Highlighter.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/Highlighter.ts b/src/Highlighter.ts index e12b47b..51cd63f 100644 --- a/src/Highlighter.ts +++ b/src/Highlighter.ts @@ -31,6 +31,9 @@ interface CustomTheme { // some languages break obsidian's `registerMarkdownCodeBlockProcessor`, so we blacklist them const LANGUAGE_BLACKLIST = new Set(['c++', 'c#', 'f#', 'mermaid']); +// some languages are considered "special" by shiki.isSpecialLang +const LANGUAGE_SPECIAL = new Set(['plaintext', 'txt', 'text', 'plain', 'ansi']); + export class CodeHighlighter { plugin: ShikiPlugin; themeMapper: ThemeMapper; @@ -54,7 +57,7 @@ export class CodeHighlighter { await this.loadEC(); await this.loadShiki(); - this.supportedLanguages = [...Object.keys(bundledLanguages), ...this.customLanguages.map(i => i.name)]; + this.supportedLanguages = [...Object.keys(bundledLanguages), ...LANGUAGE_SPECIAL, ...this.customLanguages.map(i => i.name)]; } async unload(): Promise {