请教下,如果我想把某个标题层级下的内容全部汇总,有什么办法可以实现吗?dataview好像不行。
比如说:我日记里面有个二级标题叫:思考记录。然后我想在周记里面把这周的日记里面记录的 思考记录 这些内容汇总,怎么处理呢?
有大佬教了用dataviewjs来写,但好像怎么改都不对:
```dataviewjs
const header = '## 感悟和思考'
const pages = dv.pages('"30-Life/每日笔记"').filter(p => p.file.name.includes("") && !p.file.path.includes("Templates")).filter(p => p.file.name.includes("") || p.file.name.includes("")).sort(p=>p.file.mtime,"desc");
const regex = new RegExp(`\n${header}\r?\n(.*?)(\n#+ |\n---|$)`, 's')
for (const page of pages) {
const file = app.vault.getAbstractFileByPath(page.file.path)
const contents = await app.vault.read(file)
const summary = contents.match(regex)
if (summary && summary[1].trim()) {
dv.header(6, page.file.link)
dv.paragraph(summary[1].trim())
}
}
如果你的思考记录是用无序列表的形式记录的话,或者可以参考这种方式管理
你的 Dataview from 是否指向你的日志文件夹,贴代码和文件夹路径
调整后的代码是这样的:
```dataview
table
L.text as 感悟和思考,
L.link as 链接
from "30-Life/每日笔记"
flatten file.lists as L
where
!L.parent and
meta(L.link).subpath = "Fleeting notes" and
dateformat(date(file.link), "yyyy-'W'WW") = this.week```
其中,30-Life/每日笔记 是文件夹路径,感悟和思考 是日记里面的二级目录。日记的标题是 2022-12-12 这样的格式,周记的格式是 2022-W50 这样的格式
将 subpath 后面的 “Fleeting notes” 改成你的标题名称(不需要#号)
如果你的weekly notes 的frontmatter 没有 week: 2022-W50,就将最后一句的 this.week 改成 this.file.name
试试这个,代码放在周志文件中(格式:2022-W50)
```dataview
table
dateformat(date, "ccc") as 星期,
L.text as 感悟和思考,
L.link as 链接
from "30-Life/每日笔记"
flatten file.lists as L
where
!L.parent and
meta(L.section).subpath = "感悟和思考" and
dateformat(date(file.link), "yyyy-'W'WW") = this.file.name
```
感谢大佬,貌似可以了。
顺便请教下,where语句里面的这句
dateformat(date(file.link), "yyyy-'W'WW") = this.file.name
是什么意思呢?我不知道这个汇总是不是全部的,比如我想只显示某个特定时间段的(比如春节、国庆之类的),是怎么改呢?
汇总当前周志文件所属的周,周内所有日志里面的内容(前面一句指定标题)
有特定日期就用日期来判断,比如 date(file.link) < date(today) 今天之前的所有日志文件。
系统学习 dataview,可以看 documentation:
Functions - Dataview (blacksmithgu.github.io)
感谢,这个有中文版的吗?我就是一直想把dataview这个插件弄明白,但都是不完整的信息,全是碎片,只能碰到问题解决问题,不完整
您好,我的需求是:在obsidian的“000 - Schedule”文件夹中,有2023W01.md、2023W02.md这样的md文件,2023表示年份,01、02表示相应周数。在每个md文件中,都有“2.1 Q1 目标细分任务”这样1个二级标题。类似于这个帖子中的问题,在“000 - Schedule”这个文件夹中创建一个md,编写代码,汇总不同周文件中“2.1 Q1 目标细分任务”这个二级标题中的文字内容。(此外,我没有使用Quickadd这个插件,不知是否会影响结果?)
我目前的代码是:
table
dateformat(date,"ccc") as 星期,
L.text as 任务,
L.link as 链接
from "000 - Schedule"
flatten file.lists as L
where
!L.parent and
meta(L.section).subpath = "目标细分任务" and
dateformat(date(file.link), "yyyy'W'WW") = this.file.name
结果只有表格,没有查询结果。我该如何修改代码?
感谢,通过这个实现了那年今日显示具体内容的效果,看别的那年今日都是只显示日期