1.6 KiB
Plugin system RFC
MycorrhizaWiki engine does not provide all the functionality a wiki may need and not need. Instead, it relies on the system of plugins.
This document is up-to-date.
Types of plugins
- Parser. They add support for displaying different MIME-types.
- Language. They provide i18n support.
Default plugins
Default MycorrhizaWiki distributive is shipped with several plugins installed.
- parser/markdown. Support for
text/markdown
. This parser is powered by russross/blackfriday; this parser is ok, I guess. - parser/creole. Support for
text/creole
. Note: there is no standard Creole MIME type. This parser is powered by m4tty/cajun; this library is somewhat outdated. Perhaps we'll reimplement it. - parser/gemini. Support for
text/gemini
. - lang/en. Support for English language.
Plugin implementation
All plugins are written in Go and are compiled together with MycorrhizaWiki. If a wiki's admin decides to add a plugin, they shall recompile the engine with the plugin.
Reminds of something, right?
But compiling the engine just to add a plugin is stupid!! Not really. Also, it makes the architecture more simple and secure.
What if an admin doesn't know how to program? Plugin installation is basically limited to putting some files into a folder, editing the config and running a shell command. No programming required to install a plugin.
See plugin
directory at the root of the repo to get inspired by the present parsers.