Jekyll Tag Archive Pages

Feb 3, 2016
Tags: Web Development Jekyll

If you’ve ever built a site with Jekyll, chances are pretty good that at some point you’ve asked yourself—how do I setup tag archive pages? The truth is that it’s kind of a pain.

Jekyll won’t do it for you out of the box. You could write your own ruby to do it—but if you’re using GitHub Pages to build the site, your plugin won’t work. You could build the site locally and then push the output to GitHub Pages—but if other people need to update the site, welcome to the bottleneck. You could manually create them—but if you’re handing the site off to a client, that’s not really sustainable.

Once all other options have been exhausted, the answer must be javascript.

Just to be clear: When I say ‘tag archive pages’ I mean a page for each tag that displays all posts on the site using that tag. It’s a very common pattern for most blog-like sites.

So, how to do this on a static site with Javascript? Well, one option is to pass the requested tag via a query string in the URL, and then use that variable to show the right posts.

It’s just text, so I opted for a single index page that lists all the posts grouped by tag—with each block hidden by default. Then I can just grab that tag variable and show the right block. Here’s a Gist so you can get the gist…

I thought for a moment about building out my index of posts as a JSON file and then using JQuery to parse and display the right posts—but after looking at the performance of the above solution, going through JSON seemed like overkill.


Wolf Hall

Jan 27, 2016
Tags: Books History

“The trouble with England, he thinks, is that it’s so poor in gesture. We shall have to develop a hand signal for ‘Back off, our prince is fucking this man’s daughter.’ He is surprised that the Italians have not done it. Though perhaps they have, and he just never caught on.”

So good.


Stop Wasting Time Online

Jan 26, 2016
Tags: GTD Web Development

I’ve been wasting way too much time online lately. So I built a reminder, and am now redirecting distracting services like Twitter, and Instagram directly to it. Now, if I try to access Twitter, I get a strong prompt to stopwastingtime.online.

I’m a news junkie, and I love learning new things, but the web never sleeps. Professionally speaking, learning is a big part of my job. Keeping up with the latest approaches, frameworks, utilities, etc. that make up the world of full-stack web development is important—but it never stops.

The pace of change is relentless, broad, and demanding.

Yes, I want to read about how you’re using Gulp and test-driven-development to improve your local workflow—just not right now.

It can also be difficult to pull the signal from the noise on services like Twitter.

Yes, I’m interested in reading your research on optimizing page speed—no, I don’t want to see a photo of your lunch.

Research has shown that the type of tiny, never ending interruptions the modern web imposes on us through services like Twitter, Instagram, and Facebook are rewriting our brains. We’re wired for distractions—it’s an evolutionary adaptation from when noticing things like a twig snapping in the distance could save your life. Today, every little Tweet, cat photo, or Facebook poll, taps into that same evolutionary mechanism—delivering a nice shot of dopamine to keep you coming back, and undermining your ability to focus, ignore irrelevant information, process past experiences, and get stuff done.

I need to firewall off most of my day from these types of distractions. So I built an online reminder and am now redirecting all the above services directly to it. So if I try to open up Twitter, I get an immediate reminder to stopwastingtime.online.

Rather than mucking about with handling https:// requests via the local hosts file, I’m using this simple Safari extension to handle all the redirects—there’s also one for chrome if that’s your thing.


The Distress Signal is the personal blog of Bryan Schuetz. Bryan has been complaining on the Internet since the 90s. If you'd like to get in touch with Bryan, you can find him on twitter.