Markdown工具箱是開發(fā)者為Markdown筆記管理做的一個工具集,復(fù)制、移動、離線化你的Markdown文檔,清理Markdown引用路徑中的垃圾文件。
開發(fā)背景
為了方便地整理 md 文檔
我不信任任何圖床,但是 TextBundle 還沒有普及,所以目前我在做 Markdown 筆記的時候,會把圖片都放到 md 文檔同目錄下的 assets 文件夾,用相對路徑引用圖片。
但這就帶來一個問題:一個目錄下所有筆記的圖片都在同一個 assets 目錄下,如果我想要整理下筆記,將其中幾份筆記移動到另一個文件夾,因為所有圖片使用的是相對路徑,我就需要將所有引用到的圖片都一并復(fù)制過去。
而如果要從存有上百張、上千張圖片的 assets 文件夾中找到要移動的文檔所引用的所有圖片,是非常困難的;而如果一股腦將整個 assets 文件夾復(fù)制過去,必然會造成磁盤空間浪費。
這就是 Markdown 的通?。?/p>
圖片用圖床吧,網(wǎng)絡(luò)會影響體驗,圖床也難保幾十年地靠譜
圖片用本地絕對路徑吧,分享文檔到其它設(shè)備,就看不了圖了
圖片用本地相對路徑吧,多個文檔共用一個圖片目錄的話,后期整理和分享也都不方便
不過我還是堅持 md 筆記使用本地相對路徑的圖片,為了方便整理文檔,就寫了這個工具,第一個功能是 復(fù)制 ,用于移動文檔的同時自動移動文檔中索引的相對路徑的圖片、附件。
為了離線網(wǎng)絡(luò)文章的圖片
通過一些(例如簡悅)瀏覽器插件可以將網(wǎng)絡(luò)上的文章保存為 md 格式,不過里面的圖片仍然是在線鏈接,如果這些文章很棒,為了避免其中的圖片鏈接失效,就需要將其下載下來。
另外,雖然將網(wǎng)頁上的文章復(fù)制到 Typora 等編輯器也可以直接將圖片下載下來,但也有以下不足:
不能批量操作
對有些為了防爬蟲而要求 cookies 的網(wǎng)站的圖片無法成功下載
對有些為了防外鏈而對 Headers 有要求的網(wǎng)站的圖片無法成功下載
還有在我將 mp4、mp3 等文件拖入 Typora 時,Typora 也不會將這些文件自動復(fù)制到 assets 目錄。
所以做了 離線化 這個功能,方便批量地將所有文檔中引用到的附件、圖片放到相對路徑中引用。
為了清理圖片垃圾
在 Typora 中,例如我截了一張圖,粘貼進(jìn)去,這張圖片就會被自動保存到相對路徑的 assets 目錄,但是,如果我將這個圖片從文檔中刪掉,刪掉的只是它的引用路徑,實際圖片文件仍然在 assets 目錄中保存著,長久以往,assets 中必然會有許多沒有被引用但是仍占據(jù)空間的垃圾文件,它們混雜在被正常引用的文件中,很難一一刪掉。
所以我做了這個清理功能,原理是:
對指定文件夾,得到這個文件夾下所有的 md 文檔(不遞歸),從所有的文檔中統(tǒng)計都有哪些正在被以相對路徑引用的圖片和附件,并找到這些圖片和附件的所在文件夾,得到這些附件文件夾中所有的文件,再一一比對哪些文件沒有被上述找到的 md 文檔引用,統(tǒng)一移動到同級 未引用附件 文件夾中,在彈出對話框經(jīng)用戶確認(rèn)后刪除它們。
特性
Python3 用 Pyside2 寫的,對于 Linux、MacOS、Windows 系統(tǒng),只要裝了 Python3 就能用。
我是個編程渣渣,用不慣英文變量(不會起名,閱讀理解的速度也慢),程序里的大部分變量都是中文
沒有精力做英文版本
功能介紹
復(fù)制
將批量將 md 筆記(連帶它的相對路徑引用的圖片、附件)復(fù)制或移動到另一指定的文件夾
離線化
批量將 md 筆記中的在線圖片、附件、絕對路徑引用的文件下載或移動到筆記的相對路徑文件夾中,并將原始筆記中原來的絕對路徑改為相對路徑
清理
批量清理 Markdown 相對路徑索引的文件夾中已不再被引用的圖片