图床「神器」PicGo v2.0 更新,插件系统终于来了

本文最后更新于:2019年1月18日 晚上

图床「神器」PicGo v2.0 更新,插件系统终于来了

转自 https://molunerfinn.com/picgo-v2.0-update,作为一个经常使用 Markdown 写作的人而言,一个好的图床工具是很重要的,所以吾辈才会转载这篇文章呢!

前言

距离上次更新 (v1.6.2) 已经过去了 5 个月,很抱歉 2.0 版本来得这么晚。本来想着在 18 年 12 月(PicGo 一周年的时候)发布 2.0 版本,但是无奈正值研究生开题期间,需要花费不少时间(不然毕不了业了 T T),所以这个大版本姗姗来迟。不过从这个版本开始,正式支持插件系统,发挥你们的无限想象,PicGo 也能成为一个极致的效率工具。

除了发布 PicGo 2.0 本体,一同发布的还有 PicGo-Core(PicGo 2.0 的底层,支持 CLI 和 API 调用),以及 VSCode 的 PicGo 插件 vs-picgo 等。

插件系统

PicGo 的底层核心其实是 PicGo-Core。这个核心主要就是一个流程系统。(它支持在 Node.js 环境下全局安装,可以通过命令行上传图片文件、也可以接入 Node.js 项目中调用 api 实现上传。)

PicGo-Core 的上传流程如下:
PicGo-Core 上传流程

Input 一般是文件路径,经过 Transformer 读取信息,传入 Uploader 进行上传,最后通过 Output 输出结果。而插件可以接入三个生命周期(beforeTransformbeforeUploadafterUpload)以及两种部件(TransformerUploader)。

换句话说,如果你书写了合适的 Uploader,那么可以上传到不同的图床。如果你书写了合适的 Transformer,你可以通过 URL 先行下载文件再通过 Uploader 上传等等。

另外,如果你不想下载 PicGo 的 electron 版本,也可以通过 npm 安装 picgo 来实现命令行一键上传图片的快速体验。

PicGo 除了 PicGo-Core 提供的核心功能之外,额外给 GUI 插件给予一些自主控制权。

比如插件可以拥有自己的菜单项:
菜单

因此 GUI 插件除了能够接管 PicGo-Core 给予的上传流程,还可以通过 PicGo 提供的 guiApi 等接口,在插件页面实现一些以前单纯通过 上传区 实现不了的功能:

比如可以通过打开一个 InputBox 获取用户的输入:
InputBox

可以通过打开一个路径来执行其他功能(而非只是上传文件):
打开一个路径来执行其他功能

甚至还可以直接在插件面板通过调用 api 实现上传。

另外插件可以监听相册里图片删除的事件:
远端删除

这个功能就可以写一个插件来实现相册图片和远端存储里的同步删除了。

通过如上介绍,我现在甚至就已经能想到插件系统能做出哪些有意思的插件了。

比如:

  1. 结合 GitHub 刚刚开放的免费私人仓库,可以通过插件实现 PicGo 的相册以及配置文件同步。
  2. 结合 TinyPng 等工具实现上传前给图片瘦身。(不过可能挺影响上传速度的。)
  3. 结合一些 Canvas 工具,可以在上传图片前给图片加水印。
  4. 通过指定文件夹,将文件夹内部的 markdown 里的图片地址进行图床迁移。
  5. 等等。。

希望这个插件系统能够给 PicGo 带来更强大的威力,也希望它能够成为你的极致的效率工具。

需要注意的是,想要使用 PicGo 2.0 的插件系统,需要先行安装 Node.js 环境,因为 PicGo 的插件安装依赖 npm

2.0 其他更新内容

除了上面说的插件系统,PicGo 2.0 还更新了如下内容:

  • 底层重构了之后,某些图床上传不通过 base64 值的将会提升不少速度。比如 SM.MS 图床等。而原本就通过 base64 上传的图床速度不变。
  • 增加一些配置项,比如打开配置文件(包括了上传的图片列表)、mini 窗口置顶、代理设置等。
    更多配置项
  • 在相册页可以选择复制的链接格式,不用再跑去上传页改了。
    相册允许复制链接格式
  • 增加不同页面切换的淡入淡出动画。
  • macOS 版本配色小幅更新。(Windows 版本配色更新 Fluent Design 效果预计在 2.1 版本上线)
  • 更新 electron 版本从 1.8->4.0,启动速度更快了,性能也更好了。

Bug Fixed

  • 修复:macOS 多屏下打开详细窗口时位置错误的问题
  • 修复:多图片上传重命名一致的问题
  • 修复:拖拽图片到软件会自动在软件内部打开这张图片的 bug
  • 修复:重命名窗口只出现在屏幕中央而不是跟随主窗口的 bug

VSCode 的 PicGo 插件 vs-picgo

在 PicGo-Core 发布不久,就有人根据 PicGo-Core 的 API 编写了 VSCode 版的 PicGo 插件。使用起来也非常方便:

  • 截图上传
    截图上传
  • 文件浏览器选择文件上传
    文件浏览器选择文件上传
  • 输入文件路径上传
    输入文件路径上传

配置项与 PicGo 的图床的配置项基本保持一致。在 VSCode 插件栏搜索 PicGo 即可下载安装与体验!

结语

PicGo 第一个稳定版本是在少数派上发布的,详见 PicGo:基于 Electron 的图片上传工具。支持 macOS、Windows、Linux 三平台,开源免费,界面美观,也得到了很多朋友的认可。如果你对它有什么意见或者建议,也欢迎在 issues 里指出。如果你喜欢它,不妨给它点个 star。如果对你真的很有帮助,不妨请我喝杯咖啡(PicGo 的 GitHub 首页有赞助的二维码)?

下载地址:https://github.com/Molunerfinn/PicGo/releases
Windows 用户请下载.exe文件,macOS 用户请下载.dmg文件,Linux 用户请下载.AppImage文件。

Happy uploading!