|
|
|
@ -185,6 +185,10 @@ export interface MarkdownOptions extends Options {
|
|
|
|
|
* @see https://vitepress.dev/guide/markdown#github-flavored-alerts
|
|
|
|
|
*/
|
|
|
|
|
gfmAlerts?: boolean
|
|
|
|
|
/**
|
|
|
|
|
* @default 'Copy Code'
|
|
|
|
|
*/
|
|
|
|
|
codeCopyButtonTitle?: string
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export type MarkdownRenderer = MarkdownIt
|
|
|
|
@ -196,6 +200,7 @@ export const createMarkdownRenderer = async (
|
|
|
|
|
logger: Pick<Logger, 'warn'> = console
|
|
|
|
|
): Promise<MarkdownRenderer> => {
|
|
|
|
|
const theme = options.theme ?? { light: 'github-light', dark: 'github-dark' }
|
|
|
|
|
const codeCopyButtonTitle = options.codeCopyButtonTitle || 'Copy Code'
|
|
|
|
|
const hasSingleTheme = typeof theme === 'string' || 'name' in theme
|
|
|
|
|
|
|
|
|
|
const md = MarkdownIt({
|
|
|
|
@ -215,7 +220,7 @@ export const createMarkdownRenderer = async (
|
|
|
|
|
// custom plugins
|
|
|
|
|
md.use(componentPlugin, { ...options.component })
|
|
|
|
|
.use(highlightLinePlugin)
|
|
|
|
|
.use(preWrapperPlugin, { hasSingleTheme })
|
|
|
|
|
.use(preWrapperPlugin, { codeCopyButtonTitle, hasSingleTheme })
|
|
|
|
|
.use(snippetPlugin, srcDir)
|
|
|
|
|
.use(containerPlugin, { hasSingleTheme }, options.container)
|
|
|
|
|
.use(imagePlugin, options.image)
|
|
|
|
|