dataview js 想获取如下的笔记如何获取

这是笔记内容:

需求::基本信息
产品::[[templater]]
编码::1.1.1

正文

  • 帮助中心

想用js获取产品=[[templater]]的所有笔记


let page=dv.pages('"9文献笔记"').where(b => JSON.stringify(b.产品).includes("templater"))

dv.header(3, page.需求)

这个代码报错


这个代码可以执行,但是,需要修改为: 产品::templater 需要去掉双链


let page=dv.pages('"9文献笔记"').where(b => b.产品=="templater")

dv.header(3, page.需求)


求大佬帮忙解答

image

试试 .filter(b=> b.产品?.path == 'templater 文件完整路径包括后缀')
(如果你这个双链是有文件的)

其他情况也可以自己调控制台看。

测试成功截图:

另外,希望你没有在同一文档定义多个相同属性,也就是一个文档里没有多个 产品::,不然你就只能自己调控制台看了。

这里可以用模糊匹配么? 比如 includes

好像能解决这个问题

事实上,如果你一个文档有多个 产品::,那会得到一个数组,需要用批处理。

此外,如果在这一个文档里,你有的是 产品:: 1,有的是 产品:: 1, 2,那就是在这个大数组里,有的项是字符串,有的项是数组。

因为内联不像 YAML 可以指定是字符串还是数组(通过指定属性类型是文本还是列表),它会根据你怎么写自动识别。

至于 includes() 对于字符串和数组使用分别是什么意思,你可以上网查找,翻 MDN 文档。

总之,如果你有一个想法的话,你可以用控制台看一看,写写代码试一试,自然就知道行不行了。

哈哈,不会调试,只会用别人的代码去试试


let page=dv.pages('"9文献笔记"').filter(b=> b.产品?.path=='5卡片盒/templater.md')

dv.header(3, page.需求)