--- author: '' category: '' date: 2012/09/11 18:50:56 description: '' link: '' priority: '' slug: nikola-is-pluginificated tags: python, nikola title: Nikola is Pluginificated. type: text updated: 2012/09/11 18:50:56 url_type: '' --- Yes, I know that's not a real word. So, the git master of `Nikola `_ now has plugins. In fact, not only does it have plugins, but is basically *made* of plugins. You see, the code used to mostly be inside a class (called Nikola), and ... it had grown. That class had grown up to around 2000 lines of code. Which is completely ridiculous. So, using `Yapsy `_ I turned the code inside out: almost all the code that was in that monster class was moved into plugins and the class turned into a smart plugin loader. This has brought several advantages: * Now you can extend Nikola for your own purposes. Just create a plugin folder in your site, and put the extra functionality there. * Support for whole categories of things is now modular. Want to support a different markup? A different template system? Just write a plugin. * Want to add completely new functions to Nikola? Like, say, a way to import data from another blog tool, or something like planet software? Well, just add a "command plugin". What has changed for the user? * You can delete ``dodo.py`` from your site. * Use ``nikola build`` instead of ``doit`` * Use ``nikola serve`` instead of ``doit serve`` Some minor things still need doing in this area (notable, fixing the docs), but the main refactoring is there.