代码替换进去,执行quickadd的该项时,直接提示:未找到相关插件。
@Probe 你有在ob测试过吗? THX
如何导出报错记录?
直接看 Ctrl+Shift+i
的 log 就行了吧, 简单错误这里直接就显示出来了
截图这里看着正常, 最后别忘了 return choice
是我犯了低级错误,配置文本里,我用了choice,不是Choice,修改后,可以了
如果不介意用dataview
的话,可以用 dv.page(fileSelector)['Choice']
替换手动截取
不过要用 Choice::
的格式
### 任意标题
Choice:: 灵感
Choice:: 留影
...
Choice:: 账号
...
//dv.page()
dv.paragraph(dv.current()['Choice'].join(', '))
哦哦, 对, 我的样例确实应该写健壮些, 一个没有匹配到怎么办, 拼写不对怎么办, 多了少了空格怎么办, 不想意外匹配的怎么注释掉, 等等
对, 用 dataview 抓取元数据, 通常比自己写解析要稳, 好办法~
因为是为了分类闪念录入,所以用的是quickadd
录入后,我再用dataview聚合。
代码里的(str) =>str 似乎无定义,不能运行
const lines = this.app.plugins.plugins.dataview.api.page("0 资料筛选/0筛取规则0.md")["choice"];
let choice = await this.quickAddApi.suggester((str) => str, lines);
改成这样,但似乎dataview不能返回yam属性数组,我在win运行的效果是空表
const lines = this.app.plugins.plugins.dataview.api.page("0 资料筛选/0筛取规则0.md")["choice"];
let choice = await this.quickAddApi.suggester(lines, lines);
md里的相关部分的内容是:
### 闪电日记选项列表
choice: 待办
choice: 摘录
...
let choice = await this.quickAddApi.suggester((str) => str, lines);
这里的 (string) => str
是 js 的 lambda表达式 (js也叫箭头函数),quickAddApi.suggester 这里接受这种 mapping 函数作为 displayItems
你遇到的问题是 md 里 元数据的格式不对,是 “choice::” 而不是 “choice:”,然后你的路径里有空格最好注意一下
到这个程度其实就是编程和阅读文档的能力了
https://blacksmithgu.github.io/obsidian-dataview/annotation/add-metadata
请教下:
为什么这个代码,sugest…的第一个参数是lines能正常运行
let lines = await content.split("\n")
.filter(line => line.trim().startsWith("choice: "))
.map(line => line.split(':')[1].trim());
let choice = await this.quickAddApi.suggester(lines, lines);
但换dataview取得的数组,传入lines,lines参数就运行不了,要改成这样才能运行:
const lines = this.app.plugins.plugins.dataview.api.page("0 资料筛选/0筛取规则0.md")["choice"];
let choice = await this.quickAddApi.suggester((str) => str,lines);
这是否表示,可以用quickadd获取dataview的静态内容输出,而不象dataview那样,每次都要聚合刷新?
把现在的dataviewjs代码,修改为js quickadd代码,能给出通用方法吗?
另外,若是只有一个选项时,dataview.api.page(。。。)[“dkfjdk”]取回的不是数组,而是串,如何简洁地加入处理这个例外的代码?
@iins
试修改了一段dataviewjs,把dv.都替换成 this.app.plugins.plugins.dataview.api.page
去掉dv.paragraph输出,改为return
把它放到js quickadd里,用quickadd作快速聚合输出,但不成功。
^^^^
修正,能返回内容。
现在要研究的是,dv.table,dv.list,dv.paragraph的输出,能否返回给quickadd
Mark一下,看两个神仙切磋技艺
我也搬个小板凳看一下