Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

支持插件扩展配置项 #369

Closed
fhyoga opened this issue Dec 20, 2019 · 20 comments
Closed

支持插件扩展配置项 #369

fhyoga opened this issue Dec 20, 2019 · 20 comments

Comments

@fhyoga
Copy link

fhyoga commented Dec 20, 2019

问题类型

Feature Request

PicGo的相关信息

Mac

问题重现

功能请求

插件的配置项设置没有接口可以在UI上注入,比如水印插件,我需要设置水印,提供给plugin的方法中没有适合做这个的。
希望可以提供类似扩展接口,使得插件可以有自己的配置项。
可以参考vscode extension的实现,在pkg中声明,ui展示,extension中getconfig


@Molunerfinn
Copy link
Owner

插件一直有自己的配置项啊。
你是需要一个UI界面吗?

@fhyoga
Copy link
Author

fhyoga commented Dec 20, 2019

是的,现有的实现可以设置吗?比如设置水印,文档没找到合适的实现方案,好像只能在右键菜单做

@fhyoga
Copy link
Author

fhyoga commented Dec 20, 2019

不管是guiMenu还是guiApi都没有持久化配置的方法。所以就算右键菜单可以做,也是每次打开app都要重新设置一遍

@Molunerfinn
Copy link
Owner

不管是guiMenu还是guiApi都没有持久化配置的方法。所以就算右键菜单可以做,也是每次打开app都要重新设置一遍

不是的,插件自身的配置是可以持久化的,我给你找一下例子

@Molunerfinn
Copy link
Owner

image
右键菜单里,会默认显示三个配置项:

  1. Uploader的config(如果有提供)
  2. Transformer的config(如果有提供)
  3. Plugin自身的config(如果有提供)

https://picgo.github.io/PicGo-Core-Doc/zh/dev-guide/cli.html#%E9%85%8D%E7%BD%AE%E9%A1%B9%E7%9A%84%E5%A4%84%E7%90%86

如果你提供了Plugin维度的config项,那么在插件的右键菜单里就会出现这个配置菜单,可以点击打开,配置后是持久化存储的

@Molunerfinn
Copy link
Owner

这点我没直接在GUI的文档里给出,这个是我疏漏了,很抱歉

@fhyoga
Copy link
Author

fhyoga commented Dec 20, 2019

懂了,这部分扩展是在core上的。谢谢你的工作

@fhyoga
Copy link
Author

fhyoga commented Dec 20, 2019

我觉得还是考虑一下vscode的实现机制,能把所有插件配置都在一个地方管理。如果有需要我可以做一些工作

@Molunerfinn
Copy link
Owner

image
https://picgo.github.io/PicGo-Core-Doc/zh/guide/config.html#picgo-plugin
插件配置是放在一个地方管理的

@Molunerfinn
Copy link
Owner

只是说因为PicGo业务的特殊性,单独拆分了transfomer和uploader而已

@Molunerfinn
Copy link
Owner

这个issue我先关了哈,如果对插件功能有什么需求,可以去这个issue里提:
#222

@fhyoga
Copy link
Author

fhyoga commented Dec 21, 2019

图片处理sharp包使用了原生模块,需要针对electron版本做重编译
参考:lovell/sharp#1966

因为插件是运行时动态导入的,所以electron的版本号没办法拿到。
有没有什么机制可以解决这个问题?
已经做的尝试:
插件自己用postinstall钩子调用 electron-rebuild --version 6.1.7。6.1.7这个版本号取自lock文件,线上版本的PicGo还是跑不起来,但开发模式可以。也可能线上包的electron版本不是6.1.7。我自己build出来的可以。

单纯的实现传版本号就算可以解决这个问题,每次PicGo发布新版本,electron的版本号可能会变动,原来的包就失效了,需要再次安装触发postinstall。

可不可以由core每次启动的时候调用electron-rebuild去扫描

@Molunerfinn
Copy link
Owner

@Dec-F 线上版本的是2.1.2,用的还是electron5我记得,6.1.7是dev分支的,我最近才更新的版本。

Core不会针对单独插件去做适配、调功能的。而PicGo这边更新electron的频率不高,所以直接在postinstall里指定版本是OK的,你可以通过插件的版本控制来适配的PicGo版本。

后续插件可以通过一些字段来告诉PicGo插件适配的版本,会在安装阶段来提示用户,之后PicGo的GUI这边也会提供类似VSCode插件的可选版本安装功能。

你可以理解为PicGo这边更新的话,electron版本也作为API的一部分,有的时候更新是需要废弃或者更新一些API使用的,所以插件应该做对应的适配而不是平台去适配插件。

@Molunerfinn
Copy link
Owner

近期会更新2.2版本的PicGo,可以直接适配2.2版本的PicGo(electron6.1.7),发布时会在少数派发布更新说明,如果赶得上的话,可以把你的插件也带进更新文档里 😺

@fhyoga
Copy link
Author

fhyoga commented Dec 23, 2019

@Molunerfinn 完成了基本功能 ,你先试着用一下。需要在6.1.7上用,这个版本号先写死吧,因为目录分离,好像没什么机制可以在install阶段拿到core的版本号。
https://github.com/Dec-F/picgo-plugin-watermark

@Molunerfinn
Copy link
Owner

Molunerfinn commented Dec 23, 2019

image
试了一下报错了,我是用一张jpg图片上传的,在transform阶段报错
bg

@fhyoga
Copy link
Author

fhyoga commented Dec 23, 2019

@Molunerfinn windows下吗

@Molunerfinn
Copy link
Owner

不是,是mac

@fhyoga
Copy link
Author

fhyoga commented Dec 23, 2019

@Molunerfinn 建议整个Gitter。。沟通效率太低了

@Molunerfinn
Copy link
Owner

Molunerfinn commented Dec 23, 2019

目前这段时间没有时间(毕业+实习)对接太多外部需求,等年后我弄个沟通群吧。这个可以在你的仓库创建一个issue

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants