用dataview查询yaml的时候,yaml用“::”(双冒号)就能正常查询到对应的值,但是用“: "(冒号+空格)的时候查询结果就是空的了。
第一条就是“: "(冒号+空格);所有的查询值都是空值,
第二条是“::”(双冒号),所有的查询值就是正常的了。
是dataview的语法有问题吗?
```dataview
table 作者,中图分类号,标签,阅读状态
from "300@学习"
where contains(书名,"")
还是yaml语法的问题?
用dataview查询yaml的时候,yaml用“::”(双冒号)就能正常查询到对应的值,但是用“: "(冒号+空格)的时候查询结果就是空的了。
```dataview
table 作者,中图分类号,标签,阅读状态
from "300@学习"
where contains(书名,"")
还是yaml语法的问题?
dataview使用的yaml有两种声明方法:
两者是等价的
找到问题所在了,:
后面跟了个#
就无法正确识别了,但是很奇怪的::
后面跟#
就能正确识别成标签,是什么原因呢?
正解,凑满8个子。
空格+#,就是标签
OB 只会把 YAML 里 Tags:
的值识别为标签,并且无需添加 #
,并且它们会出现在标签面板内。而其他属性的赋值不会当作标签处理(但是 Dataview 是可以检索的)。而在正文里面,除了 #标签
,其他需要被检索的字段都需要用 ::
的形式。