视频链接:Obsidian与删除附件
灵感来源
对于Markdown中的图片、附件管理,B站up主咬猪娃的AttachFlow 插件可以完美解决复制、删除等问题。
该插件对于图片、Word、Excel、PPT、xmind、pdf、音频、视频、Excalidraw文件都能很方便的管理。
![](https://cdnfile.sspai.com/2024/05/11/d16600d91275874e7c82bd391496a26c.png?imageView2/2/w/1120/q/40/interlace/1/ignore-error/1)
![](https://cdnfile.sspai.com/2024/05/11/1ffc6740ea9139cec1b8f8625a820400.png?imageView2/2/w/1120/q/40/interlace/1/ignore-error/1)
右键附件后会出现一个菜单:
![](https://cdnfile.sspai.com/2024/05/11/9fe8bb6a6dd52dacc28672788a59ebbd.png?imageView2/2/w/1120/q/40/interlace/1/ignore-error/1)
选项依次为:
1. 复制文件到剪贴板;
2. 在默认应用中打开;
3. 在系统文件夹中显示;
4. 在左边的导航栏中显示;
5. 重命名;
6.删除文件以及相关链接。
问题与需求
但是,Markdown中的pdf文件,虽然也是以图片的方式展示的,但是右键不会打开菜单。
![](https://cdnfile.sspai.com/2024/05/11/6e56a29c4a0ffda99e2121294d3789b9.png?imageView2/2/w/1120/q/40/interlace/1/ignore-error/1)
如果需要删除pdf文件的话,就需要去找目录里的源文件删除。
其次,该插件无法在Excalidraw画板中用。如果直接右键删除图片的话,仅会删除画板中的图片,但不会删除文件目录中的图片。
![](https://cdnfile.sspai.com/2024/05/11/cd905cfc325a924eca67454d516d2d81.png?imageView2/2/w/1120/q/40/interlace/1/ignore-error/1)
所以我想能不能做一个Quicker动作,专门删除附件,配合AttachFlow 插件就能实现完美的体验了。
解决办法
Markdown中的附件
AttachFlow 插件已经能实现很好的删除效果了,推荐使用。
这里的Quicker动作主要起到补充删除pdf的作用,当然也可以用来删除其他类型的附件。
制作Quicker动作的思路:
![](https://cdnfile.sspai.com/2024/05/11/a0658506572076d2d10272ad9f385a89.jpg?imageView2/2/w/1120/q/40/interlace/1/ignore-error/1)
对于Markdown中的附件,首先找到当前笔记所属的文件夹,然后在该文件夹的附件文件夹中,找到对应附件,最后删除。
注意删除时需要选中链接,如:
![567](assets/2024-05-10_165006.png)
起作用的其实是assets/2024-05-10_165006.png,但是为了方便还是全部选中吧。
演示:
![](https://cdnfile.sspai.com/2024/05/11/df86a04b3328a8db26c62601f885a6aa.gif)
可以看到随着删除附件,左边导航栏中的附件在逐渐较少。
但是需要注意,该动作只能删除由本地直接拖到该Markdown文档的图片。
如果是在Obsidian库中其它位置拖入的图片,则该图片只是一个链接,并不是真正的图片。用该动作删除时会显示“正则匹配不成功”或者“路径不存在”,这时就知道当前图片只是一个链接,可以放心删除。
Excalidraw
图片拖入Excalidraw,会复制进来到附件文件夹。其他文件,如:pdf、视频、音频拖入Excalidraw,则会创建绝对路径,基于本地电脑。所以在Excalidraw中删除附件的操作只针对图片。
制作Quicker动作的思路看参考上面的思路图。
Excalidraw本质是md文件,复制里面的图片实际上是复制文本。
![](https://cdnfile.sspai.com/2024/05/11/77bab3138c938a2b7241c97159e65fe5.png?imageView2/2/w/1120/q/40/interlace/1/ignore-error/1)
从文本中可以找到附件的“fileID”,
然后以Markdown打开Excalidraw文件,可以发现该“fileID”对应文件的相对路径。只需要将Excalidraw文件转换为文本文件,然后根据“fileID”提取附件路径即可。
![](https://cdnfile.sspai.com/2024/05/11/481e34330e58103da55a215dd9ef6777.png?imageView2/2/w/1120/q/40/interlace/1/ignore-error/1)
找到当前笔记所属的文件夹,然后在该文件夹的附件文件夹中,找到对应附件,最后删除。
演示;
![](https://cdnfile.sspai.com/2024/05/11/0726e559690a676442804ee0ddfb9c95.gif)
但是需要注意,该动作只能删除由本地直接拖到该Excalidraw文档的图片。
如果是在Obsidian库中其它位置拖入的图片,则该图片只是一个链接,并不是真正的图片。用该动作删除时会显示“正则匹配不成功”或者“路径不存在”,这时就知道当前图片只是一个链接,可以放心删除。
总结
我将Quicker动作、不同的摘录情况的调试运行详情放到了github仓库。
AttachFlow 插件已经够用了,并不推荐大家使用本文的Quicker动作。这篇文章主要是给大家提供思路,大家如果要使用的话得修改一下动作,因为每个人的附件管理方式可能不一样。
我的附件管理方式:Obsidian附件管理方式。
可付费代写Quicker动作!!
谢谢观看!