Breaking some rule or another
I’ve been on a static website kick lately. Last spring I got hacked on my old wordpress multisite install through a well-known third party forum plugin. That wasn’t fun. I decided then and there to go static, since php is a scripting language for security vulnerabilities.
So in May/June, I converted my personal site to a dynamically-generated static site using hyde. Hyde is a python site generator inspired by jekyll. It’s pretty damn cool, as I get more and more used to it. It uses jinja2 templates, and allows me to keep all my site content and what not under source control. To publish an update to the site, I simply push to my server with an update hook. I even figured out a usable workflow to manage multiple subfolder sites for my courses (for the Spring– here, here, here— ok, that last one’s not up yet). Each one of those has its own css, templates, etc.
Along the way, there were two domains still using php on my server, including an empty Omeka repository for my Bourbon Quito Project. I’ve been playing around for a couple of months with replacing that site with something else. I have tons of content for it, but I’ve had so many other things going on that I’ve never developed it. It’s quite ridiculous of me to put up an academic/DH site and leave it there empty for so long. I’m sure that’s breaking some rule or another about agile web development or something. But, the genesis of Bourbon Quito Project was to make an individual research archive for a book, if not something more. Turns out that when one is hand-keying transcriptions, building such an archive can take a long-ass time.
Design for this dummy
While playing around with the toolkit, I thought it might be fun to reinvent the Bourbon Quito Project as a static site. The workflow would make quite a bit of sense. When I transcribe a case, I do so in textmate using markdown. It would be simple to simultaneously publish the transcription to Bourbon Quito Project, as it would be keep push it to a mercurial repo. There are some issues to work out, though. And, with the bootstrap toolkit, it wouldn’t be to hard to make the site look intentionally designed. I decided first and foremost that I needed to change the color scheme a bit as well as the font set. Twitter is, of course, full of sans-serif goodness. I prefer my fonts seriffed. (I know this isn’t necessarily preferred web design, but for me serif fonts communicate permanence in a way that sans-serif fonts do not. And, this is a research archive.) So, I resorted to my favorite serif font with Garamond, using google’s web fonts, for paragraph text. Headings use IM Fell English, which has a particularly attractive Q with a long tail. I minimized twitter’s black/grey/blue color scheme in favor of pale yellows and reds present in an iconic 1734 map I cropped for the header image of the landing page.
I think it looks nice– much nicer than the lame css hacks I’d done on the previous omeka incarnation of the site. But design was only one of the problems I’ve been thinking through, and posed by the use of a dynamically-generated static site.
- Full-text search.
- Photo Gallery for Manuscripts.
- More granular comment capability for blog/chapter posts.
Search is the complicated one here, but there is probably a solution with Tapir (if not google site search). For granular comments, there is Highlighter. Both of these solutions lack permanency– they’re dependent on third party services. But, for now I’m OK with it. That’s because I’m also working on a django app behind the scenes that will replace this whole shebang on heroku some day. But, I digress.
The photos I have from my archive collection trips are quite large at more than 3MB each. That’s way overkill for the web. So, I wrote a small python script that takes a folder of .jpg files, reduces their quality to about 800KB, saves them in the appropriate place of for processing by PhotoFloat, and then runs its scanner to make the thumbnails. Then, it’s as simple as syncing with the web server.
What’s the point?
There are so many great CMSs out there to manage a site like this, why not use wordpress, drupal, or omeka (the top three for DH projects)? Static sites are fast and use very little RAM. In getting rid of the php from my VPS at dreamhost, I’m averaging 80-90MB of RAM for like 4 or 5 domains. It’s cheap to run such a server, and while now I’m using Apache2, it’d be simple to switch to nginx for even more performance improvement. It’s more secure. I write everything in a text editor, and manage it with source control. I deal with all my pics through the command line. Static site generators like jekyll and hyde score you some geek points. But, more importantly, I feel like I have a better grasp of the mechanics behind content management.
And, it’s fun.