Is there a more general plan for a plugin system for ui and behavior? Firefox came with one and that simplified things. TBH I'm a little scared of the job ahead of porting BBT to the electron/react platform. The switch from Z4 to Z5 took me about 6 months, and while the asyncification bits will likely carry over, and it will be great to get rid of webpack, moving away from XUL looks to me like it'll be more disruptive than the Z4 - Z5 migration. It'd be nice to be able to mentally prepare for the switchover, and read up on the prospective plugin system.
That and the collections view, right? I also overlay stuff in the collections view to add menu items.
Is there a more general plan for a plugin system for ui and behavior? Firefox came with one and that simplified things. TBH I'm a little scared of the job ahead of porting BBT to the electron/react platform. The switch from Z4 to Z5 took me about 6 months, and while the asyncification bits will likely carry over, and it will be great to get rid of webpack, moving away from XUL looks to me like it'll be more disruptive than the Z4 - Z5 migration. It'd be nice to be able to mentally prepare for the switchover, and read up on the prospective plugin system.
As recommended here, I'm using Will Shanks' Zutilo as an example of a bootstrap plugin. But I understand that it was a XUL-overlay plugin originally, so it still uses XUL where it could use HTML/React instead (for example, in the preferences window). Is there another plugin you can recommend that is also ready for future Zotero development paths?
In the plugin I'm developing I plan to have a separate preferences window that uses HTML/React instead of changing the Zotero preferences window (which still uses XUL). On the other hand, I wanted to add an extra tab to the item pane, but it still uses XUL, and I understand it will be reactified soon (BTW, have you started working on this? Is there somewhere already where I can follow this development?). Would you suggest using a separate HTML/React popup instead?
Regarding the item tree, I don't plan to change it with the plugin. I understand its reactification is being discussed in pull request 1827. Is there an estimate of when it will be merged?
Finally, the developer of Zutilo has suggested some time ago to "keep your [plugin] core code cleanly separated from anything specific to Firefox" and to "think carefully about how you use the Zotero and Firefox api's, possibly putting those into wrapper functions so it is easy to change them when Zotero moves to Electron". However, Dan said the idea is to "shim Mozilla XPCOM interfaces (e.g., nsIFile) and/or Zotero functions (e.g., Zotero.File.getContentsAsync()) so that we can avoid rewrites". Then, would you recommend using these wrapper functions as Will suggested? If yes, do you have examples of how to do this?
On 11/16/20 5:46 PM, Diego de la Hera wrote:
As recommended here, I'm using Will Shanks' Zutilo as an example of a bootstrap plugin. But I understand that it was a XUL-overlay plugin originally, so it still uses XUL where it could use HTML/React instead (for example, in the preferences window). Is there another plugin you can recommend that is also ready for future Zotero development paths?I don't know of any relevant plugins off-hand — but HTMLification/Reactification is still a work in progress, so we haven't really given much guidance on this. The most important thing is to avoid XUL overlays, since those will be removed as soon as we move to Firefox 78 or later (which we've made some progress on recently). XUL should certainly be avoided if possible, but some XUL elements are replaced by equivalent Custom Elements in Firefox 78, so not everything would be a problem.
I also use it to modify right-click popup menus, and the middle pane that lists the items
Are there builds that incorporate this?