#脚本 #dataviewDQL语句-Data QueryLanguage 数据查询语言标准语法-> SELECTselect_list>> [ INTOnew_table ]>> FROMtable_source>> [ WHEREsearch_condition ]>> [ GROUPBY group_by_expression ]>> [ HAVINGsearch_condition ]>> [ ORDERBY order_expression [ ASC | DESC ] ]文件夹*03教程*的文件列表-```dataviewlist from "03教程"
文件夹03教程的文件列表, 过滤器: 文件名包含数据两个字 -
list from "03教程" where contains(file.name,"数据")
文件夹03教程的文件列表, 过滤器: 文件名不包含数据两个字 -
list from "03教程" where !contains(file.name,"数据")
文件夹03教程的文件列表, 过滤器: 文件名不包含数据两个字, 限制显示3条 -
list from "03教程" where !contains(file.name,"数据")limit (6)
文件夹03教程的文件列表, 过滤器: 文件名包含 装备 09 -
list from "03教程"where contains(file.name,"装备")where contains(file.name,"09")
文件夹03教程的文件列表, 过滤器: 文件名包含 装备 09 -
list from "03教程"where contains(file.name,"装备") and contains(file.name,"09")
文件夹03教程里面的todo -
task from "03教程"
文件夹03教程已经完成的任务 -
dv.taskList(dv.pages('"03教程"').file.tasks.where(t => t.completed));
文件夹03教程未完成的任务 -
dv.taskList(dv.pages('"03教程"').file.tasks.where(t => !t.completed));
装备属性 -
table 技能冷却时间缩减,暴击几率,物理吸血,免疫伤害from "03教程"where contains(file.name, "装备")
元数据 -
table author,titlefrom "03教程"where contains(file.name, "元")
计算时差
-
=(date(2022-02-01)-date(today))
文件修改时间
-
This page was last modified at $= dv.current().file.mtime.
输出所有带有关键词的行, 数据展示方式: 列表 -
const keyword = "免疫";const files = app.vault.getMarkdownFiles();const newFiles = files.filter((file) => file.name.includes("装备"));const arr = newFiles.map(async (file) => {const content = await app.vault.cachedRead(file);const lines = content.split("\n").filter((line) => line.contains(keyword));1return lines;});Promise.all(arr).then((values) => dv.list(values.flat()));
输出所有带有关键词的行, 数据展示方式: 表格 -
const term = "免疫伤害";const files = app.vault.getMarkdownFiles();const newFiles = files.filter((file) => file.name.includes("装备"));const arr = newFiles.map(async (file) => {const content = await app.vault.cachedRead(file);const lines = content.split("\n").filter((line) => line.contains(term));return [file.name, lines];});// 生成表格Promise.all(arr).then((values) => {dv.table(["文件名", "免疫伤害"], values);});
dataviewjs](https://blacksmithgu.github.io/obsidian-dataview/data-queries/)) -
let pages = dv.pages("#装备").where(b => (parseInt(b.免疫伤害.replace("%","")) > 5));for (let group of pages.groupBy((b) => parseInt(b.免疫伤害.replace("%", "")) > 50)) {dv.header(3, group.key);dv.table(["文件名","免疫伤害","暴击几率"],group.rows.sort((row) => row.免疫伤害, "desc").map((row) => [row.file.link, row["免疫伤害"], row["暴击几率"]]));}
创建元素 -
dv.el("b", "This is some bold text");dv.header(1, "一级标题");dv.header(6, "六级标题");dv.paragraph("This is some text");dv.span("This is some text");dv.list([1, 2, 3])dv.list(dv.pages('"03教程"').file.name)dv.list(dv.pages('"03教程"').file.link)
注意点 - 文件夹是单引号里放双引号, 双引号里面写文件名
dv.list(dv.pages('"03教程"').file.name)
文件属性](https://blacksmithgu.github.io/obsidian-dataview/data-annotation/)) -
- 文件名:
$= dv.current().file.name - 文件的父文件夹:
$= dv.current().file.folder - 文件的完整路径:
$= dv.current().file.path - 文件大小:
$= dv.current().file.size - 文件标签:
$= dv.current().file.tags - 包含标签装备的文件路径:
$= dv.pagePaths("#装备") - 包含标签装备的文件路径:
$= dv.list(dv.pagePaths("#装备"))
dataview官网 - https://blacksmithgu.github.io/obsidian-dataview/
参考资料 - Obsidian 插件之 Dataview - 知乎 (zhihu.com) obsidian插件之dataview入门 - 知乎 (zhihu.com) https://c94n0azlfu.feishu.cn/docs/doccnTu0YTtoiC7C70HaUOyPBFh
<a name="VLdM1"></a>## 显示元数据表格```javascript---标题: 分成两半的子爵作者: 伊塔洛·卡尔维诺分类: 中篇出版: 译林出版社在读: 2022-01-02已读: 2022-01-06---```dataviewjs// 04测试是一个文件夹let files = dv.pages('"04测试"');const values = files.map(async (file) => {return ["[[" + file.file.path + "|" + file.标题 + "]]", file.作者, file.分类, file.出版, file.在读, file.已读];});Promise.all(values).then((values) => {dv.table(["标题", "作者", "分类", "出版", "在读", "已读"], values);});
名人名言
思路是最重要的, 其他的百度, bing, stackoverflow, github, 安卓文档, autojs文档, 最后才是群里问问
—- 牙叔教程
声明
部分内容来自网络
本教程仅用于学习, 禁止用于其他用途
bilibili
微信公众号 牙叔教程

QQ群
747748653
