Nikola is Pluginificated.
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 ofdoit
Use
nikola serve
instead ofdoit serve
Some minor things still need doing in this area (notable, fixing the docs), but the main refactoring is there.