Obsidian插件篇-Dataview联合Templater脚本示例


Obsidian 插件篇 -Dataview 联合 Templater 脚本示例

Dataview 和 Templater 两个插件在 Obsidian 的插件市场中都举足轻重,那么联动后起到的作用自然是 1+1>2 的。本篇文章主要介绍 Dataview 联合 Templater 的使用。研究的不多,只收集却没有深入验证,以下是具体的脚本内容。

Dataview 联合 Templater

  • 步骤
    • 同时安装了 Templater 以及 Dataview ,并启用。
    • 将代码放在模板文件中,用 Templater 调用这个模板即可。(待测试验证)
  • 预期效果
    • 可以快速输出你想要查询的字符串,且生成表格,以下为对应的代码。
const files = app.vault.getMarkdownFiles()  
const prompt = "<% tp.system.prompt("Query for") %>"  
  
const fileObject = files.map(async (file) => {  
const fileLink = "[["+file.name.split(".")[0]+"]]"  
const content = await app.vault.cachedRead(file)  
return {fileLink, content}  
})  
  
Promise.all(fileObject).then(files => {  
  
let values = new Set(files.reduce((acc, file) => {  
const lines = file.content.split("\n").filter(line => line.match(new RegExp(prompt, "i")))  
if (lines[0] && !file.fileLink.includes("<% tp.file.title %>")) {  
if (acc[0]) {  
return [...acc, [file.fileLink, lines.join("\n")]]  
} else {  
return [[file.fileLink, lines.join("\n")]]  
}  
}  
return acc  
}, []))  
  
dv.header(1, prompt)  
dv.table(["file", "lines"], Array.from(values))  
})

文章作者: huan
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 huan !
  目录