yaml区的复选框不能像文中的复选框一样被query出来吗

yaml区的复选框不能像文中的复选框一样被query出来吗?

那又怎么样选取这些yaml区有复选框的笔记

是说 YAML 区域的 “true/false值” 也表现为复选框?
这跟正文里的 “列表任务” 确实没啥关系, 只是外观像


怎么样选取这些yaml区有复选框的笔记

如果是说的 dataview, 就按照普通 YAML 属性过滤就行了, 见文档 Metadata on Pages reviewed: false 那个例子 (最后可以补一个过滤范围 WHERE reviewed = false)

嗯嗯,就是这样的


没有选中的的笔记可以自动汇聚
然后也可以查询下勾选的笔记
这样是怎么实现呢?

我理解 YAML 里的 布尔值属性, 一共四个状态

---
1
reviewed: true
2
reviewed: false
3
reviewed:     (有属性名, 但是值为空白)
4
(这个属性根本没写在 YFM 区域)
---

  • 前两个的查询写法是很明确的 WHERE reviewed = trueWHERE reviewed = false
  • 第三个 / 第四个的查询写法是 WHERE reviewed = null
    • 但是想 “区分开” 第三个 / 第四个, 这个暂时不会
    • 如果限定必须 DQL 来区分 “有键无值 or 无键”, 我试了半天 string(...) / nonnull(...) 等, 还是不会弄
    • 如果可以用 dataviewjs 来做, 见楼下的解决方案, 大致形如 dv.pages(...).filter(b => b["reviewed"] === undefined)
  • 多个条件联合, 类似 WHERE reviewed = true OR reviewed = false
const r = app.metadataCache.getFileCache(app.workspace.getActiveFile())
console.log(r.frontmatter?.待办)
1 个赞

是dataviewjs吗,我复制后,直接消失了 :rofl:

复制代码前, 最好是可以稍微看一下代码大致做了啥 (全面仔细检查不现实, 但较短的还是可以看看)

截图里的两行, 具体来说是这个意思:
第一行是 变量定义+赋值 const r = 这个一般不输出
第二行是 console.log() 输出在控制台里

所以, 这段 dvjs 逻辑执行后, 并不会向 “笔记内” 显示出啥内容

想要直接显示在笔记里, 可以参考大部分的 dvjs 代码样例,
通常长的像 dv.table(["title1", "title2"], dv.pages(...).filter(...).map(...)) 之类的

嗯嗯嗯,谢谢 :pray:

1 个赞