I suspect I spend more time fiddling with my blogging setup than I spend actually blogging.
Back when I moved to Github Pages, I started using VoodooPad's static publishing engine. The output looked good but I didn't like the input format. Keeping a directory full of Markdown files that I can edit in Vim is preferable to using another editor.
After some looking around, I decided to try Pelican.
To extract my posts from VoodooPad, I wrote a Python script. It finds all published pages in a VoodooPad bundle directory, prepends some Markdown metadata tags (title, publish date, and slug), and writes the Markdown to a file. Here is the script:
I wanted to keep the site's file structure as similar to the current structure as possible. This included keeping the file slugs the same. Rather than trying to trick Pelican into deriving the original slugs, I added some code to my extraction script to pre-compute the slugs and include them in the Markdown metadata.
The only manual change I had to make to my content was to switch from code blocks that are indented by four spaces to fenced code blocks. This allows me to specify the language for the code block instead of relying on highlight.js to figure it out (often incorrectly).
The theme is more-or-less written from scratch. I liked the VoodooPad-generated site and had already made some customizations to it. It was fairly simple to port that over to use Pelican's templating system.