42¢ glxn.net

Migrated from wordpress to jekyll and github pages

I finally got around to migrating my site from wordpress to github, and I thought I’d write a small post on how it all went down.

Porting the content

I followed the standard ‘export to xml’ followed by jekyll-import as mentioned in the migrations section in the jekyll docs. It was pretty straightforward, but I did get a nasty error when I first tried to start jekyll:

Configuration file: /Users/ken/dev/git/42cents/_config.yml
            Source: /Users/ken/dev/git/42cents
       Destination: /Users/ken/dev/git/42cents/_site
      Generating... Error reading file /Users/ken/dev/git/42cents/_posts/2010-08-19-pomodoro-technique-and-my-idea-for-a-decent-android-app.textile: invalid byte sequence in US-ASCII
  Liquid Exception: invalid byte sequence in US-ASCII in 2010-08-19-pomodoro-technique-and-my-idea-for-a-decent-android-app.textile
/Users/ken/.rvm/gems/ruby-2.0.0-p0@42c/gems/liquid-2.5.0/lib/liquid/template.rb:141:in `split'
/Users/ken/.rvm/gems/ruby-2.0.0-p0@42c/gems/liquid-2.5.0/lib/liquid/template.rb:141:in `tokenize'
/Users/ken/.rvm/gems/ruby-2.0.0-p0@42c/gems/liquid-2.5.0/lib/liquid/template.rb:58:in `parse'
/Users/ken/.rvm/gems/ruby-2.0.0-p0@42c/gems/liquid-2.5.0/lib/liquid/template.rb:46:in `parse'
/Users/ken/.rvm/gems/ruby-2.0.0-p0@42c/gems/jekyll-1.0.2/lib/jekyll/convertible.rb:77:in `render_liquid'
/Users/ken/.rvm/gems/ruby-2.0.0-p0@42c/gems/jekyll-1.0.2/lib/jekyll/convertible.rb:128:in `do_layout'
/Users/ken/.rvm/gems/ruby-2.0.0-p0@42c/gems/jekyll-1.0.2/lib/jekyll/post.rb:285:in `render'
/Users/ken/.rvm/gems/ruby-2.0.0-p0@42c/gems/jekyll-1.0.2/lib/jekyll/site.rb:230:in `block in render'
/Users/ken/.rvm/gems/ruby-2.0.0-p0@42c/gems/jekyll-1.0.2/lib/jekyll/site.rb:229:in `each'
/Users/ken/.rvm/gems/ruby-2.0.0-p0@42c/gems/jekyll-1.0.2/lib/jekyll/site.rb:229:in `render'
/Users/ken/.rvm/gems/ruby-2.0.0-p0@42c/gems/jekyll-1.0.2/lib/jekyll/site.rb:44:in `process'
/Users/ken/.rvm/gems/ruby-2.0.0-p0@42c/gems/jekyll-1.0.2/lib/jekyll/command.rb:18:in `process_site'
/Users/ken/.rvm/gems/ruby-2.0.0-p0@42c/gems/jekyll-1.0.2/lib/jekyll/commands/build.rb:23:in `build'
/Users/ken/.rvm/gems/ruby-2.0.0-p0@42c/gems/jekyll-1.0.2/lib/jekyll/commands/build.rb:7:in `process'
/Users/ken/.rvm/gems/ruby-2.0.0-p0@42c/gems/jekyll-1.0.2/bin/jekyll:83:in `block (2 levels) in <top (required)>'

Turns out there was some derpy characters in some of the posts. Not surprising really, but finding them was a bit tricky. First step to finding the garbled data was to get jekyll to start regardless of the non US-ASCII characters by setting this property in my shell:

export LANG=en_US.UTF-8

Then i started browsing the pages and looking for derpy characters in the posts. Although probably not the most efficient way of doing this, I figure it was a one time deal, so manually fixing these characters was OK; It did not end up taking more than 5 minutes anyway. After I removed the derpy characters I simply launched a new shell session to see that jekyll was able to generate the site.

Then it was just to make a layout and port the posts from html to textile.

One thing that was a bit annoying was that I could not figure out how to get jekyll to host posts under the old permalinks with the style (‘?p=123’) at the same time as using a new pretty permalink scheme. Additionally the site is hosted on Github, and 301 redirect does not seem to be an option. I ended up just hacking it with some javascript. The hack is basically just a check for if the query part of the url contains a p= and if so redirect to the new url for the old post. See:

Although suboptimal, the hack works. If you have a better suggestion, I welcome it. I would love it if I could get a 301 sent from my github pages for those old permalinks.

hosting subdirectories with static content

I also had a subdirectory with a bunch of seam related stuff I wanted to ensure survived the migration. This was easy as cheese. I just placed the same directory at the root of my site, and pushed them to the repository. Worked out-of-the box.

routing glxn.net to kenglxn.github.com

In two simple steps I was able to deprecate the old webhotell and use github pages instead.

First I followed the instructions on github and added a CNAME file with glxn.net as its content to the root of my repository.

Next I went to my registrar and updated the DNS settings. First I moved the webhotell A record to a backup domain. Then I added two A records pointing to the github pages server IP. One for glxn.net and one for www.glxn.net ensuring that www <=> TLD redirects will work.

comments powered by Disqus

Moar stuffs

12 Sep 2017 Building an executable WS client using maven and metro
07 Jun 2015 Deploy an Ember app to gh-pages using npm run-script
06 Jun 2015 JSON Contract testing using unit tests to assert full stack integration across REST services
03 May 2015 simple http serve a directory from terminal
07 Jan 2014 civu, a CLI for cloning git repositories from jenkins views
06 Jan 2014 PyramidSort, a Sublime Text plugin for for reformatting text
05 Jan 2014 Git commit-message hook for JIRA issue tags
31 May 2013 hacking kitchen tiles with coffeescript
30 May 2013 Nuke, ps grep kill something
24 May 2013 mvnr: recursive mvn command runner
23 May 2013 Query By Example for JPA
22 May 2013 gitr: recursive git command runner
21 May 2013 Keeping gh-pages branch in sync with master
19 May 2013 Migrated from wordpress to jekyll and github pages
14 Aug 2012 Using Sublime Text 2 as git commit message editor
10 Mar 2012 QRGen, a small wrapper on top of ZXING for generating QRCodes in java
04 Jan 2012 My Bash PS1 with git branch info
17 Aug 2010 Making a swing project using IntelliJ IDEA GUI builder with maven, Including executable jar
01 May 2010 Using Arquillian to test against a remote jboss container from within IDEA
06 Apr 2010 WELD/CDI lightningtalk from Know IT 2010 annual conference
03 Apr 2010 Solving Sudoku using java swing and junit
01 Mar 2010 Simple CDI/WELD login example
01 Mar 2010 Implementing @RequestParam in CDI/WELD using Qualifier and InjectionPoint as @HttpParam
01 Nov 2009 Seam Maven Refimpl