2023-12-05 23:18:27 +08:00
|
|
|
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
|
|
|
|
},
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
2023-12-22 19:49:08 +08:00
|
|
|
const pageHeaderTemplate = (code: string) => !code.startsWith('---') ? code : code.replace(/(^---$(\s|\S)+?^---$)/m, `$1
|
2023-12-05 23:18:27 +08:00
|
|
|
|
|
|
|
# {{ $frontmatter.title }}
|
|
|
|
|
|
|
|
<PageInfo />
|
|
|
|
|
|
|
|
`)
|