# 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](https://github.com/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](https://github.com/m4tty/cajun); this library is somewhat outdated. Perhaps we'll reimplement it. - **parser/gemini.** Support for `text/gemini`. - **language/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](http://suckless.org/), 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.