For a couple of years this site has been hosted on the excellent Squarespace, but it has always been on my to-do list to create something simple and static. Last week I took the plunge and everything is now up and running using Jekyll hosted on GitHub Pages.

I was keen on keeping the site as lightweight as possible, but I assumed some performance tweaks like minifying html would be impossible without plugins (which don’t work on GitHub hosted sites).

That changed when I stumbled across jekyll-compress-html, a jekyll layout that minifies HTML using pure Liquid, which means it works perfectly when building on GitHub Pages.

Using it is dead simple, simply download compress.html, save it in _layouts , and update your base layouts to reference it:

--- layout: compress ---

The compression behaviour is configured in _config.yml . The full set of options are detailed in the documentation, but mine looks like this:

compress_html: clippings: all comments: ["<!-- ", " -->"] endings: all

Digging into the source, the magic is achieved by capturing the content of the page into a variable

{% capture _content %}{{ content }}{% endcapture %}

followed by a bunch of string manipulation using split , remove and replace . For an example of the results you can view the source on this page.

This is a brilliant hack, and a great reminder of the power that Jekyll provides out of the box - you might not always need to reach for a plugin!