I tried blogging in the past and it never worked out. One reason was that
frameworks like Movable Type,
WordPress and
Blogger (aka Blogspot) either aren't under your
control if you use the hosted version or are high maintenance if you host them
yourself (too high for a lazy guy like me, at least).
Another is you are supposed to write your posts in a form on a web-page. Usually
some kind or rich-text enhanced form. To be fair, there are desktop clients for
all major blog frameworks, some of which I tried but I can't be bothered to look
them up now. And AFAIK you can't really preview the resulting blog posts without
actually uploading them to your blog (or a local instance with the same
configuration).
When I found out about static site generators, starting a blog became an option again. You can write your posts in markdown or ReStructuredText, build the pages on your local machine and only upload the generated static html files. After playing around with jekyll, cryogen and nikola I decided to give pelican a spin. While I like learning new languages, I decided to use a blog software written in a language I use on a daily basis. If one day I decide I want to dig deeper into the software I'm using, I don't want to be forced to learn a new language at the same time. So Python it was. First, the possibility to use the IPython Notebook format in Nikola appealed to me, but Nikola's options turned out to be overwhelming when I started reading the documentation. Thus I decided to use Pelican for now.
It's very easy to use and packaged with Arch linux. If you want to use
Fabric to automate the building and publishing
process, you have to use python2
with pelican. So I created a virtual
environment and did
$ pip install pelican markdown fabric
and there was my ready-to-use blogging environment. You can skip markdown if you
want to write your blog in ReStructuredText.
Now when writing a blog post, I dedicate a tmux window to blogging, change into
the virtualenv and just write the post in vim. fab build
and fab serve
can
be used to preview the output and fab publish
will upload the generated output
to my website.