给typora 配置上传图床
前言
typora是一款非常便捷的markdown编辑器,我们经常使用它来编写一些文章,但其中会遇到一个问题,就是typora本身不带图床功能,图片只能引用本地的图片,这就造成了当把这篇md发给别人的时候,或者粘贴在其他地方时,图片就无法正常显示。
解决方案
-
现在可以使用的图床有收费的OSS,COS等大厂的对象存储来搭建的图床,也有免费的,七牛云,等一些。免费的当然不稳定了。我们也是供个人使用,当然没有必要去购买那些对象存储。
-
所以,我们可以使用gitee的API,我们可以利用gitee搭建一个免费且有保障的图床。具体的搭建步骤,可以参考我的另一篇文章使用gitee搭建免费图床
-
回到本文主题,我们要为
typora
配置图床。我们可以在设置中看到typora支持ipic,upic,picgo-core等等一些插件,本来我也打算使用一下的某一款插件,但是当我搜索教程后,发现都需要配置电脑的环境变量,node,等等。顿时让我产生的排斥心理,ps:虽然我的电脑上环境都有。安装的东西太多了。博主是简约风。于是,我喵上了随后一个配置 custom command 自定义命令。 -
既然打算自定义命令,那么要使用什么语言做呢,传统的语言都太重了,python的话window也需要安装。有了以上的排除了,那么就使用shell脚本实现吧,linux系统都支持的吧。
效果如下图
注意地址的变化!!
项目地址:码云地址
代码实现
#--------------config------------------------#
# gitee上的私人令牌
token="你的私人令牌"
# 提交文件的消息
msg="typroa_add_commit"
# 注册仓库后仓库地址中的用户名
owner="name"
# 注册仓库后仓库地址中的仓库名
repo_name="仓库名称"
#--------------config end------------------------#
declare -a result=()
# 生成随机字符串的方法
function rand(){
filename= openssl rand -hex 16
echo $filename
}
function upload(){
res=""
# 生成日期格式的文件夹和16位的随机字符串
filepath=$(date +%Y-%m-%d)/$(rand).jpeg
# base64 太长时会报错参数列表太长,这里使用 使用 @- 从标准输入中获取数据。利用echo输出到标准输入,再利用管道重定向输入到curl的-d参数中。
res=`echo '{"access_token":"'$token'","message":"'$msg'","content":"'$1'"}' \ |
curl -o /dev/null -s -w %{http_code} -X POST -H 'Content-type':'application/json' -d @- https://gitee.com/api/v5/repos/$owner/$repo_name/contents/typroa/$filepath`
# 判断返回状态码是否为201 是返回地址,不是提示上传失败
if [ 201 -eq "$res" ];then
result+=(https://gitee.com/$owner/$repo_name/raw/master/typroa/$filepath)
else
echo "上传失败!"
fi
}
for var in "$@"
do
# 读取上传图片转为base64
in=$( base64 $var)
upload "$in"
done
for res in "${result[@]}"
do
echo "$res"
done
-
以上就是代码的具体实现,代码中的注释比较详细,不懂的可以查看。
-
重点:
-
大家使用时,需要先创建例如 upload.sh 的文件。
-
使用命令
chmod 777 upload.sh
为文件赋予权限。 -
将文件的目录配置到如下图所示:
-
-
注意事项:
mac电脑的用户,要注意,typora粘贴时他的默认图片路径:
/Users/wdhcr/Library/Application Support/typora-user-images/
大家可以看到,/Application Support/
这层目录中间是一个空格,它在命令行中是需要的转义的。不然图片就读取不到。所以就推荐大家使用自定义一个专门存图片的目录吧。
最后要注意,由于gitee的系统限制,当文件大于1MB时,是需要登陆才可以查看的。所以大家要控制图片的大小。毕竟免费的嘛。
结束。
以上就是给typora配置自定义命令的内容。以上配置也适用与github,但是由于众所周知的原因,速度太慢。推荐使用gitee吧。
项目地址:码云地址 觉得还不错的话给个star吧。