A few weeks ago I started migrating the blog off my own VPS into GitHub Pages. At first, I tried Octopress which is a set of templates, scripts and plugins for Jekyll that make blogging easier on the platform. I found it to be impractical and inflexible compared to good old Hobix, my previous blogging platform.

Then I tried to put the actual Hobix installation in GitHub to basically achieve the same setup as Octopress. This proved to be even more inconvenient as trying to install Hobix nowadays is quite the endeavour, since it has not been maintained for over 5 years now.

I found it more wise to migrate to a more modern system. So, here we are with the blog on a vanilla Jekyll installation.

How to migrate your Hobix blog to Jekyll

Hobix has an API which allows (among others) to export entries out of the system. However, as I discovered that installing Hobix is no longer an option, I had to process Hobix's entry YAMLs by hand to convert them to Jekyll YAML Front Matter.

Below is the script I have been using.


require 'RedCloth'
require 'yaml'

Dir.glob('entries/**/*.yaml').each do |f|
# Dir.glob('entries/**/we-hebben-sleutels.yaml').each do |f|
  entry = YAML::load(IO.read(f))

  if f =~ /^entries\/page/
    out_dir = File.dirname(f).sub('entries', '../logging-the-switch')
    out_file = "#{File.basename f, '.yaml'}.textile"
    out_dir = "../logging-the-switch/_posts/"
    out_file = "#{entry['created'].strftime '%Y-%m-%d'}-#{File.basename f, '.yaml'}.textile"

  puts "#{File.dirname f}/#{File.basename(f, '.yaml')}"

  system("mkdir -p #{out_dir}")
  File.open("#{out_dir}/#{out_file}", 'w') do |file|
    file << "---\n"
    file << "layout: post\n"
    file << "title: \"#{entry['title']}\"\n"
    file << "date: #{entry['created']}\n"
    file << "---\n"
    file << entry['content']