UNPKG

vitepress-theme-base-teek

Version:

查看 [使用说明](https://vp.xiaoying.org.cn/pages/9d746f)

39 lines (31 loc) 1.29 kB
import fs from 'fs'; import matter from 'gray-matter'; import jsonToYaml from 'json2yaml'; import readFileList, { FileItem } from './readFileList'; import { type, repairDate } from './fn'; export async function editFrontmatter(key: string = 'coverImg'): Promise<void> { // 只在 VitePress 构建(SSR)时执行 if (typeof window !== 'undefined') return; // 浏览器端不执行 const files: FileItem[] = readFileList(); for (const file of files) { const dataStr = fs.readFileSync(file.filePath, 'utf8'); const fileMatterObj = matter(dataStr); const matterData: Record<string, any> = fileMatterObj.data; let mark = false; // 删除指定 key if (key in matterData) { delete matterData[key]; mark = true; } if (mark) { if (matterData.date && type(matterData.date) === 'date') { matterData.date = repairDate(matterData.date); } const newData = jsonToYaml.stringify(matterData).replace(/\n\s{2}/g, '\n').replace(/"/g, '') + '---\r\n' + fileMatterObj.content; fs.writeFileSync(file.filePath, newData, 'utf8'); } } }