How I migrated to a static blog
02 April 2016
02 April 2016
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.
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 about.md 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 %} * {{ post.date | date_to_string }} » [ {{ post.title }} ]({{ post.url }}) {% endfor %}:wq
{% endraw %} I noticed that in _includes/head.html there is this line:
<link href='https://fonts.googleapis.com/css?family=Open+Sans:400,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