Patrick Ward words, code, and music

Obligatory New First Post

I’ve decided to give the blog idea another shot. So, here’s the obligatory new first post to get things started. It’s a small nudge to get the lizard brain out of the way and the words flowing again. That little sucker’s got a serious hold on me at times.

True to my split personality, I’ve collected both my interests in literature & liberal arts studies along with my interests in programming & technology onto this one blog. It might be a strange combination, but I have no desire to manage multiple blogs right now.

I would say that a blog like this ends up consisting primarily of “notes to self”. However, in case there are any bored souls out there looking for something to read, I’ve split the posts into two main categories, created separate feeds for words and code, and will try to tag the posts with meaningful keywords in the future. That way, anyone who cares to can steer clear of an area they aren’t concerned about.

Willow

I’ve built the site with a derivative of the Jekyll blogging software called Willow, which is of my own doing. It’s an offshoot, but different in it’s own right, using Mustache as the templating engine and currently only supporting Redcarpet for Markdown syntax. I’ll write more about it later, but the key differences at the present moment include:

  • Uses the Mustache templating language instead of Liquid. I like it better than Liquid and it was a nice challenge.
  • It does not parse all files in the directory. Instead, Willow uses specific directories (posts, pages, public, assets, etc.) for organizing different file types. Jekyll folders always looked messy to me and I didn’t like creating filenames with leading underscores, so I opted to make Willow directories a little more like a structured application.
  • Includes a Sprockets compiler for working with CSS and Javascript assets. Minification will be added later.
  • Uses GLI for the command line executable, which provides a nicer command line syntax.
  • A refactored document handling system; cleaned up and refactored for possible extensions in the future.
  • A SiteList object that handles collections of pages, posts, categories, and tags with a consistent api. This allows me to use collated posts, grab categories as a hash or an array, etc.
  • Uses Redcarpet exclusively for Markdown objects so that it can take advantage of Redcarpet’s hooks. Of course, that’s not to say that another Markdown parser can’t be added later.
  • Replaces Jekyll’s Generator with Before and After Hooks. It’s just the beginning of an idea, but I’d also like to add hooks before and after the reading, renering, and writing of pages and posts as well.
  • Rather than associating output extensions per parser (or converter), Willow uses a default file extension that can be overriden on a per page basis. This allows you to create, for instance, .shtml or .php files using any parser, instead of the standard html extension. This was useful for a recent project of mine in which a client needed to continue using .shtml extensions on an existing server and was unwilling to change at the time.