Typora 中设置图像上传到博客园中
适配入口在 Typora 的选项栏中文件→偏好设置→图像→上传服务设定其中可以看到官方提供了几种不同的图片上传服务其中最底下还预留了一个 [自定义命令]这个可以留给我们自己适配因此很容易联想到博客园的图片上传服务能否适配适配教程如何完成适配呢可以看到下方有一个说明链接点开后可以看到在 custom 章节中官方文档指出简单理解就是可以自行写一个脚本然后通过命令行参数接收来自 Typora 的图片本地路径即可如果有很多张图片可以多次调用。此外官方还提供了可能出现的问题及解决方法。适配脚本我们知道博客园开发了 vscode 插件是可以提供图片上传功能的那么主要用到的是什么接口呢这里主要用的就是 MetaWeblog API 它支持上传图片、发布文章。在博客园后台的设置中最底下有我们将 “允许 MetaWeblog 博客客户端访问” 设置为开启于是可以得到MetaWeblog登录名【USERNAME】MetaWeblog访问令牌【PASSWORD】MetaWeblog访问地址【BLOG_URL】这些参数就是每个人独立的接口参数于是向豆包咨询后得到下面的代码#!/bin/bash set -euo pipefail # 你的配置 BLOG_URL你的MetaWeblog USERNAME你的MetaWeblog登录名 PASSWORD你的MetaWeblog访问令牌 BLOG_ID你的博客园用户目录路径如 https://www.cnblogs.com/gshang 就是 gshang # echo Upload Success: for img_path in $; do # 转换路径 [[ $img_path [A-Za-z]:\\* ]] img_path$(cygpath -u $img_path) # 基础信息 filename$(basename $img_path) mime$(file -b --mime-type $img_path) # 【关键修复】用临时文件避免参数过长 xml_file$(mktemp) # 写入 XML不从命令行传彻底解决超长 cat $xml_file EOF ?xml version1.0 encodingutf-8? methodCall methodNamemetaWeblog.newMediaObject/methodName params paramvaluestring${BLOG_ID}/string/value/param paramvaluestring${USERNAME}/string/value/param paramvaluestring${PASSWORD}/string/value/param paramvaluestruct membernamename/namevaluestring${filename}/string/value/member membernametype/namevaluestring${mime}/string/value/member membernamebits/namevaluebase64$(base64 -w 0 $img_path)/base64/value/member /struct/value/param /params /methodCall EOF # 【关键修复】从文件读取 XML不拼命令行 resp$(curl -s -X POST \ -H Content-Type: text/xml; charsetutf-8 \ --data-binary $xml_file \ $BLOG_URL) # 提取 URL100% 兼容 Windows url$(echo $resp | sed -n s/.*string\(https[^]*\)\/string.*/\1/p | head -1) # 输出给 Typora [ -n $url ] echo $url || echo # 清理临时文件 rm -f $xml_file done将你的信息填写后保存为cnblogs.sh并将其放到Typora.exe同一目录下我的目录是D:\Program Files\Typora\cnblogs.sh最后确保你已经安装了git-bash想必作为程序员应该都装了的。我的安装目录是D:\Program Files\Git\bin\bash.exe于是我们得到最终输入给 Typora 的命令行D:\Program Files\Git\bin\bash.exe D:\Program Files\Typora\cnblogs.sh点击 验证图片上传选项 可以看到图片上传成功日常使用测试在 Typora 中提供了两种上传图片的形式单张图片上传

相关新闻