PicGo / vs-picgo

A VSCode plugin of PicGo
https://marketplace.visualstudio.com/items?itemName=Spades.vs-picgo
MIT License
368 stars 50 forks source link

安装Core支持的插件 #43

Open lizhuangs opened 5 years ago

lizhuangs commented 5 years ago
  1. 如何在配置中配置其它图床,貌似目前配置界面是固定的
  2. 我自己写了一个gitee的图床插件。picgo-plugin-gitee-uploader,我是业务时间写的,后端JAVA开发,基本代码是拿的githubPlus改的。
upupming commented 5 years ago

@lizhuangs picgo-core支持的其他图床的配置参见 README 之后会支持安装插件,目前没时间写,马上要期末考试了。参见 #15

Molunerfinn commented 5 years ago

安装插件应该比较容易支持。不过动态把插件的配置增加到VSCode里的配置会是一个比较麻烦的事情,需要时间去消化

upupming commented 5 years ago

@Molunerfinn 直接模仿 picgo 的 Electron 版可以吗?咱们另建一个配置文件,然后在自己的Web页里面实现配置,就不用在系统设置里面配置了。蛋哥有什么建议吗?😁

Molunerfinn commented 5 years ago

这个是最后不得已的方案了吧,先调研调研,尽量把配置放到VScode里

lizhuangs commented 5 years ago

我也建议配置放在vscode里面,因为我在使用vsc的sync settings插件,这个插件可以同步我的vsc配置到其它电脑上,我公司2台和家里的1台,配置除了系统环境保存路径(主要是win和linux)做了差异化,其它配置都是一致的。

lizhuangs commented 5 years ago

对了,顺便说一个很重要的东西,sync settings这个插件的配置文件是同步到了gist.github.com上面,虽在可以创建私有的gist,但是其实这个私有的只要别人知道了你的url是可以看到的。所以token信息放在里面是很危险的,这些信息感觉只能放在data.json这样的本地文件中。我之前给sync的作者提了issue,但是不知道以后是否会支持把敏感配置信息放在外面。

upupming commented 5 years ago

@lizhuangs 感谢建议,但是 https://github.com/microsoft/vscode/issues/49359 说『私密设置』已经超出了VSCode 努力的范围,我们应该是只能从插件自身来考虑这个问题了。

upupming commented 5 years ago

@Molunerfinn

这个是最后不得已的方案了吧,先调研调研,尽量把配置放到VScode里

因为可以配置的项是随着Core插件的增加不断增加的,所以我们需要『动态增加』vs-picgo 的配置项,但是问题是,VSCode 插件的配置项是只能通过插件的 package.json 来设置的,我好像没有找到通过代码动态设置的方法,也没有见过动态设置的插件。这个确实需要再调研调研。

lizhuangs commented 5 years ago

我用到一个vsc的修改背景图的插件background-cover这个插件需要修改vsc主程序的css,修改后会提醒重启vsc,因为修改了vsc主程序进入vsc的时候会提醒vsc损坏,点击不再提醒即可。所以我觉得vsc-picgo一样可以做到,并且不会涉及到vsc程序本身。

  1. 第一种情况用户的电脑已经安装了picgo,那么vsc-picgo可以共享picgo的data.json配置,修改也是,
  2. 第二种就是保存在vsc本身的setting.json中即可,linux目录为/home/tudou/.config/Code/User/setting.json
  3. 由于考虑以上2种情况可能都要支持,所以正好也可以解决sync settings的问题,那就是把token放在data.json中,而settings.json中保存其它配置。 以上是个人看法。不知道你们有没有使用sync settings这个插件的,这个插件非常好用,但是带来的最大的问题就是安全问题,github,阿里云oss这些token又十分重要,所以如果插件本身就直接支持可能是最好的事情了。
Molunerfinn commented 5 years ago

PicGo的目标不是配合其它插件,你说的这个场景可能确实你需要用,但是这样也会有其它插件用户有类似的需求,如果为了配合不同插件,那就违背了我们的初衷。所以我们只会从本身的需求出发,开发本身的需求,请谅解

lizhuangs commented 5 years ago

我已经向sync settings提交feather了,只能看什么时候实现了。顺便想问下,我自己简单修改实现的一个gitee,可以提交到Awesome-PicGo么,或者说如何申请?

Molunerfinn commented 5 years ago

@lizhuangs 可以,看README提交一个PR即可。

Molunerfinn commented 4 years ago

PicGo-Core 1.4.0+ 已经有api接口来安装、卸载、更新插件了。

https://picgo.github.io/PicGo-Core-Doc/zh/api/#pluginhandler

不过插件的配置项等功能依赖于configBasePath,如果要实现这个功能要做一些适配

GrayXu commented 4 years ago

希望vs-picgo能支持picgo-plugin-web-uploader。因为一些其他云服务可以通过PicUploader来提供Web接口,然后调用,就不需要picgo这边来开发专门的插件。。

s-keyman commented 4 years ago

请问vs-picgo能不能设置连接其它图床(我看了README发现是要在已有的里面选择的)

alexzshl commented 3 years ago

我现在想的是picgo-core或许应该将gitee内置,而不是作为插件

Molunerfinn commented 3 years ago

我现在想的是picgo-core或许应该将gitee内置,而不是作为插件

不,正相反,未来picgo可能不会内置任何图床

Molunerfinn commented 3 years ago

从 picgo-core 1.4.18起,可以通过 picgo.pluginLoader.registerPlugin 来加载插件

https://github.com/PicGo/PicGo-Core/blob/dev/src/lib/PluginLoader.ts#L65

具体用法大致如下:

const webUploader = require('picgo-plugin-web-uploader')
picgo.pluginLoader.registerPlugin('web-uploader', webUploader)

// 然后就可以使用了

picgo.setConfig({
  picBed: {
    current: 'web-uploader'
  }
})

picgo.upload([xxx])

vs-picgo这边要考虑的是,是让用户自行在某个目录安装插件,再配置插件路径,还是把安装插件这件事也包了。如果把安装插件这件事也处理了,势必需要确定某个路径作为安装路径。

upupming commented 3 years ago

@Molunerfinn 感谢皮蛋哥哥,我尝试一下看看

JeffersonQin commented 3 years ago

其实这块可以考虑直接开放一个设置的field让用户填关于自定义插件的一个json。举个例子:

image

image

upupming commented 3 years ago

@JeffersonQin 我是有点想做成 gitlens/spellcheck 那种gui操作的配置页面😊,然后顺便实现相册功能