探讨一下如何利用 Obsidian 的优势与图床的优势,构建文章管理系统。方便对文章的图片等附件资源进行有效的管理 设计到的软件或插件有:
- Obsidian 插件: Custom Attachment Location (自动命名管理文章附件)
- Obsidian 插件: ImageAutoUpload (上传图片到 PicList)
- PicList: 图床管理软件
问题
在 Obsidian 中编写文章的时候,想要发表在各大博客网站或微信公众号有一个大的问题就是:我该怎么处理文章中的图片?
每次复制过去文章后,只能一个一个的将图片复制到对应文章编辑器中的文章编辑器中,费时又费力。
之前使用过 Custom Attachment Location 这个插件,将复制后的图片复制到文章当前目录下的 assets 目录,并自动命名为 文章名+标题名。编写文章时使用 ImageTookit 插件复制图片。
但总归是不太方便,就了解了了解图床这种方式。
图床
很多人使用图床的解决方案,图床本质上是利用图片存储服务器管理图片,也即将图片上传到图床服务器,文章中引用的是服务器中的图片地址。这样无论文章怎么复制,都不需要担心图片问题了,图片被管理在云端,复制链接即复制图片,避免了每次复制文章还得单独复制图片的烦恼。
图床的缺点
既然这么多好处,为什么我最开始不考虑使用图床呢?
其实,图床有下面几个缺点:
- 文件托管在服务器,不符合我使用 Obsidian 的初衷,我希望数据保存在本地,通过 github/gitee 同步文章,不希望依赖于第三方的在线文章管理
- 图片文件与文章分离,图片存在服务器,文章存在本地。
- 万一图床服务跑路了,你所有文章中的图片都无法访问了,控制权很难把控
- 某些博客平台在发表文章的时候对于外链资源的支持不是那么友好。
- 关键点是图床中的文件是能够被外部访问的,没办法阻止外部访问这些图片。
综合以上的考虑,我一直没有想过使用图床。
解决方案
但人的懒惰会战胜所有阻碍懒惰的障碍,最近想多发一些文章的时候才深刻感受到多平台图片资源同步带来的麻烦,发表一篇写好的文章至少也得 10 分钟的时间,完全不可容忍。才又想起了图床。
那么怎么解决上面的问题呢?我是这样考虑的。
- 图床工具使用
PicList+ImageUploadObsidian 插件, 选择 github 图床,将文件上传到github仓库中,目前文件也是通过 git 来同步的,文件还在自己的掌控中 - 目前我的考虑是,需要发表的文章放在图床服务器中,因为本来文章发表出来就是给人看的,这些图片开放也没什么问题。步骤是闭
ImageUpload自动上传,平时写文章依然使用Custom Attachment Location插件管理图片资源文件,等文章编写完成后,按需要,使用命令upload all image一次性将图片上传。私密性文章中的图片就不需要上传了,就使用本地图片。 - Github 作为全球最大的交友网站, 跑路的风险接近于 0
- 我发现直接使用 github 的外链,CSDN、掘金等博客转储不了,曲线救国一下,Github 允许我们将仓库设置为 GithubPage,Githb Page 中的图片是可以转储的,你说神奇不神奇,仓库开启 Github 存储,发表文章之前将外链中的
https://raw.githubusercontent.com/{{user}}/{{仓库名}}/master/全部替换成仓库的 GitPage 地址 - 通过关闭自动上传,只通过
Upload All Image上传那些你想上传的图片。
具体步骤如下:
GitHub 配置
创建 Github 仓库
本着我自己的数据我自己管理、能白嫖我就白嫖的原则,我这里使用 Github,在 Github 中创建一个仓库,名称为 Obsidian-Img,名称可以自己随便起。
注意:仓库状态必须选择为 Public,否则图片链接无法访问。

添加 Token
在 github.com/settings/to… 页面中,点击添加 Generate New Token
过期时间选永不过期,当然也可以选择一个过期时间,只不过到了过期时间就得重新生成 token 了
最后点击 Generate Token
生成 token 之后已定要保存一下这个 Token,后面会需要,一旦离开这个页面 Token 就看不到了
开启 GithubPage
GithubPage 用来根据文件创建网站,我们把图片上传到 Github 后,开启了 GithubPage 的仓库会自动将图片构建成网站,这样就可以通过网站地址访问图片了。
为什么要多此一举呢? 因为我发现 CSDN 这样的博客网站对于 Github 仓库中的直接文件连接无法引用,相反微信公众号倒是可以,如果只是写微信公众号的这一步可以省略。
而放到 GithubPage 中的图片,它们访问就没有问题。
打开仓库的配置:
点击 Pages,按下面的方式点击开通即可,开通后就可以得到一个地址,之后就可以通过这个地址访问仓库中的图片了。

PicList 配置
Piclist 是一个图床管理的软件,他提供一个统一的图片入口,通过用户配置,将上传的图片上传到如 github、腾讯云、阿里云等各种网络存储中,并返回一个图片可访问链接。
在下面网址下载 PicLsit piclist.cn/
添加 GIthub 图床
在 PicList 软件中添加 Github 图床。
配置如下:
配置名称: 随便填写
设定仓库名: Github用户名/仓库名
Token: 上面步骤中创建的 Token
设定存储路径:可以不填,就是上传到仓库的哪一个文件夹下面。
设定自定义域名:一般来说,文件上传完成后,PicList 会根据云存储类型生成访问地址,github 的话就是 https://raw.githubusercontent.com/{{user}}/{{仓库名}}/master/ 如果填写了自定义域名,会将这个头替换成填写的,是不是发现华点了?那岂不是可以自动替换成上面说的 githubPage 的地址吗?很抱歉可以也不可以,因为 github Page 每次上传构建需要一点时间,每次上传的图片没办法立即预览到,如果你可以忍受也可以。

切换为默认图床
在上传菜单中,点击切换凸窗,将刚刚创建的图床设置为默认。

Obsidian
- 安装插件 Custom Attachment Location
- 安装插件 ImageAutoUpload
配置 Custom Attachment Location

上面的配置,每次复制图片到文章里面的时候,会自动将文件复制到当前目录的 assets 目录下,并根据文件名称+标题名称进行重命名。
这样复制复制图片之后的效果是这样的

配置 Image auto upload
几乎不用配置,只要安装了 PicList,使用默认配置就可以,关掉自动上传即可。

上传图片到图床
编写完文章,确认无误后,Ctrl+P 选择 Upload All Images 即可将文章中的所有图片一并上传到图床,并删除本地文件。


编写文章
编写文章推荐使用 md.doocs.org/, 记住需要将文章中的 raw.githubusercontent.com/{{用户名}} / {{仓库名}} / master 修改为上面推荐的 githubPage 的地址,我这里的是这样的。
raw.githubusercontent.com/MengFly/Obs… => mengfly.github.io/Obsidian-Im…

这个网站很厉害的一个点不单单是可以帮你排版微信公众号,他还可以帮你一键发布到多个平台。
