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))
})