Files
element-plus/docs/.vitepress/plugins/headers.ts
Noblet Ouways 2f17df1209 style(eslint-config): newline before import type (#21036)
* 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 commit db0116a288.

* Revert "chore: fix"

This reverts commit 69c82a90c0.

* chore: fix

* style: `pnpm lint:fix`

* fix: lint

* chore: `pnpm format`
2025-06-16 15:37:12 +08:00

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)
}
}