使用 Typora 时图片自动上传至图床

使用 Typora 时图片自动上传至图床

Contents

前言

平时使用 Typora 写笔记等时可能遇到需要添加图片的情况,但图片大多数是本地文件,对于 .md 文件的移动往往会导致图片无法正常显示。

而这个网站中的文章也是用的 Markdown 格式,经常会出现本地文件复制到网页上时,需要花时间大量上传图片与修改图片地址。

所以为了减少这一类麻烦的发生,我希望通过利用 Typora 的自动上传机制来解决。

环境配置要求

下面的代码是 Python3.8 环境下的,所以需要提前配置好 Python3 环境。

Python3 安装

一般直接官网下载即可(Windows),但有时速度过慢,所以提供本站网盘的一个下载链接(版本为 3.8.0)。

对于 Linux 或者 Mac 系统,推荐使用 Tuna 镜像站,以下为链接:https://mirrors.tuna.tsinghua.edu.cn/

点击获取下载链接按钮,选择应用软件中的 Conda 软件,并找到对应系统的 Anaconda 版本用以安装即可。

pip3 安装

非 Windows 系统,特殊情况下会出现 Python3 已安装而 pip3 未安装的情况,比如一些 Mac 电脑。

终端(Terminal)中输入以下指令:

curl https://bootstrap.pypa.io/get-pip.py | python3

即可安装。

如有必要更新,可通过以下指令:

pip3 install --upgrade pip

如果安装了多个版本的 Python 或 pip,可通过以下指令指定版本:

python3 -m pip install --upgrade pip

依赖库安装

如果使用了 Anaconda 的环境,则一般都已有对应的库文件。

否则,可能需要安装用到的依赖库 requests

pip3 install requests
# 如果多个版本
python3 -m pip install requests

Typora 上传脚本

下载 Typora 上传脚本

链接:https://pan.wzf2000.top/s/m9q96bgk,密码:Abaeh。

并将此脚本放到一个容易找到的目录下(建议目录不要包含中文)。

注册图床

由于本站图床上传图片需要注册,所以需要先到图床站点进行注册。

由于未知原因,管理员邮箱向 QQ 邮箱发送邮件效率较低,所以建议不要使用 QQ 邮箱(本站同理)。

修改脚本配置

脚本的配置在第 $18 \sim 20$ 行:

username = 'wzf2000' # Your user name.
key = '359ccd4471d8dc7ca7326003f6b2511b' # API V1 Key.
albumID = 14 # Your album ID. If not needed, comment it out.

分别代表上传用户的用户名,API Key 以及相册 ID。

虽然理论上可以使用他人账户上传,但建议还是使用自己注册的账户,否则图片被删除了你也没什么办法

API Key 目前是惟一的,所以请不要修改。

如果不需要上传至相册,则请注释掉第 $20$ 行代码。

如果需要使用相册,请自行在图床站点上创建相册并填写 ID,查看 ID 可以通过相册界面右上角信息查询:

image-20200920180317362

(建议不要在配置中填写自己账号和他人的相册 ID,否则配置失败概不负责)

Typora 配置

打开 Typora 的偏好设置,设置下图中的选项:

image-20200920143111614

(其中第二个可不勾选)

对于自定义命令一行,根据自己的 Python 环境以及脚本存储位置填写,比如对于同时安装了 Python2 和 Python3 的电脑,脚本文件位置位于 {{thepath}}/upload.py,建议填写:

python3 {{thepath}}/upload.py

{{thepath}} 指你存放脚本的文件夹)

如果 python 指令直接指向 Python3,则应使用 python 替代 python3

可以使用验证图片上传选项测试是否配置成功

脚本文件拓展

脚本中对于本地的图片(包括截图),会自动上传至图床,但对于网页图片,则选择保留原有链接不进行上传。

如果需要修改这种方式,可以尝试自行修改脚本文件(之后可能会更新这些配置问题)。

其他

如果对于脚本的使用有问题,可以直接联系我。

 

点赞 3

Comments: 4

  1. wzf2000说道:

    如果发生莫名错误 Invalid base64 string.,可以尝试将脚本十二行改为 ('source', open(filename, 'rb'))

  2. wzf2000说道:

    现在图册的详细信息页未开启,需要知道ID的大概得跟我私聊。。

Add your comment