背景

平时记笔记时,我习惯使用 Markdown 语法,图片都是放在本地。写作时,在编辑器里复制粘贴一下,就自动生成了一个本地的相对路径链接,不依赖网络,比较符合自身的需求。

不过发布博客时,由于目前的静态博客是基于 Github 的,图片都上传到 Github 上,访问速度不够理想。于是就有了想法——把所有博文本地图片批量上传到图床,并生成新的 Markdown 文件,其中的本地图片链接变为图床链接

这样做有以下好处:

  1. 加快图片的访问速度。
  2. 加快博客的编译和上传速度。
  3. 减少网站本身的流量压力。
  4. 无成本迁移,无论以后换哪个博客平台,比如 WordPress、Hexo、Hugo,都可以无缝迁移。

当然,如果图床出问题,也会有迁移的工作量。但由于之前在 V2EX 付费买了 SM.MS 的终身会员,而且本地图片和原来的 Markdown 文件都有存档,所以风险在可接受的范围内。

工具简介

工具使用的是 Python 语法,可将 Markdown 文件中所有标准图片语法的本地图片,上传至 sm.ms 图床,并将 Markdown 文件内链接替换,保存到指定目录,支持单个 MD 文件和多个 MD文件

效果如下,红色的链接会变为绿色的链接。

image20220227000008.png

代码已上传至我的 Github 上。

使用方法

1、安装依赖
2、修改 config.py,包括原 md 文档目录、新生成 md 文档的目录、图床的用户名和密码。
3、运行方法

  • 单个 md 文件:控制台到脚本所在目录下,使用 python3 uploadpic.py smms <sample.md>,其中 <smaple.md> 为文件名。
  • 多个 md 文件:控制台到脚本所在目录下,使用 python3 batch.py

参考链接