本话题及相关资源作教学用,请自行确保加载外部 JS 安全性问题,包括本话题中的 JS。
蓝奏云下载链接 密码: 7mcr
遇任何问题,请使用最新代码,先电脑端沙箱测试,尝试刷新代码块或重启 Ob。
额外需求仍请另建话题。友链:
在 DataviewJS 的翻页与随机 中,我们了解到 dv.view 语法调用外部 JS,同一文件可以在不同文档重复调用,这就达成了基本的复用。
然而,有时我们想要汇总的项目不尽相同。这时,需要用到 dv.view 的另一个功能:传参。
Dataview 官方文档 相关部分介绍如下:
如果你知晓 DataviewJS 小白手册“小白入门 DataviewJS 方法”,你会发现,这是导出一个对象,各属性逗号分隔,分别为我们设置的值。提醒:最常见报错 Unexpected identifier
就是忘记每项后写上逗号。
先从改变目标文件夹路径开始。
内部 DataviewJS 代码:
// 假设外部 JS 名为"dv-表格.js"
await dv.view('外部 JS 所在文件目录/dv-表格', { files: dv.pages(`"文件目录"`) })
在外部 JS 首行导入我们设置的属性:
然后,就可以在代码中使用这个属性的值了:
切换文件目录效果 GIF,点击展开
通过这个简单的实例,你已经掌握了所需知识,可以动手实践了。
实例:dv- 检索
标题为对应 JS 名,见文首网盘链接。
原帖 DataviewJS 汇总全文及特定标题下内容并解决图片显示痛点
内部 DataviewJS 代码
const tars = {
'任务一': 2,
'任务二': 2,
}
await dv.view('JS 目录/dv-检索', {
files: dv.pages(`"文件目录"`),
kwd: !1, showHead: !1, //tars,
obsidian, scale: 0.8, //mline: 5,
tb: {
'文档': p=> p.file.link,
'档': p=> p.档,
},
//li: ([p, li])=> dv.paragraph(`##### ${p.file.link}\n${li}`),
})
各自定义属性说明
- files:目标文件夹路径,按照 DataviewJS 格式。排序、筛选等依然照基本用法添加。
- kwd:是否包括空文档,
!1
为关,!0
为开。常用于汇总全文保留空文档。- 如汇总 1 周日记,可能其中有空文档,但汇总全文时依然希望保留跳转到这些文档的内部链接。
- 启用 mline 时停用。
- showHead:是否显示标题,
!1
为关,!0
为开。常用于汇总全文。 - tars:目标标题名称及级别,范围
1~6
。可以写大于 6 的数值,表示不包含下级标题。'任务一': 7
表现为假如标题“任务一”下还有低级别标题,只截取低级别标题前的内容。- 停用时,汇总全文。
- obsidian:一个必要参数。
- scale:表格输出原文缩放倍数,填 0 默认缩至 50% 大小。
- mline:常用于画廊瀑布流式汇总。启用后的表现为:
- 若有嵌入图片,选择首个展示。
- 若无,依设置值截取文档正文前几行展示。数值不要太大。
- 点击图片、正文区域跳转到对应文档,按住 Ctrl 点击在新标签页打开。
- tb:表格输出,停用 li 属性时启用。
- 第 1 项 key 为表头;第 2 项 value 为表体,其中
p
为函数变量。
- 第 1 项 key 为表头;第 2 项 value 为表体,其中
- li:文本、列表输出,按照 DataviewJS 格式。
p
为函数变量,li
代表汇总到的文本。
//
为 JS 单行注释语法,行内其后部分将被识别为注释。通过灵活加减 //
,我们能快速启动或停用某属性。
效果 GIF:
切换文本、表格输出
tars + 列表卡片式布局
mline + 瀑布流式布局
效果展示使用的 CSS:更新了坛里 Minimal Dataview 伪卡片 CSS。
若你看过,可前去查看新增 cssclasses 相关说明。