【已解决】如何用dataview汇总标签笔记的具体内容?

预期的效果:

将文库中所有标有“理论名词”的文件实时汇总在一个笔记中,显示文件的标题和文件的内容。
(PS:标签是打在文件属性里面的,没有打在文本块上)

就像这样:

遇到的问题:

用AI帮我写了一个dataview的代码:(本人完全不懂代码)

const term = "#理论名词"; // 要查询的标签
const notes = dv.pages(term); // 获取所有带有特定标签的笔记

if (notes.length > 0) {
   notes.forEach(note => {
       dv.header(3, note.file.name); // 显示笔记标题
       dv.paragraph(note.text || "没有内容"); // 尝试显示内容
   });
} else {
   dv.paragraph("没有找到任何带有#理论名词标签的笔记。");
}

但是显示的情况是这样的:

所以这是出现了什么问题呢?或者说有没有其他办法呢?

希望可以得到解答,非常感谢 :smiley:

看到一堆 “没有内容”, 那大概率就是 dv.paragraph(note.text || "没有内容"); 出错了

实际并没有这个 note.text
可以搜搜论坛里一般怎么读笔记正文文本
有不少办法, app.vault.cachedRead(file) 以及 dv.io.load(path) 等等
这一段大致应该是

if (notes.length > 0) {
   
   await notes.map(async note => {
   //              ^^^^^ 别忘了加 async
       const content = await dv.io.load(note.file.path);
       dv.header(3, note.file.link); // 显示笔记标题
       dv.paragraph(content || "没有内容"); // 尝试显示内容
   });
}

非常感谢您!困扰我好几个月的问题终于解决了! :grin:

1 个赞