@the_tree @wilson 感谢二位详细回复!能用得上就行,我已经把代码上传至 #1 了。
下面回复一些补充信息:
是在哪学的?
因为觉得每次导出要抄两遍函数名字很麻烦,所以学了一点 JS class,是通用的。
为什么好像插件外不能直接使用?
这可能是因为目前 Obsidian 只在插件文件夹第一层名为 main.js 的 JS 文件提供 obsidian、codemirror 6 等,所以其他地方可能找不到模块。
QuickAdd 能用吗?有办法在插件外用吗?
这是使用 QuickAdd Capture console.log(this) 在开发控制台的输出截图:

易得,这个 this 在 QuickAdd Marco 里对应的就是下图红框位置:

如图所示,QuickAdd 的 this 里是有 app 和 obsidian 的,所以绝对是可以使用的。
同理,对于 Dataview,dv 就是 this。Dataview 获取 obsidian 又另有不同,可以直接在代码块内获取到,但却不在 this 中:
console.log(dv)
console.log(this)
console.log(obsidian)