← Evening Coding Project: Go Diagrams | Crossfit RTP →

New Oakwood Community Site Launched

Yesterday was an exciting day for Oakwood Community. First, we got profiled in Dirty Durham which is an excellent blog which discusses community initiatives and local politics around town. We've been grateful for all the support an encouragement we've gotten from people around town.

More to the point, we launched a new version of the Oakwood Community website. The first time around, I wrote it in plain HTML and Javascript, using jQueryUI to set up an ajaxy tab-based browsing interface. It worked decently, but occasionally had some quirks, and wasn't the most maintainable set-up. The new version is built on Pelican, just like this site. However, it's a little more complex than this site, so there were a number of issues that had to be addressed.

It wasn't going to be enough to use the default Smashing HTML5 theme. The theme would have to be overridden to allow us to have a front page that wasn't blog-focused. The color scheme had to be changed, some font sizes had to be overridden, and some of the pages had particular layouts that needed CSS customizations. That said, Smashing HTML5 provided an excellent starting point, and I was able to recycle most of what Pelican provides, only changing a few template files, and adding a new CSS file to override some of the Smashing HTML5 setting, and set a few site-specific elements. It shows. The new Oakwood Community site looks mostly like a green version of Smashing HTML5.

Also, while a static site generation tool seemed like a great match for a site like ours, there was one small hitch: we solicit application requests from potential interns through a form on the site, so there would need to be a form handler. Fortunately, we could drop a simple python CGI script into one of our static driectories, and our hosting provider, Webfaction, serves it up without any troubles. (Aside: The form handling was done using Ian Bicking's excellent formencode library.)

One of my favorite things about static site generation is the simplicity of deployment. My entire deploy script is as follows:

#!/usr/bin/env bash

pelican --settings=conf.py docs
rsync -avz --delete-after output/ oakwoodcommunity.org:webapps/oakwood

That's it. If I want to deploy a "staging" version of the site first, I just add /staging to the rsync target.

Finally, we've added a blog. Jayme wrote a great piece about a pumpkin that became our de facto whiteboard for a little while, and I've reposted the article about the bike rack over there. We're hoping some of the interns will post stuff on it as well. We'd like the site to reflect the whole life of our community.

Now that it's up and running, I'm looking forward to getting back to my go diagram rst directive. It's come a long way, but there are still a few key pieces missing.

Comments !