A little single-page hymnal


A little single-page hymnal

This project went through a lot of iterations before I finished. It turns out that HTML doesn’t really offer any kind semantic markup or even a microformat for song lyrics. This led me to experiment.

I knew I didn’t want to manually update the HTML on every song every time I changed my mind. So I treated the lyrics themselves as data instead of markup. Then, I scripted the output I wanted with Jade and fed it the song data.

Now, I could now change the markup in a single place and all the songs would update. That’s the DRY principle at work.

(If you’re curious, I ended up using unordered lists for each line of the chorus and verses.)

As a result, this project includes the greatest, most beautiful piece of template code I’ve ever written.