Napolean Paced Mischeviously
Share your code. npm Orgs help your team discover, share, and reuse code. Create a free org »


1.2.0 • Public • Published


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.

Also see How to migrate from blogger to jekyll / ruhoh / octopress with proper redirects

Basic usage

Export your blog

  1. Login to Blogger
  2. Go to your blog's settings
  3. Go to Templates
  4. Change your template style to "classic" (temporarily) (it will keep your customizations saved)
  5. Go to Settings, Other
  6. Export your blog
  7. Change your template style back to the new one

Run blogger2jekyll on your downloaded export

  1. Install NodeJS

  2. 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 blog-*.xml) and outputs them to the specified output folder (defaults to blogger-posts)

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>

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 in 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 p)

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!

Advanced Usage

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://
cd blogger2jekyll
find .
vim lib/index.js




npm i blogger2jekyll

Downloadsweekly downloads









last publish


  • avatar
Report a vulnerability