This tool will help you migrate from Blogger / Blogspot to any static site generator that uses YAML front-matter such as Jekyll / Octopress / Ruhoh / Nanoc.
Export your blog
- Login to Blogger
- Go to your blog's settings
- Go to Templates
- Change your template style to "classic" (temporarily) (it will keep your customizations saved)
- Go to Settings, Other
- Export your blog
- Change your template style back to the new one
blogger2jekyll on your downloaded export
Follow the following:
npm install -g blogger2jekyll blogger2jekyll /path/to/blog-dd-mm-yyyy.xml /path/to/posts mv /path/to/posts/ /path/to/pub/posts/ blogger2jekyll-server 8080 /path/to/pub/ /path/to/pub/posts/
Might also be like this
npm install -g blogger2jekyll blogger2jekyll ~/Downloads/blog-16-06-2004.xml /tmp/public/posts/ ls /tmp/public/posts/ blogger2jekyll-server 3000 /tmp/public/ posts
blogger2jekyll reads in posts and comments from the xml file
(defaults to fuzzy searcing in the current directory for
and outputs them to the specified output folder (defaults to
If you don't care about handling blogger redirects properly, and your static site generator supports the
permalink front-matter directive, you're done.
Just to be sure, check <with http://validator.w3.org/checklink>
However, if you're going to handle proper 301 redirects and or your static generator
does not handle the permalink directive, you'll probably wanna glance over the code
blogger2jekyll-server (or even use it directly), which
uses fuzzy redirects if it can find a name similar to
the one it was searching for in the directory it expected to find it in.
For Example (if the posts directory is simply
GET /p/normal.html -> /p/normal.html GET /p/title-of-blog-may-be.html -> /p/title-of-blog-may-be-truncated.html GET /p/fun-with-osx-10-8.html -> /p/fun-with-osx-108.html GET /p/this-post-really-doesnt-exist -> 404'd!
Open up the converter and modify it to meet your needs. It's very few lines of code and very straight forward.
git clone git://github.com/coolaj86/blogger2jekyll.git cd blogger2jekyll find . vim lib/index.js