Technically about this website
This is a static website generated by amazing tool called Jekyll, the blog-aware static site generator. I’m always interested in learning new, interesting technologies, plus I’ve been thinking about refreshing my site for some time, which gave me the perfect excuse to install Ruby and fire it up.
I’m drawn to Jekyll as it seems to hit a sweet spot for me due to the following features:
I love Markdown. Markdown is a lightweight markup language with a simple, unobtrusive syntax. It looks great and is easily readable in its plain text form but is also easily converted into HTML. I find that I am using Markdown more and more every day.
Jekyll posts and pages can be written in Markdown format as well as HTML. Markdown is also compatible with HTML, so if you ever get some “widget” code that you want to embed on your site you don’t need to convert it in any way - just copy and paste the code in and mix the two together.
Static site generation
Previously I’ve used Blogger and WordPress to manage my site. Blogger and the hosted offerings of WordPress are ok, but they just don’t give me the flexibility I feel I need to be able to modify my templates and get my site running exactly how I want - there’s always some kind of restriction. This led me to hosting WordPress, which required a LAMP style stack on a server somewhere which, while not exactly a problem, was an overhead that I could do without.
Jekyll generates static sites. It processes your pages, posts and templates and produces simple output in the form of HTML files, allowing you to serve them up from almost any kind of web server. Apache, Lighttpd and Nginx are all welcome here, or you could just upload your files to an Amazon S3 bucket and serve them directly from there… Jekyll doesn’t care.
Jekyll is used by GitHub for their GitHub Pages feature. This allows you to create or push a Git repository with your Jekyll site to them, which they will then build and host for free. You can use a github.io address or your own domain name. This is perfect for me, as it allows me to develop my site and write content locally whilst being able to maintain it from anywhere with an internet connection. People can also fork my code and set up their own site easily and they can raise bugs, feature requests and even submit their own fixes & features if they choose to.
Simple, flexible templating
Jekyll uses the Liquid library for templating. This is extremely easy to learn and so far seems fairly capable, especially with the filters that Jekyll supports natively. It has its quirks, but I have not yet come across something which I haven’t been able to do.
Jekyll includes support for syntax highlighting of code snippets, which may come in handy for me, though I will probably lean more towards embedding GitHub Gists instead.