hakyll-convert is a CLI tool that splits Blogger and WordPress
backups into separate posts that Hakyll can understand. I just updated it to
work with modern dependencies.
I put this blog together with a static generator called Hakyll. Before that, I was using Google Blogger and wrote no fewer than 100 posts over there. Naturally, I wanted to migrate all that content to the new place, but how?
hakyll-convert saved me. I exported my posts from Blogger, ran
hakyll-convert on the resulting XML file — and voilà, I had a hundred files
with Hakyll-style “front matter” and my posts’ HTML. Just copy that into my
“posts” directory, and I was done.
At the time,
hakyll-convert couldn’t rename the files according to
a user-provided template, so I submitted a pull request to add that
feature. It turned out that the program’s author, Eric Kow, no longer had time
to maintain it, so he asked me to take over. After a bit of
thought, I agreed.
hakyll-convert is a small project, easy to keep up-to-date, and I didn’t plan
to make any grand changes. I just wanted to be around when someone submits
a pull request or files an issue. Just keep the project alive and kicking.
Fast-forward a year. I received a heads-up about an upcoming change in the
feed package. That promised some severe breakage for
heavily relied on
feed’s data types. Unfortunately, I was busy with a new job,
so I didn’t have time to investigate and fix.
Another year passed. The new version of
feed came out, breaking
hakyll-convert as expected — and I was still busy with something (don’t even
remember what exactly). So much for “being around” and
“keeping the project alive and kicking”.
Two and a half years later, I finally got around to fixing it. That turned out
to be easier than I thought: the thrust of the change was a migration from
xml-types, which boiled down to search-and-replace thanks to
Haskell’s type system. I did introduce one logical error, but the tests caught
Oh, and Blogger changed their format slightly in those intervening years, but that wasn’t hard to fix either.
And that’s it.
hakyll-convert is back now. You can install it from Hackage:
$ cabal install hakyll-convert
I also submitted a PR to add it to Stackage Nightly, and so it will make it into Stackage LTS 17 as well. Try it out, and please open an issue if something doesn’t work!
Drop me a line! (wonder where’s the comments form?)