Typora + PicGo-Core + SM.MS图床

2020-02-26  本文已影响0人  LzSkyline

最近突然发现Typora更新了, 新增了原生对 PicGo-Core 的调用, 可以自动上传markdown内的图片, 于是赶紧尝鲜一波. 使用过程中遇到了一点坑, 但还是摸索着解决了.

1. 安装PicGo-Core

因为Typora已经原生支持PicGo-Core, 所以只需要在软件内下载一下就可以了(PS: 下面这张图就是用的自动上传, 很方便)

image-20200226192555818

首先点击上面红色1的位置, 选择PicGo-Core, 再点3(不要问我2去哪儿了....就当他不存在), 并等待下载完成.

2. 安装smms v2 API插件

这里是个大坑.

因为PicGo-Core默认的smms使用的是v1的api, 而目前smms已经停用了该版本API, 所以导致PicGo-Core在默认配置下, smms图床完全不可用

翻了一下PicGo-Core的Github发现作者目前还没有把内置的smms api升级到v2, 但是有其他开发者通过第三方插件的方式解决了这个问题, 所以我们需要安装这个v2版本的smms-user插件.

直接点击红色5的位置, 根据文本内容找到PicGo-Core的程序目录

image-20200226193128224

注意, 因为默认的smms api已经不可用, 这里肯定会上传失败, 不用管

找到目录后我们在picgo的目录下启动命令行, 执行如下命令, 并等待安装成功

.\picgo.exe install smms-user

3. 配置PicGo-Core

安装完成之后点击红色4的位置(红标顺序不代表点击顺序), 打开PicGo-Core的配置文件, 按照下面的格式无脑全选替换就行

{
  "picBed": {
    "current": "smms-user",
    "uploader": "smms-user",
    "smms-user": {
      "Authorization": "这里替换成你自己的"
    },
    "transformer": "path"
  },
  "picgoPlugins": {
    "picgo-plugin-smms-user": true
  }
}

没有Authorization的自己去这里申请一个: https://sm.ms/home/apitoken

申请前需要注册一个账号, 这个没啥难度, 就不细说了.

4. 体验效果

保存配置之后再点红标5的位置应该就可以正常上传图片了, 我们直接在Typora内粘贴一张图片, 就会有相应的提示

image-20200226194604800

或者在已有的本地图片上面按右键, 也可以弹出上传图片的按钮, 整个操作非常便捷, 上传速度也挺快的.

5. 踩坑

总的来说还是遇到了一些坑的, 接下来说一下坑点:

  1. PicGo-Core并没有编译Windows的版本, 所以Typora的作者是fork原版之后重新打包的, 这也导致了版本不能及时的跟主体保持同步更新.

    我之前遇到smms v1 api不可用的问题时, 看到PicGo-Core的作者说会在新版本解决这个问题, 目前PicGo-Core的最新版本是1.4.6, 而Typora fork的版本是1.4.4, 我一开始还以为下载一个新版本就能解决, 特意跑去重新编译, 然而弄完发现1.4.6还是存在该问题, 于是遇到了第二个坑.

  2. 既然换版本不能解决, 我决定换一个图床试试, 翻了半天文档发现全是可视化配置, 然而我的PicGo-Core只有json文本文件配置, 最后发现原来picgo(PicGo-Core)和PicGo(PicGo-Electron)是不一样的

    image-20200226200109710
  3. 调研了一下各个图床, 发现还是smms免费好用, 所以决定使用作者推荐的那个v2版本smms api插件.

    然而安装完之后不知道在哪填Authorization, 去翻文档发现这么一句绕口令:

    如果你为picgo开发了一个插件,如果这个插件本身需要一些配置项,那么这个插件对应的配置应该直接放置在配置文件下的同名配置里

    image-20200226200502981

    ​ 思考了一下, 我以为是这样

    {
      "picBed": {
        "current": "smms",
        "uploader": "smms",
        "transformer": "path"
      },
      "picgoPlugins": {
        "picgo-plugin-smms-user": true
      },
      "picgo-plugin-smms-user": {
          "Authorization": "xxxx"
      }
    }
    

    ​ 然而测试上传的时候发现安装插件之后跟安装之前没有一点变化.

    ​ 思考&测试一番之后, 我发现插件并不会自动注入到smms图床配置中.

    ​ 大概要手动修改图床为插件名才能使用, 于是:

    {
      "picBed": {
        "current": "smms-user",
        "uploader": "smms-user",
        "transformer": "path"
      },
        ....
    

    ​ 再进行测试又失败了, 但是这次不是说v1接口过时, 而是说找不到Authorization的配置项

    1. 开始以为是我手动写的格式不对, 所以又去翻了文档, 发现了PicGo-Core提供了命令行参数设置
    .\picgo.exe set plugin smms-user
    

    ​ 根据提示填写了Authorization, 结果自动生成的配置文件和我刚才手动写的一模一样, 但就是不行.

    ​ 最后又思考了一下, 看了看其他图床的配置方法, 决定仿照微博的配置, 试一下picBed.smms-user这种写法, 最后终于成功了= =

    image-20200226200911579

6. 总结

虽然整个过程坑挺多的, 但毕竟这个功能也是新出的, 相信之后会越来越完善的

配置完之后用起来真的爽, 以后从Typora粘文章到博客上再也不用手动上传替换图片了~

上一篇下一篇

猜你喜欢

热点阅读