feat: support alias

pull/3237/head
Anthony Fu 2 years ago
parent 98ba8a5141
commit e8ca2de421

@ -101,8 +101,8 @@
"mark.js": "8.11.1",
"minisearch": "^6.2.0",
"mrmime": "^1.0.1",
"shikiji": "^0.7.0",
"shikiji-transformers": "^0.7.0",
"shikiji": "^0.7.1",
"shikiji-transformers": "^0.7.1",
"vite": "^5.0.0",
"vue": "^3.3.8"
},

@ -45,11 +45,11 @@ importers:
specifier: ^1.0.1
version: 1.0.1
shikiji:
specifier: ^0.7.0
version: 0.7.0
specifier: ^0.7.1
version: 0.7.1
shikiji-transformers:
specifier: ^0.7.0
version: 0.7.0
specifier: ^0.7.1
version: 0.7.1
vite:
specifier: ^5.0.0
version: 5.0.0(@types/node@20.9.1)
@ -4163,14 +4163,14 @@ packages:
resolution: {integrity: sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==}
dev: true
/shikiji-transformers@0.7.0:
resolution: {integrity: sha512-IuujhNtUjs6kyNRjrn36k5Aj/Ea7JZpoB5YaM7rqkK+sM6MdIQBcZDAOhvoD/ITgFht4bcamGXvZ8+Aw1j7VZQ==}
/shikiji-transformers@0.7.1:
resolution: {integrity: sha512-Y4MsRl8s/rx6xnO3kckKC6j93YJepeGT8ye9Bnz6ecadrtqKXZbDeERLX9OgkEhKNwxLlvo9Yk9N59oNj/O0QQ==}
dependencies:
shikiji: 0.7.0
shikiji: 0.7.1
dev: false
/shikiji@0.7.0:
resolution: {integrity: sha512-Tzx9pS9ixMVNsfZjeOoJWR3t3Vw054LU/r2euAGSRJPg8/v1sumxZsZQrajai2jpksn0qT3HJXcqzNaiJcJSag==}
/shikiji@0.7.1:
resolution: {integrity: sha512-w/zKRaYe6RhkksZily2WG7yzz/g6qJsqrJom9OVbhLd4pzONXbVNWOlNHYhpMJ1SRvRp7CWVbh3MXy34bLKV4g==}
dependencies:
hast-util-to-html: 9.0.0
dev: false

@ -61,13 +61,31 @@ export interface MarkdownOptions extends MarkdownIt.Options {
sfc?: SfcPluginOptions
theme?: ThemeOptions
languages?: LanguageInput[]
languageAlias?: Record<string, string>
toc?: TocPluginOptions
externalLinks?: Record<string, string>
cache?: boolean
/**
* Options for `@mdit-vue/plugin-component`
* @see https://github.com/mdit-vue/mdit-vue/tree/main/packages/plugin-component
*/
component?: ComponentPluginOptions
/**
* Enable math support by `markdown-it-mathjax3`
* @default false
* @see https://vitepress.dev/guide/markdown#math-equations
*/
math?: boolean | any
/**
* Options for `markdown-it-container`
* @see https://github.com/markdown-it/markdown-it-container
*/
container?: ContainerOptions
shikijiTransformers?: ShikijiTransformer[]
/**
* Transformers applied to code blocks
* @see https://github.com/antfu/shikiji#hast-transformers
*/
codeTransformers?: ShikijiTransformer[]
}
export type MarkdownRenderer = MarkdownIt
@ -91,7 +109,8 @@ export const createMarkdownRenderer = async (
options.languages,
options.defaultHighlightLang,
logger,
options.shikijiTransformers
options.codeTransformers,
options.languageAlias
)),
...options
})

@ -58,14 +58,16 @@ export async function highlight(
languages?: LanguageInput[],
defaultLang: string = '',
logger: Pick<Logger, 'warn'> = console,
userTransformers: ShikijiTransformer[] = []
userTransformers: ShikijiTransformer[] = [],
languageAlias: Record<string, string> = {}
): Promise<(str: string, lang: string, attrs: string) => string> {
const highlighter = await getHighlighter({
themes:
typeof theme === 'string' || 'name' in theme
? [theme]
: [theme.light, theme.dark],
langs: languages?.length ? languages : Object.keys(bundledLanguages)
langs: languages?.length ? languages : Object.keys(bundledLanguages),
langAlias: languageAlias,
})
const transformers: ShikijiTransformer[] = [

@ -44,4 +44,5 @@ function extractLang(info: string) {
.replace(/:(no-)?line-numbers({| |$|=\d*).*/, '')
.replace(/(-vue|{| ).*$/, '')
.replace(/^vue-html$/, 'template')
.replace(/^ansi$/, '')
}

Loading…
Cancel
Save