gpt4 book ai didi

javascript - Node.js - 如何读取/写入更改其前端元数据的 Markdown 文件?

转载 作者:行者123 更新时间:2023-12-05 00:28:36 26 4
gpt4 key购买 nike

我有几百个 Markdown 文件,我想遍历它们并将新数据添加到它们的前端元数据中。
例如,这就是我的文件现在的样子:

---
title: My title here
---


Markdown content here
我想添加一个 编号 属性(property)给他们:
---
title: My title here
id: 1982n1x23981u1
---


Markdown content
在 Node 中最干净的方法是什么?我找到了一些处理 Markdown 的包,但它们都旨在将其转换为 JSON。
提前致谢!

最佳答案

这是我用来更新 Markdown 脚本中所有笔记的前端的基本脚本:

// @ts-check
const { readdir, readFile, writeFile } = require("fs/promises");
const matter = require("gray-matter");
const { stringify } = require("yaml");

const directory = "<YOUR-DIRECTORY>";

async function updateFrontMatter(filename) {
const filepath = `${directory}/${filename}`;

const { data: frontMatter, content } = matter(await readFile(filepath));

// remove desc attribute
if (frontMatter.desc === "") {
delete frontMatter["desc"];
}

// parse created date attribute and convert it as timestamp
if (typeof frontMatter.created === "string") {
frontMatter.created = new Date(frontMatter.created).getTime();
}

const newContent = `---\n${stringify(frontMatter)}---\n${content}`;

await writeFile(filepath, newContent);

console.log(`- [x] ${filepath}`);
}

async function main() {
const filenames = await readdir(directory);
const markdownFilenames = filenames.filter((f) => f.endsWith(".md"));

await Promise.all(markdownFilenames.map(updateFrontMatter));
}

main().catch(console.error);

关于javascript - Node.js - 如何读取/写入更改其前端元数据的 Markdown 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62586022/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com