自動化替換 Markdown 中的本地圖片引用
作者:jaeger
來源:http://jaeger.itscoder.com/python/2016/04/24/replace-image-file-in-markdown.html
我寫 Markdown 有個習慣,總是將引用到的圖片(截圖或保存的)先壓縮,然後上傳到圖床(雲存儲)上,生成外鏈,然後在 Markdown 中引用。因為國內的雲存儲服務訪問速度相對 GitHub 較快,同時在使用 Markdown 源文件時,不必連同圖片一起傳送或移動。
因此就催生了該半自動化工具腳本(GitHub 傳送門)的誕生。
實現的效果如下:
幾點說明
圖片壓縮:本文直接調用的是 TinyPNG 站點的 API,該站提供的壓縮服務還是不錯的,圖片壓縮率高,且壓縮前後顯示效果差別很小。對於開發者而言,該網站上相關文檔也是相當齊全的。
圖片上傳:我選擇的是 LeanCloud ,因為之前剛開始接觸雲存儲選擇了這個,後來就一直用了,國內的還可以選擇七牛的雲存儲提供商( LeanCloud 文件存儲實際用的也是七牛),都有相關的開發文檔的。
本地資料庫存儲:腳本中會將文件的 hash 值和 url 儲存到本地資料庫 中,避免相同問題多次壓縮上傳。
簡單流程圖
使用
安裝環境和依賴
Python 2.7 環境,自行搜索
安裝 package,遇到問題可以看 TinyPNG – API Reference:
安裝 package,遇到問題可以看 LeanCloud Python Doc:
or
填寫你申請的相關 API KEY(在 文件中填寫)
LEANCLOUDAPIID = "yourleancloudappid" LEANCLOUDAPIKEY = "yourleancloudapikey"
獲取 TinyPNG api key
獲取 LeanCloud api key & id
編寫你的 Markdown 文件 並 引用本地圖片文件,如下圖所示:
使用自動化腳本:
python replaceimagein_md.py your.md output.md
執行完之後,本地圖片的引用將會被替換成壓縮後的圖片的外鏈( url ),如下圖所示:
小技巧
如果你是 Linux 或 OS X 用戶,你可以將該腳本放在一個固定的位置,然後在你的 或者 中添加類似下面的 alias:
然後在你需要使用腳本的時候,在任何地方打開終端,輸入 即可:
最後
感謝基友 Brucezz 在開發中提供的幫助。
項目 GitHub 地址:https://github.com/laobie/WriteMarkdownLazily
第一次發 Python 開源項目,本身 Python 就比較菜,如果你有任何建議或意見,請在 GitHub 提 issue 或 pr,或者評論給我留言,謝謝~
題圖:pexels,CC0 授權。
點擊展開全文
※Django 如何實現全文檢索?
※Python 非同步教程:Asyncio
※如何正確閱讀計算機科學書籍?
※如何寫出優雅的 Docstring?
※一步一步搭建視頻聚合網站
TAG:編程派 |
※Facebook、Google News、Twitter 為了吸引用戶注意力,都用了哪些「小心機」?
※「RafflesMedicalGroup」引用區塊鏈技術在醫療健康領域的應用
※Perl 引用
※方法引用(Method reference)和invokedynamic指令詳細分析
※go web template css js 靜態資源引用
※為什麼AR-VR從業者不應引用Gartner技術成熟度曲線圖
※Swift 自動引用計數(ARC)
※Twitter 模仿 Snapchat?為吸引用戶,鞏固復甦之路
※Mozilla推出了新的努力,以吸引用戶回到Firefox瀏覽器
※日本亞馬遜Cyber Monday引入實時交易與網紅助推吸引用戶消費
※華為nova 5 Pro全面曝光,線下青春靚機引用成功典範
※Git 內部原理之 Git 引用
※加急翻譯-Trump引用的中國格言
※吸引用戶?買三星Galaxy Note 9送千元耳機
※樂鑫連續三年被 Gartner 物聯網酷供應商榜單引用
※華為為排隊購買iPhone的用戶提供移動電源來吸引用戶
※iPad Pro 2019渲染圖曝光 浴霸三攝/強化AR技術引用
※吳亦凡diss track引用孟郊的詩,如願將東方元素與嘻哈相結合
※CINNO Research關於部分媒體報道中杜撰引用我司分析師觀點的澄清聲明
※怎樣吸引用戶到店?Target、耐克和阿迪達斯的答案是「本地化」