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)
|
2023-12-20 08:41:16 +08:00
|
|
|
code = pageFooterTemplate(code)
|
2023-12-05 23:18:27 +08:00
|
|
|
|
|
|
|
return code
|
|
|
|
},
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
2023-12-19 20:30:00 +08:00
|
|
|
const pageHeaderTemplate = (code: string) => code.replace(/(^---$(\s|\S)+^---$)/m, `$1
|
2023-12-05 23:18:27 +08:00
|
|
|
|
|
|
|
# {{ $frontmatter.title }}
|
|
|
|
|
|
|
|
<PageInfo />
|
|
|
|
|
|
|
|
`)
|
2023-12-20 08:41:16 +08:00
|
|
|
|
|
|
|
const pageFooterTemplate = (code: string) => `${code}
|
|
|
|
|
|
|
|
## 变更记录
|
|
|
|
|
|
|
|
<Changelog />
|
|
|
|
`
|