Obsidian 插件:Dataview
示例一 最近 30 天创建的文件
Table file.ctime as "创建日期"
Where date(today) - file.ctime <= dur(30 day)
Sort file.ctime desc
把满足今天的日期减去创建文件的日期小于等于三天的文件,按照倒序排列,以表格的形式展示满足条件的文件的创建日期。
示例二 时间计算
今天已经过了 =round((date(now)-date(today)).hours,2) 小时,占比 =round((date(now)-date(today)).seconds/dur(24 hours).seconds*100,2)+"%";还剩 =round((date(tomorrow)-date(now)).hours,2) 小时,剩余:=round((date(tomorrow)-date(now)).seconds/dur(24 hours).seconds*100,2)+"%";
本周已经过了 =round((date(now)-date(sow)).hours,2) 小时,占比 =round((date(now)-date(sow)).second/dur(7 d).seconds*100,2)+"%";还剩 =round((date(eow)-date(now)).day,2) 天,也就是 =round((date(eow)-date(now)).hours,2) 小时,剩余 =round((date(eow)-date(now)).second/dur(7 d).seconds*100,2)+"%";
=date(today).month 月已经过了 =round((date(now)-date(som)).hours,2) 小时,占比 =round((date(now)-date(som)).second/(date(eom)-date(som)).seconds*100,2)+"%";还剩 =round((date(eom)-date(now)).day,2) 天,也就是 =round((date(eom)-date(now)).hours,2) 小时,剩余 =round((date(eom)-date(now)).second/(date(eom)-date(som)).seconds*100,2)+"%";
今年已经过了 =round((date(now)-date(soy)).day,2) 天,占比 =round((date(now)-date(soy)).second/dur(365 d).seconds*100,2)+"%";还剩 =round((date(eoy)-date(now)).day,2) 天,也就是 =round((date(eoy)-date(now)).hours,2) 小时,剩余:=round((date(eoy)-date(now)).second/dur(365 d).seconds*100,2)+"%";
dataviewjs
// 最高文件夹级别tag列表
for (let group of dv.pages("").filter(p => p.file.folder != "").groupBy(p => p.file.folder.split("/")[0])) {
dv.paragraph(`## ${group.key}`);
dv.paragraph(
dv.pages(`"${group.key}"`).file.tags.distinct().map(t => {return `[${t}](${t})`}).array().sort().join(" | "));
}
dataviewjs
// 主页最近创建文件示例
let now = moment();
dv.list(
dv.pages()
.filter(p => p["dg-publish"] === true) // 添加这一行来检查 dg-publish 元数据
.sort(p => p.file.cday, 'desc') // 按文件创建日期降序排列
.filter(p => moment(Number(p.file.cday)).isBetween(now.clone().subtract(7, 'days'), now, null, '[]')) // 筛选为最近七天
.map(p => moment(Number(p.file.cday)).format('yyyy-MM-DD') + ' — ' + p.file.link) // 设置输出格式
.limit(5)
)
在 Obsidian 的使用过程中,Dataview 的表格视图如何只显示二级子标签
在 Obsidian 中使用 Dataview 插件创建表格视图并只显示二级子标签,可以通过一些自定义查询来实现。假设你在笔记中使用了多级标签(如 #标签/子标签),你可以使用 Dataview 的 where 语句过滤掉不需要的内容,仅保留二级子标签。
以下是一个 dataview 示例查询语句:
table file.name as "文件名", tags as "标签" from "你的文件夹路径" where contains(tags, "/") and !contains(tags, "/") == false
table file.name as "文件名", tags as "标签":这是表格视图的定义,其中列出文件名和标签。from "你的文件夹路径":指定要查询的文件夹路径。where contains(tags, "/") and !contains(tags, "/") == false:这是过滤条件,确保只显示包含/的标签,也就是有子标签的情况。你可以根据需要进一步调整这个条件,以更精确地匹配特定的二级子标签。
你可能还需要根据具体的标签结构对查询进行调整。如果你想显示特定的二级子标签,可以修改查询以更精确地匹配。