能不能用dataview提取所有文件中的「%%XX%%」和「XX
」的「XX」内容并汇总
论坛里其实有不少资料, 比如 DataviewJS 的提取与汇总 - 经验分享
基本原理就是先拿到所需要的笔记; 挨个读笔记正文; 提取正文里关心的内容; 输出
抓 %%XX%%
注释也是类似的道理, 大致形如
// 获取所有文件
// 建议一上来不要选内容量很大的目录
const pages = dv.pages(`"笔记的目录/子目录"`);
// 用于存储提取的内容
const extractedContent = [];
// 遍历每个文件
for (const page of pages) {
const file = app.vault.getAbstractFileByPath(page.file.path);
const contents = await dv.io.load(page.file.path);
// 正则表达式匹配 %%XX%%
const regex = /%%(.+?)%%/g;
let match;
// 提取匹配的内容
while ((match = regex.exec(contents)) !== null) {
const content = match[1];
if (content) {
extractedContent.push({
file: page.file.link,
content: `\\%% ${content.trim()} \\%%`
});
}
}
}
// 显示提取的内容
dv.table(["File", "Content"], extractedContent.map(item => [item.file, item.content]));
收到,非常感谢