Dataviewjs代码片段 —— 列出标签所在段落内容
- 实用技巧
- 2024-05-13
- 140热度
- 0评论
- Dataviewjs代码片段 —— 列出标签所在段落内容
- Dataviewjs代码片段 —— 查关键词所在行内容
- Dataviewjs进阶 —— 函数集合
- Dataviewjs进阶 —— 基础
- Dataview代码片段 —— 查询所有类型的文件
- Dataview代码片段 —— 限定标签-显示关键词所在行
- Dataview代码片段 —— 查指定标签的文件
- Dataview代码片段 —— 查文件夹所有文件
- Dataview函数集合
- Dataview常用语法速查
- Dataview进阶 —— 隐式字段
- Dataview进阶 —— 内联DQL查询
- Dataview进阶 —— 查询命令
- Dataview进阶 —— 基础字段
- Obsidian进阶 —— 初识Dataview
dataview
使用方法
- 复制以下代码,在任意md文件中插入即可。
- 注意修改文件路径为自己库中的路径,否则会报错
[!success] 添加dataview查询的方法
1. 用代码块包裹查询代码(第一行注明语言dataviewjs
和最后一行对应结尾)
2. 任意位置插入即可,注意修改文件路径和查询条件
代码
::: code-tabs
@tab 1. 查询单一标签
````sql
```dataviewjs
//使用时修改关键词即可
const term ="#标签"
let folderpath="限定文件夹"
//更改为限定文件夹即可,留空为遍历所有笔记
const files = app.vault.getMarkdownFiles().filter(file=>file.path.includes(folderpath))
const arr = files.map(async ( file) => {
const content = await app.vault.cachedRead(file)
const lines = content.split("\n").filter(line => line.contains(term))
return lines
})
Promise.all(arr).then(values =>
dv.list(values.flat()))
@tab 同时查询多个标签
// 使用时修改关键词即可
const terms = ["#语录", "#笔记目录", "#标签3"]; // 要查询的多个标签
let folderPath = ""; // 更改为限定文件夹即可,留空为遍历所有笔记
const files = app.vault.getMarkdownFiles().filter(file => file.path.includes(folderPath));
const arr = files.map(async (file) => {
const content = await app.vault.cachedRead(file);
const lines = content.split("\n").filter(line => {
return terms.map(term => line.includes(term)).every(result => result);
});
return lines;
});
Promise.all(arr).then(values =>
dv.list(values.flat()));