From b88ae8d4a11a20104b2007c2631eb7aeb123d965 Mon Sep 17 00:00:00 2001 From: Anthony Fu Date: Thu, 23 Jan 2025 05:05:50 +0800 Subject: [PATCH 1/2] feat: allow `markdown.config` and `markdown.preConfig` to accept async function (#4512) --- src/node/markdown/markdown.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/node/markdown/markdown.ts b/src/node/markdown/markdown.ts index 378b54c1..8bfad0b5 100644 --- a/src/node/markdown/markdown.ts +++ b/src/node/markdown/markdown.ts @@ -53,11 +53,11 @@ export interface MarkdownOptions extends Options { /** * Setup markdown-it instance before applying plugins */ - preConfig?: (md: MarkdownIt) => void + preConfig?: (md: MarkdownIt) => Awaited /** * Setup markdown-it instance */ - config?: (md: MarkdownIt) => void + config?: (md: MarkdownIt) => Awaited /** * Disable cache (experimental) */ @@ -229,7 +229,7 @@ export async function createMarkdownRenderer( md.use(restoreEntities) if (options.preConfig) { - options.preConfig(md) + await options.preConfig(md) } // custom plugins @@ -322,7 +322,7 @@ export async function createMarkdownRenderer( // apply user config if (options.config) { - options.config(md) + await options.config(md) } return md From 4f77b4fdfdbe945e482348a57731bff5fb4672fc Mon Sep 17 00:00:00 2001 From: Anthony Fu Date: Thu, 23 Jan 2025 05:08:31 +0800 Subject: [PATCH 2/2] fix(types): support preload built-in shiki languages as string (#4513) --- src/node/markdown/markdown.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/node/markdown/markdown.ts b/src/node/markdown/markdown.ts index 8bfad0b5..c7b74d9e 100644 --- a/src/node/markdown/markdown.ts +++ b/src/node/markdown/markdown.ts @@ -24,7 +24,7 @@ import MarkdownIt from 'markdown-it' import anchorPlugin from 'markdown-it-anchor' import attrsPlugin from 'markdown-it-attrs' import { full as emojiPlugin } from 'markdown-it-emoji' -import type { BuiltinTheme, Highlighter } from 'shiki' +import type { BuiltinLanguage, BuiltinTheme, Highlighter } from 'shiki' import type { Logger } from 'vite' import { containerPlugin, type ContainerOptions } from './plugins/containers' import { gitHubAlertsPlugin } from './plugins/githubAlerts' @@ -81,10 +81,10 @@ export interface MarkdownOptions extends Options { */ theme?: ThemeOptions /** - * Languages for syntax highlighting. + * Custom languages for syntax highlighting or pre-load built-in languages. * @see https://shiki.style/languages */ - languages?: LanguageInput[] + languages?: (LanguageInput | BuiltinLanguage)[] /** * Custom language aliases. *