Functions - Dataview

# 展示当前页面所有的tag
LIST join(file.tags, " ") WHERE file=this.file

bf98e8f4db27729dd98676845f5989d0_MD5.jpg

插件 Dataview
obsidian 插件之 dataview 入门 - 经验分享 - Obsidian 中文论坛
Examples - Dataview
Step1 — 先预热 : 一文讲透 Obsidian 插件 DataviewJS - 经验分享 - Obsidian 中文论坛
Step2 — 知其然 : 一文讲透 Obsidian 插件 DataviewJS - 经验分享 - Obsidian 中文论坛
Step3 — 知其所以然 : 一文讲透 Obsidian 插件 DataviewJS - 经验分享 - Obsidian 中文论坛
鸟姐的 dataviewjs 技巧 — 🌱 oldwinter の数字花园

map

对于所有元素执行相同操作
如  [1,2,3].map(p=>p+1)  可以得到  [2,3,4],这个 p 代指操作时的每一个元素,p=>p+1  本质上是个函数
再比如  dv.pages(`"目标文件夹"`).map(p=>p.file.tags)  得到目标文件夹下所有笔记的标签

filter

只保留返回为 true 的元素
如  dv.pages(`"目标文件夹"`).filter(p=>p.file.tags.includes('标签')  只保留了标签中含  标签  的那些文件数据

Dataviewjs 基本用法 - 经验分享 - Obsidian 中文论坛

const Buttons = app.plugins.plugins["buttons"]
const el = this.container

function createButton(name, content = name){
    return Buttons.createButton({
      app,
      el: el,
      args: {
        name: name,
        class: "button-cell"
      },
      clickOverride: {
        params: [],
        click: (x) => dv.paragraph("hello world")
      }
    })
  }


dv.table(["Test"], [[createButton("Foo")]])

Foo