PKMer_QuickAdd 脚本 - 移动子笔记或附件到当前文件夹

以复选框显示文档中不处于同一文件夹的嵌入文件,可筛选📄笔记或者📦附件,复选框选择 true 提交 (Submit) 后则移动到当前笔记所在的文件夹,如果 false 或者不提交 (Submit) 则不移动。


这是一个从 https://pkmer.cn/pkmer-docs/10-obsidian/obsidian%e7%a4%be%e5%8c%ba%e6%8f%92%e4%bb%b6/quickadd/quickadd%e8%84%9a%e6%9c%ac-%e7%a7%bb%e5%8a%a8%e5%ad%90%e7%ac%94%e8%ae%b0%e6%88%96%e9%99%84%e4%bb%b6%e5%88%b0%e5%bd%93%e5%89%8d%e6%96%87%e4%bb%b6%e5%a4%b9 下的原始话题分离的讨论话题

找不到附件和笔记
image

附件形式
image

从楼上截图来看, 是 ![[subfolder/filename.jpg]] 路径里带了上层文件夹, 所以没能在脚本的 getFilePath(files, baseName) 逻辑里检测到这附件也存在

最好的办法就是笔记里永远写简单的 ![[filename.jpg]] 格式就行了

如果一定要维持笔记里是 ![[subfolder/filename.jpg]] 且能确保库里没有重名附件 (笔记和附件最好也不重名), 那可以考虑把脚本如下段落稍微改改:

function getFilePath(files, baseName) {
    // 下一行的原先 baseName => 改成 path.basename(baseName)
    let files2 = files.filter(f => path.basename(f.path).replace(".md", "") === path.basename(baseName).replace(".md", ""));
    let filePath = files2.map((f) => f.path);
    return filePath[0];
}

注: 本人并非原作者, 笔记和附件的相互链接关系很复杂, 可能有理解不到位的地方, 建议大型仓库执行大规模移动前要备份

1 个赞

收到了,之后更新上。

1 个赞