DataviewJS 速查表
DataviewJS 在 dataviewjs 代码块中运行 JavaScript,可访问 dv 全局对象,实现 Dataview 查询语言做不到的复杂逻辑。
mermaid
mindmap
root((DataviewJS 速查))
核心 API
dv.pages
dv.current
dv.paragraph
渲染
dv.table
dv.taskList
交互
dv.el
dv.view
数据源
#标签
文件夹核心 API
dataviewjs
// 查询页面
const pages = dv.pages('#项目')
// 当前文件
dv.current()
// 渲染 Markdown
dv.paragraph("文本")
// 渲染表格
dv.table(["名称","日期"], pages.map(p => [p.file.link, p.file.ctime]))
// 渲染列表
dv.list(pages.file.link)常用字段
| 字段 | 说明 |
|---|---|
p.file.name | 文件名 |
p.file.link | 可点击链接 |
p.file.ctime/mtime | 创建/修改时间 |
p.file.tags | 标签数组 |
p.file.etags | 含嵌套标签 |
p.属性名 | 自定义 frontmatter 属性 |
条件与遍历
dataviewjs
dv.pages("#任务")
.where(p => !p.done)
.sort(p => p.due, 'asc')
.forEach(p => dv.paragraph(p.file.link))输入与交互
dataviewjs
const name = await dv.prompt("输入名称")
const choice = await dv.suggester(["A","B"], ["A","B"])渲染 HTML
dataviewjs
dv.el("h3", "标题")
dv.el("div", "内容", { attr: { class: "callout" } })日期处理
dataviewjs
dv.paragraph(dv.date("today").plus({ days: 7 }).toFormat("yyyy-MM-dd"))注意
DataviewJS 执行任意 JS,仅应在可信仓库中使用;公开发布站请勿嵌入含外部请求的代码。