mirror of
https://github.com/element-plus/element-plus.git
synced 2026-03-13 07:51:17 +08:00
* perf: change to import-x * feat: add rules * chore: fix rule * chore: fix * chore: fix * chore: fix * style: `pnpm lint:fix` * Revert "style: `pnpm lint:fix`" This reverts commitdb0116a288. * Revert "chore: fix" This reverts commit69c82a90c0. * chore: fix * style: `pnpm lint:fix` * fix: lint * chore: `pnpm format`
30 lines
757 B
TypeScript
30 lines
757 B
TypeScript
import { resolveHeadersFromTokens, slugify } from '@mdit-vue/shared'
|
|
|
|
import type { MarkdownRenderer } from 'vitepress'
|
|
|
|
/**
|
|
* Get markdown headers info
|
|
*
|
|
* Extract them into env
|
|
*/
|
|
export default (md: MarkdownRenderer): void => {
|
|
// extract headers to env
|
|
const render = md.renderer.render.bind(md.renderer)
|
|
|
|
const level = [2, 3, 4, 5, 6]
|
|
md.renderer.render = (tokens, options, env) => {
|
|
env.headers = resolveHeadersFromTokens(tokens, {
|
|
level,
|
|
shouldAllowHtml: true,
|
|
shouldAllowNested: false,
|
|
shouldEscapeText: false,
|
|
slugify,
|
|
})
|
|
// remove space before <
|
|
env.headers.forEach((header) => {
|
|
header.title = header.title.replace(/\s+</g, '<')
|
|
})
|
|
return render(tokens, options, env)
|
|
}
|
|
}
|