问题
Logseq 目前删除 block 并不会删除引用的文件(图片),日积月累 assets 文件夹里无效附件非常多
解决
目前搜索到的有效方案是 Frederic 写的一段 pyphon 代码 ,但这段代码在涉及中文文件时会报错 UnicodeDecodeError: 'gbk' codec can't decode byte ... illegal multibyte sequence
解决办法是将代码中的 open(os.path.join(dirname, filename))
修改为 open(os.path.join(dirname, filename),encoding="UTF-8")
代码
1 |
|
(安装 python3 环境后,将代码保存为 check_asset_reference.py 复制到 logseq 需整理图谱的根文件夹中,使用 cmd 在当前文件夹运行 python3 c:\cloudlet.info\check_asset_reference.py
即可将无效附件移动至自动建立的 to_delete 文件夹中)
(代码默认处理 journal_dir 和 pages_dir 中文本涉及的 assets_dir 中的文件,可以结合实际情况修改)
其他
- 注意上述代码中的
encoding="UTF-8"
若是改为encoding="gb18030"
代码会正常运行但会误删文件 - 有相关的插件 logseq-plugin-file-manager,但据说会误删文件未修正
- 有相关的删除未使用图片代码 qbosen/backup_unref_images.sh,但只清理图片并不能解决无效附件问题
- 如果是从 Evernote 等其他笔记软件迁移至 Logseq 等情况,会出现其他附件库(如 cloudlet.info),需要先改代码清理 cloudlet.ino 文件夹,之后将 cloudlet.info 文件夹内剩余有效附件剪切至 assets ,再使用 Visual Studio Code 之类软件批量替换相关 journal 和 page 中的路径代码