LionKimbro couldn’t make it today, so we were having a Russian-only meeting about MycorrhizaWiki.
Dan's ideas for MycorrhizaWiki
- Hooks and stuff
- Plugin implementation ideas:
- Three ways:
- Compile-time mixins
- CGI-like seems to be the best
- Plugins should make requests to HTTP API
- Possible plugins:
- Automatic git push
- Favicon support and static files support taken from the core and reimplemented as plugins
- QTPL templates should be reconsidered
- Caching and pre-render
- Authorization stuff cannot be cached
- JS is acceptable, despite what many people say, but we should ensure JS-less experience is good too (just like now)
- During registration, add the repeat-password field
Wikipedia is huge
Look how many extensions it is using: https://en.wikipedia.org/wiki/Special:Version
- Updating the engine
- Adding registration
- How to make pushes
- A bug in the engine has been found
Timur has got three spare licences of JetBrains’ GoLand? IDE. No one has redeemed them. Sad.
https://github.com/TediCross/TediCross seems to be good a bridge between Telegram and Discord. Dan has an idea that Timur should host it, Timur doesn’t really want to.
The rest has been added after the meeting has been done.
Oddmuse uses a folder of files that are reloaded by a fork (or a new instance of a CGI script) on every request so that updates to the plugins can be made at runtime.
The default way to install Oddmuse is as a CGI script. On a request, it gets loaded. As part of initialization, it loads all the plugins in a specific folder, if any, and then proceeds to handle the request.
Oddmuse plugins are Perl scripts. This is the sort of documentation one can find when looking to write some:
The Oddmuse site has a (very long) list of extensions.
Phoebe uses a folder of files that are loaded at startup; this saves resources when serving requests but it requires a restart on updates. All in all this reduced flexibility turned out to be no problem.
Sadly, the Mojolicious framework Alex Schroeder uses with Oddmuse allows zero-downtime restarts where as systemd which he uses for Phoebe does not. Oh well.
You can find a list of some Phoebe plugins on Transjovian.