make languageLabel case-insensitive too

pull/4960/head
Divyansh Singh 2 months ago
parent 60506d4a9b
commit d492d0211c

@ -113,6 +113,7 @@ export interface MarkdownOptions extends Options {
/**
* Custom language labels for display.
* Overrides the default language label shown in code blocks.
* Keys are case-insensitive.
*
* @example { 'vue': 'Vue SFC' }
*/

@ -68,14 +68,12 @@ export async function highlight(
...(options.languages || []),
...Object.values(options.languageAlias || {})
],
langAlias: options.languageAlias
? Object.fromEntries(
Object.entries(options.languageAlias).map(([key, value]) => [
key.toLowerCase(),
value
])
)
: undefined
langAlias: Object.fromEntries(
Object.entries(options.languageAlias || {}).map(([k, v]) => [
k.toLowerCase(),
v
])
)
})
await options?.shikiSetup?.(highlighter)

@ -6,6 +6,13 @@ export interface Options {
}
export function preWrapperPlugin(md: MarkdownItAsync, options: Options) {
const languageLabel = Object.fromEntries(
Object.entries(options.languageLabel || {}).map(([k, v]) => [
k.toLowerCase(),
v
])
)
const fence = md.renderer.rules.fence!
md.renderer.rules.fence = (...args) => {
const [tokens, idx] = args
@ -18,7 +25,8 @@ export function preWrapperPlugin(md: MarkdownItAsync, options: Options) {
token.info = token.info.replace(/ active$/, '').replace(/ active /, ' ')
const lang = extractLang(token.info)
const langLabel = options.languageLabel?.[lang] || lang.replace(/_/g, ' ')
const langLabel =
languageLabel[lang.toLowerCase()] || lang.replace(/_/g, ' ')
return (
`<div class="language-${lang}${active}">` +

Loading…
Cancel
Save