Skip to content

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,仅应在可信仓库中使用;公开发布站请勿嵌入含外部请求的代码。

相关资源