How I migrated to a static blog

Until one week ago my blog was hosted at my house, on a raspberrypi with debian + wordpress. I was not satisfied by my setup because given the minimal size of my blog and the really scarce content I post every now and then, a full LLMP stack was overblown. I decided to change distribution (my server now runs Void) and to migrate to a static blog without CMS nor PHP.

Welcome to Jekyll and Hyde

The process of migration was rather painless. First of all I installed ruby on my desktop computer, then via ruby gems I installed jekyll:

gem install jekyll

gem install jekyll-gist

gem install jekyll-paginate

I used a wordpress plugin to copy all my old posts. Then I cloned from git the Hyde theme which you can see a demo here and corrected a pair of warning that jekyll printed on my terminal. Actually the jekyll docs are quite complete and covered all the errors that I encountered.

Jekyll structure is quite simple to understand: in the folder _post/ there are your post in markdown format (remember to delete the examples in that folder); in the root the are some files that should be modified: the file, the 404 page and index.html that is the frontpage of the blog; finally _config.yml contains the general configuration for the website and should be adjusted to your own likings. When Jekyll builds a website it parses all the markdown files and stores them in _site folder. Jekyll uses the html files in _layouts and _includes to render the markdown files.A

I added a simple archive page following the little piece of code in this page {% raw %} --- layout: page title: Archive ---

## Blog Posts

{% for post in site.posts %}
  * {{ | date_to_string }} » [ {{ post.title }} ]({{ post.url }})
{% endfor %}:wq

{% endraw %} I noticed that in _includes/head.html there is this line:

<link href=',300,700,800,600' rel='stylesheet' type='text/css'

so I proceed to remove it because is not needed for my blog. Finally I put a link to the archive, my github page and the atom feed on the sidebar by simple adding a href on _includes/sidebar.html.

I did not proceed with further modifications but there are tons of possibilities with jekyll. I think that the main advantages are the fact that you don't have to manage html code when writing a new post and that everything can be done via cli.

Francesco Mecca