求助:关于Datacore获取脚本所在文件的名称问题?

遇到的问题

想通过datacore语法获取脚本所在文件A的名称,用来从别的目录筛选文件B名称中包含这个A名称的笔记。

现在,只能通过代码获取“当前激活的文件”名称,而是“这个 Datacore 脚本本身所在的那个笔记文件A”的名称。

这样就导致,激活窗口不同,datacore代码筛选的结果会变化。

已尝试的解决方案

网上搜和AI辅助都用过了,没解决了。

哪位大佬知道怎么解决吗?感谢!

可以用这个语句来读取当前文件

const current = dc.useCurrentFile();

谢谢 :pray:

以下是AI给的回复:

脚本确实在运行,但——dc.useCurrentFile() 在你当前的运行上下文中返回了 null,所以出现 "未知笔记"

这是 Datacore 的一个已知限制:point_down:
在某些情况下(特别是当你使用 Datacore dashboard视图片段非直接嵌入笔记 时),useCurrentFile() 无法识别“脚本宿主笔记”,返回 null

解决方案:兼容所有情况的稳健方案

我们可以写成多层 fallback(逐级尝试):

  1. :white_check_mark: 优先使用 dc.useCurrentFile()(脚本所在笔记)
  2. :white_check_mark: 若为空,则尝试 dc.currentPage(Datacore 当前上下文)
  3. :white_check_mark: 若仍为空,则尝试 window.app.workspace.getActiveFile()(当前活动文件)
  4. :white_check_mark: 最后兜底 '未知笔记'

最后,还是window.app.workspace.getActiveFile()生效。

我已经放弃用Datacore了,用了dataview正则表达式实现了我想要的功能。