34 lines
631 B
TypeScript
34 lines
631 B
TypeScript
![]() |
import type { Plugin } from 'vite'
|
||
|
import { resolve, relative } from 'path'
|
||
|
|
||
|
const ROOT = resolve(__dirname, '../../')
|
||
|
|
||
|
export function MarkdownTransform(): Plugin {
|
||
|
return {
|
||
|
name: 'docs-md-transform',
|
||
|
enforce: 'pre',
|
||
|
async transform(code, id) {
|
||
|
if (!id.endsWith('.md'))
|
||
|
return null
|
||
|
|
||
|
id = relative(ROOT, id)
|
||
|
|
||
|
if (id == 'index.md')
|
||
|
return null
|
||
|
|
||
|
code = pageHeaderTemplate(code)
|
||
|
|
||
|
return code
|
||
|
},
|
||
|
}
|
||
|
}
|
||
|
|
||
|
|
||
![]() |
const pageHeaderTemplate = (code: string) => !code.startsWith('---') ? code : code.replace(/(^---$(\s|\S)+?^---$)/m, `$1
|
||
![]() |
|
||
|
# {{ $frontmatter.title }}
|
||
|
|
||
|
<PageInfo />
|
||
|
|
||
|
`)
|