# 记录一下给typora设置图床的过程

为何要设置图床呢?因为我们本地写Markdown,图片往往是存在本地的,发给别人的话别人就看不到图片了。另外,本地写Markdown然后上传到自己的博客,或者是上传到其他的写作平台,也没法显示图片,需要手动添加,就挺麻烦的。因此我们就想,能不能有一个大家都能访问的图片服务器,我们把图片丢上去,然后可以获得一个访问链接🔗,这样的话图片就可以被大家看到了。

其实本来是个蛮简单的事儿,网上的教程一大推。但我硬生生地花了好几小时,现在都1点多了。让我不得不为此着墨记录一下。

# 要用到哪些工具

# 先安装PicGo

直接去GitHub上下载对应的版本安装,打开之后是这个亚子:

image-20210630012626074

然后我们需要配置图床,让它可以上传图片。

# 选择1:用GitHub配置图床

  1. 直接建一个仓库,或者用之前的老仓库都可以。比如我曾经给mdnice创建过图床,那就可以直接使用。image-20210630011954509

  2. 搞一个私人令牌 在Setting-Developer setting-Personal access tokens中新建一个即可。image-20210630012306437

    这里注意,令牌token只会显示一次,所以要想持续使用的话,就要保存好。但忘记了也不怕,重新生成一次即可。(重新生成的会跟老的不一样,所以使用老的token的应用会失效,不过这对上传过的图片没影响)

  3. 配置PicGo image-20210630012837525

    按照软件中的提示,填写仓库名,分支名,token。

    这里支持自定义图片存放地址和域名

    地址填了之后,会自动在GitHub中创建,域名也是。

    这里对域名多提一嘴:

    由于GitHub访问较慢,所以可以通过jsdelivr CDN来加速访问。具体的做法就是在自定义域名的地方,填写:https://cdn.jsdelivr.net/gh/用户名/仓库名即可。

至此,PicGo的GitHub图床就应该设置好了。可以上传图片试一试,看GitHub仓库有没有更新。

# 选择2:使用Gitee(码云)配置图床

首先我们会发现,PicGo自带的图床选择中,没有Gitee(还是没有牌面啊)。但为了国内高速的访问,肯定有大佬已经开发了相应的插件了,所以我们可以直接在PicGo中搜索并安装插件,搜索gitee-uploader:

image-20210630013615348就可以安装了。

然后的步骤跟上面GitHub的一模一样,不赘述了。此时就不需要使用jsdelivr来加速了。

WARNING

哦,对了。分支,GitHub里是main 而Gitee中是master。这个填错了,就会上传失败!

# 在typora中连接PicGo服务

在typora的偏好设置中,按照下图进行设置:

image-20210630013956353

设置完之后,点击“验证图片上传选项”,系统会让你上传两张验证图片,如果验证成功了会显示:

image-20210630014125333


上面说的容易。但中间可能会有一些坑。

比如,我发现在我的环境里,如果使用GitHub,那么我设置了jsdelivrCDN的话,我直接用PicGo是可以上传的,但typora怎么样都无法验证通过。于是,我最后不得不改用Gitee。Gitee真香!

bug千千万,而且这个PicGo,出错了,也不提示,这一点就很烦。比如上传失败的话,进度条是红条,但我之前就没成功过,我咋知道红条是失败?再比如,设置成功了也没提示,哪里出问题了也没提示,哎。所以一开始摸索了好久。

但作为一个程序员,我居然忘记了最最有用的一个查bug的方式——看日志!!!果真,我找到了log文件,用tail -f命令来跟踪log,再一步步地操作,就可以清晰地看到哪里出错了,因此在log的帮助下,我迅速地定位了很多问题,最终得以解决。所以说啊,程序员跟开发者,最好的沟通材料就是log,log都不看,是对开发者的不尊重。

最后还有个细节,比如GitHub(Gitee我不清楚)似乎不支持重名文件的上传,会失败,因此建议给PicGo设置“使用时间戳重命名”的选项。

以上,睡觉!。