惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Hacker News: Ask HN
Hacker News: Ask HN
WordPress大学
WordPress大学
T
The Blog of Author Tim Ferriss
The GitHub Blog
The GitHub Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
博客园 - 聂微东
A
About on SuperTechFans
Stack Overflow Blog
Stack Overflow Blog
雷峰网
雷峰网
Microsoft Azure Blog
Microsoft Azure Blog
腾讯CDC
爱范儿
爱范儿
酷 壳 – CoolShell
酷 壳 – CoolShell
博客园 - 【当耐特】
V
Visual Studio Blog
有赞技术团队
有赞技术团队
U
Unit 42
D
Docker
小众软件
小众软件
F
Full Disclosure
I
Intezer
Scott Helme
Scott Helme
P
Privacy International News Feed
P
Proofpoint News Feed
Engineering at Meta
Engineering at Meta
Google DeepMind News
Google DeepMind News
B
Blog
Martin Fowler
Martin Fowler
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Vercel News
Vercel News
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Spread Privacy
Spread Privacy
宝玉的分享
宝玉的分享
S
Security Affairs
www.infosecurity-magazine.com
www.infosecurity-magazine.com
月光博客
月光博客
C
Cisco Blogs
云风的 BLOG
云风的 BLOG
Schneier on Security
Schneier on Security
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
T
Threat Research - Cisco Blogs
量子位
Hacker News - Newest:
Hacker News - Newest: "LLM"
H
Heimdal Security Blog
N
Netflix TechBlog - Medium
H
Hacker News: Front Page
P
Proofpoint News Feed
G
GRAHAM CLULEY
V
Vulnerabilities – Threatpost
S
Schneier on Security

MARKSZのBlog

一次由 pnpm 小版本差异引发的 PicGo 2.5.3 发布事故 极空间虚拟机安装 Ubuntu 24.04 踩坑记录 | MARKSZのBlog PicGo 的签名与公证 | MARKSZのBlog 写在 PicGo 即将 8 周年之际 Vite 原理浅析 | MARKSZのBlog Typora 支持 PicGo 来上传图片了 | MARKSZのBlog 用setTimeout和clearTimeout简单实现setInterval与clearInterval | MARKSZのBlog 我的2019春招(暑期实习)记录 | MARKSZのBlog Electron-vue开发实战7——命令行调用与系统级别右键菜单的实现 | MARKSZのBlog Electron-vue开发实战6——开发插件系统之GUI部分 | MARKSZのBlog Electron-vue开发实战5——开发插件系统之CLI部分 | MARKSZのBlog 2018小结 | MARKSZのBlog 一周一部好电影V【WEEK210 网络迷踪】 | MARKSZのBlog PicGo的star数破1000的心路历程 | MARKSZのBlog 小记VSCode插件amVim的改进以及插件开发 | MARKSZのBlog 基于Koa2开发微信二维码扫码支付相关流程 | MARKSZのBlog 【NOTE】观察者模式VS订阅发布模式 | MARKSZのBlog 【NOTE】进程-线程-协程 关系与区别 | MARKSZのBlog 基于Electron-vue的图床上传工具PicGo v1.5更新说明 | MARKSZのBlog
图床「神器」PicGo v2.0更新,插件系统终于来了 | MARKSZのBlog
Molunerfinn · 2019-01-13 · via MARKSZのBlog

前言

距离上次更新(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的上传流程如下:

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

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

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

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

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

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

比如可以通过打开一个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还更新了如下内容:

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!

Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.