tallphil.co.uk version 4

My blog at tallphil.co.uk was hacked a few weeks ago and taken down by
spammers. I got it back up and running again, but earlier today the
hosting account was suspended due to spam being sent out (again).

The tallphil.co.uk WordPress installation has been annoying me for
a little while now. I’ve been running the site with it for years now
and it’s under constant attack. I’ve had to disable site comments,
implement stronger and stronger admin auth (2-factor, captchas) and
try to strip the site back to basics just to keep it safe. As a result,
the WordPress installation was getting increasingly bloated, slow to
load and difficult to use. I love WordPress, but for this site I’ve
had enough.

Implementing the change

A move to Jekyll has been in the back of my mind for a while - I really
like writing in markdown and the idea of having a static site is quite
appealing for a simple site like this. It is much more difficult to
hack and should be lighting fast to load. It also fits in well with my
regular tools and workflows that I use for work every day.

I was quite nervous about migrating old posts from the WordPress site
to Jekyll format. However, this turned out to be ridiculously easy, made
possible with a WordPress plugin called
Jekyll Exporter.
This is literally a one click tool which generates a load of markdown
files ready to dump straight into Jekyll. It worked first time - all I
had to do was download all of my image uploads and do some find and
replace work to get the image embedding links to work.

When I was migrating old posts, I decided to set a threshold and not
bring over anything older than 2011. That was roughly when I started
writing blog posts about code and technical topics rather than random
gifs that I’d found on the internet.

Theme me up, Scotty

Once the back end was in place, I was able to run the new Jekyll site
locally and started playing with the front end a little. I actually
really liked the default theme that Jekyll came with (you can see an
example here) so used
that as a starting point.

Along the way, I was totally seduced by the amazing
history.js package
and @joelhans tutorial
tutorial about using this with Jekyll. Every blog post has its own
page, but when following a link in the left sidebar, front end
JavaScript pulls this in behind the scenes, grabs the part of the page
that contains the post content and injects it into the already loaded
webpage that you’re looking at. Importantly, it also changes the URL
and browser history, so everything works as if you had reloaded the page.

This allows me to write nice (very subtle) animations when you change
posts, plus the whole site is a bit speedier and spiffier. Honestly, it’s
probably only me who will notice the difference, but it made me happy :)

GitHub Pages

Finally, once everything was working locally as I wanted, it was time
to put the site online. The main hosting package for tallphil.co.uk
had been hacked and was sending out spam and the only really safe way
to get around that is to totally delete it. Whilst I could have created
a new package to host the Jekyll site, it seemed silly not to use
GitHub Pages. I wanted to store the site
contents on GitHub anyway,
so the free Jekyll hosting done by GitHub based on those files seemed
like a no brainer.

A quick config change and DNS update later, and the site is running!
If you’re curious, you can see the source code that the website is
based on here, including
this markdown file!

Archiving the old stuff

I am a sentimental old fart and I don’t like websites to die
and vanish forever. So I used
SiteSucker
to download a static copy of the WordPress front-end site, which I
have made available here.
If you’re curious, you can also see
version 2 and
version 1 of the
tallphil.co.uk site, along with fragments of the truly ancient
all that jazz website
that predates everything and goes back to the origins of my web design
career as a teenager.

beta.tallphil.co.uk is a new subdomain
that I created when doing this switch. tallphil.co.uk is my oldest
domain and was the first web hosting package that I ever owned. As
such it was a graveyard of old subsites and experiments, all of which
were mixed in with the WordPress blog install. I’ve moved these things
over to beta.tallphil.co.uk where they
can live on in isolation and safety.

Plans for the future

I wasn’t planning on releasing this new site just yet, but the second
hack sort of forced my hand. I think that the styling could do with
a bit of improvement to make it a little more colourful and exciting.
I would like subheaders such as the one above to be clickable to give
deep linking (eg. http://tallphil.co.uk/tallphil-v4/#plans-for-the-future)
and a load of other similar tweaks.

I have created a few tool documentation websites using markdown source
files recently (eg. MultiQC and
Cluster Flow). I wanted to keep the
markdown with the main code, so wrote my own system from scratch.
However, GitHub
recently announced
that it’s now possible to run GitHub Pages websites with Jekyll from
subdirectories of a repository, so this Jekyll site may be the first
of many..