Replies: 2 comments 9 replies
-
|
在应用市场获取插件定义的这个字段即可 没有必要单独去定义annotation , key以?结尾表示可选依赖推荐安装,否则为必装依赖 示例参考: 如果是主题则可能得使用另外的方式,这两者可以分开识别,但定义推荐可能还是需要考虑版本范围的约束 |
Beta Was this translation helpful? Give feedback.
9 replies
-
|
很期待这个功能 |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
摘要
目前 Halo 的单个主题或者插件(尤其是主题)可能会依赖于其他插件,虽然目前插件已经在底层支持了插件依赖,但没有很好的办法引导用户安装,尤其是依赖的还只是
metadata.name,用户即便看到依赖提示,可能仍然无法知道具体需要安装什么插件。所以我建议专门为应用市场插件提供元数据定义,专门用于定义依赖/或者推荐应用,可以实现用户在应用市场安装主题或者插件之后,如果有依赖/推荐定义,在安装完之后可以显示引导安装其他推荐或者依赖插件的界面,引导用户安装。
定义方式
以默认主题为例。
说明:
store.halo.run/recommend-apps:推荐应用的定义,为应用市场应用 id 的数组。store.halo.run/required-apps:依赖应用的定义,为应用市场应用 id 的数组。最终用户在应用市场安装这个主题之后,会解析这个定义,然后判断是否已经安装,如果有未安装的应用,会根据应用 id 显示出所需的应用,引导用户安装。
疑问
Q1. 为什么不直接在插件/主题定义的 spec 中定义依赖?
因为 Halo 并不依赖应用市场插件,应用市场插件应该始终为可选,用户可以自行决定是否要使用应用市场插件,所以我认为放在 spec 中并不合适,这需要修改 Halo 本身的代码。
Q2. 为什么插件有了
spec.pluginDependencies字段,还需要单独定义这两个元数据?这只是底层插件机制的依赖,如果按照这个字段去实现,以目前应用市场的系统设计无法完成,并且可能仍然需要为应用市场插件去修改 Halo 的代码,这可能会导致强依赖。我认为
store.halo.run/recommend-apps和store.halo.run/required-apps并不需要和spec.pluginDependencies有关联,这应该让开发者自行决定。相关讨论
参考:
Beta Was this translation helpful? Give feedback.
All reactions