--- author: '' category: '' date: 2012/03/27 23:19 description: '' link: '' priority: '' slug: welcome-to-nikola tags: python,nikola,programming title: Welcome To Nikola type: text updated: 2012/03/27 23:19 url_type: '' --- If you see this, you may notice some changes in the site. So, here is a short explanation: * I changed the software and the templates for this blog. * Yes, it's a work in progress. * The new software is called Nikola. * Yes, it's pretty cool. Why change? Are you kidding? My previous blog-generator (Son of BartleBlog) was not in good shape. The archives only covered 2000-2010, the "previous posts" links were a lottery, and the spanish version of the site was missing whole sections. So, what's Nikola? Nikola is a static website generator. One thing about this site is that it is, and has always been, just HTML. Every "dynamic" thing you see in it, like comments, is a third party service. This site is just a bunch of HTML files sitting in a folder. So, how does Nikola work? Nikola takes a folder full of txt files written in `restructured text `_, and generates HTML *fragments*. Those fragments plus some light metadata (title, tags, desired output filename, external links to sources) and Some `Mako Templates `_ create HTML pages. Those HTML pages use `bootstrap `_ to not look completely broken (hey, I never claimed to be a designer). To make sure I don't do useless work, `doit `_ makes sure only the required files are recreated. Why not use ? Because, for diverse reasons, I wanted to keep the exact URLs I have been using: * If I move a page, keeping the Disqus comments attached gets tricky * Some people may have bookmarked them Also, I wanted: * Mako templates (because I like Mako) * Restructured text (Because I have over 1000 posts written in it) * Python (so I could hack it) * Easy to hack (currently Nikola is under 600 LOC, and is almost feature complete) * Support for a multilingual blog like this one. And of course: * It sounded like a fun, short project. I had the suspicion that with a bit of glue, existing tools did 90% of the work. Looks like I was right, since I wrote it in a few days. Are you going to maintain it? Sure, since I am using it. Is it useful for other people? Probably not right now, because it makes a ton of assumptions for my site. I need to clean it up a bit before it's really nice. Can other people use it? Of course. It will be available somewhere soon. Missing features? No tags yet. Some other minor missing things.