感谢代码分享,今天刚好需要用,不过我用QuickAdd比较多,结合#5,改成了QuickAdd Macro版:
module.exports = async (params) => {
const file = await this.app.workspace.getActiveFile();
let content = await this.app.vault.read(file);
// 正则公式
let reg = /```.*\n.*?\S[\s\S]*?```$/gm;
let choices = ["autohotkey", "bash", "basic", "batch", "c", "csharp", "cpp", "css", "docker", "fortran", "golang", "haskell", "html", "ini", "java", "javascript", "json", "kotlin", "less", "lua", "makefile", "markdown", "matlab", "nginx", "objectivec", "perl", "php", "plaintext", "powershell", "python", "r", "ruby", "rust", "sass", "scala", "scheme", "shell", "sql", "swift", "typescript", "vim", "wiki", "yaml"];
let choice = await params.quickAddApi.suggester(choices, choices);
if (!choice) return;
let b = content.match(reg);
for (let i of b) {
content = content.replace(i, '```' + choice + '\n' + i.split('\n').slice(1).join('\n'));
}
await app.vault.modify(app.vault.getAbstractFileByPath(file.path), content);
};