遇到的问题
想通过datacore语法获取脚本所在文件A的名称,用来从别的目录筛选文件B名称中包含这个A名称的笔记。
现在,只能通过代码获取“当前激活的文件”名称,而是“这个 Datacore 脚本本身所在的那个笔记文件A”的名称。
这样就导致,激活窗口不同,datacore代码筛选的结果会变化。
已尝试的解决方案
网上搜和AI辅助都用过了,没解决了。
哪位大佬知道怎么解决吗?感谢!
想通过datacore语法获取脚本所在文件A的名称,用来从别的目录筛选文件B名称中包含这个A名称的笔记。
现在,只能通过代码获取“当前激活的文件”名称,而是“这个 Datacore 脚本本身所在的那个笔记文件A”的名称。
这样就导致,激活窗口不同,datacore代码筛选的结果会变化。
网上搜和AI辅助都用过了,没解决了。
哪位大佬知道怎么解决吗?感谢!
可以用这个语句来读取当前文件
const current = dc.useCurrentFile();
谢谢
以下是AI给的回复:
脚本确实在运行,但——dc.useCurrentFile()
在你当前的运行上下文中返回了 null
,所以出现 "未知笔记"
。
这是 Datacore 的一个已知限制
在某些情况下(特别是当你使用 Datacore dashboard、视图片段 或 非直接嵌入笔记 时),useCurrentFile()
无法识别“脚本宿主笔记”,返回 null
。
我们可以写成多层 fallback(逐级尝试):
dc.useCurrentFile()
(脚本所在笔记)dc.currentPage
(Datacore 当前上下文)window.app.workspace.getActiveFile()
(当前活动文件)'未知笔记'
最后,还是window.app.workspace.getActiveFile()
生效。
我已经放弃用Datacore了,用了dataview正则表达式实现了我想要的功能。