diff options
Diffstat (limited to 'packages/markdown/remark/src/remark-prism.ts')
-rw-r--r-- | packages/markdown/remark/src/remark-prism.ts | 27 |
1 files changed, 12 insertions, 15 deletions
diff --git a/packages/markdown/remark/src/remark-prism.ts b/packages/markdown/remark/src/remark-prism.ts index d8dd8d922..d7a4ff996 100644 --- a/packages/markdown/remark/src/remark-prism.ts +++ b/packages/markdown/remark/src/remark-prism.ts @@ -4,26 +4,24 @@ import { addAstro } from '@astrojs/prism'; import loadLanguages from 'prismjs/components/index.js'; const noVisit = new Set(['root', 'html', 'text']); -const languageMap = new Map([ - ['ts', 'typescript'] -]); +const languageMap = new Map([['ts', 'typescript']]); function runHighlighter(lang: string, code: string) { - let classLanguage = `language-${lang}` + let classLanguage = `language-${lang}`; if (lang == null) { lang = 'plaintext'; } const ensureLoaded = (lang: string) => { - if(lang && !Prism.languages[lang]) { + if (lang && !Prism.languages[lang]) { loadLanguages([lang]); } }; - if(languageMap.has(lang)) { + if (languageMap.has(lang)) { ensureLoaded(languageMap.get(lang)!); - } else if(lang === 'astro') { + } else if (lang === 'astro') { ensureLoaded('typescript'); addAstro(Prism); } else { @@ -31,7 +29,7 @@ function runHighlighter(lang: string, code: string) { ensureLoaded(lang); } - if(lang && !Prism.languages[lang]) { + if (lang && !Prism.languages[lang]) { console.warn(`Unable to load the language: ${lang}`); } @@ -48,26 +46,25 @@ type MaybeString = string | null | undefined; /** */ function transformer(className: MaybeString) { - return function(tree: any) { + return function (tree: any) { const visitor = (node: any) => { - let {lang, value} = node; + let { lang, value } = node; node.type = 'html'; let { html, classLanguage } = runHighlighter(lang, value); let classes = [classLanguage]; - if(className) { + if (className) { classes.push(className); } node.value = `<pre class="${classes.join(' ')}"><code data-astro-raw class="${classLanguage}">${html}</code></pre>`; return node; }; - return visit(tree, 'code', visitor) - } + return visit(tree, 'code', visitor); + }; } - function plugin(className: MaybeString) { return transformer.bind(null, className); } -export default plugin;
\ No newline at end of file +export default plugin; |