FormalCode — A WordPress Theme
A clean, simple, developer oriented theme.

Welcome to FormalCode, a theme for developers looking to share documentation, source code, and other information that often stretches the bounds of standard theme layouts. Designed to be as simple and clean as possible without sacrificing a basic organizational structure and usability, the theme uses select WordPress features to create a code friendly layout. The layout contains no images, and was created first and foremost to stay out of the way.

In keeping with a goal of simplicity FormalCode eschews some features of WordPress in favor of a simpler approach, layout, or user experience. Features not supported by this theme:

  • Categories (Tags are used for organizing posts)
  • Pages (This may be added at a future release)
  • Widgets
  • Sidebars / Linkbars
Features

Source Code Friendly

Designing around the display of source code and documentation means having proper space to show source code without blending code into other site elements, obscuring features and code, or shrinking source code to an unreadable size. FormalCode makes source code a first class element of a blog by completely removing right hand side bars and UI elements, relying instead on post specific UI elements on the left hand side of each post, and site wide elements, like navigation and archives, clustered at the foot of the template. This open ended right side of the page means code snippits or documentation entries can be as wide as they need, and will never bleed into other parts of the page or be obscured. Add in unobtrusive visual markup and a mono-spaced font, and source code becomes readable and useful, rather than an unavoidable blemish.

Footnotes

The FormalCode template includes an automatic FootNote creation script that will extract properly formatted <span> elements from your posts, and insert them at the end of each post as linked footnotes. This is useful for creating and managing citationsSuch as books, journals, websites, or other ALA styled citations, longer asides This longer aside is really just a demonstration, but rather than include Lorem Ipsum text, I thought I'd use actual sentances, which are a lot easier to read., or tangents that would otherwise break the flow of a post. These footnotes can include any contentIncluding styles, links, images, or any other HTML embeddable content, except another footnote (the behavior in this case is undefined). For example, in a post, you could include a footnote like this (in the HTML view of the post editor):

This is an example string in a longer post, but I had another 
idea
<span class="footnote">The longer idea will appear as 
a <em>footnote</em> to the current post, before 
comments, but after the post content</span> 
-- that idea is a footnote at the end of this post.
					

The footnote span will appear inline with the post content in the Editing screen, but when displayed in the blog it will be extracted and replaced by a numbered URI pointing to the anchor of the footnote (just like the footnotes below). This behavior is controlled in the footnote.js file located in the javascript template directory of the theme.

Future Work / ToDo

A Note on Features

This theme is a work in progress, and there are always new features that can be added to make blogs using FormalCode easier to use and more robust, and make the content displayed with the theme more usable and direct. Features on this list are not final until they are available in a downloadable version of theme, and can change at any time. Minor tweaks to the theme layout, bug fixes, and known gaps in CSS coverage are not included in the Future Work list.

When deciding what new features to add to the theme, there are important considerations:

  1. Is the new feature useful? For how many people?
  2. Will this new feature overly complicate the presentation and usability of the theme? Is there a simple and user friendly way to integrate the feature into the theme?
  3. How much work is the feature?

Depending on the answers to these questions new features will get shuffled around, added, dropped, and otherwise tested or prototyped. Features are organized blow by estimates of which version of FormalCode will include the feature.

The Feature List / ToDos

Version 2

  • Collapsable source code blocks
  • Inline syntax highlighting
  • Microformats for source code snippits
  • Citation / ALA autoformatting, microformats for footnotes
  • Include out of order / left hand sidebar links inline with post (ie: mark links as for a post specific sidebar)

Version 3

  • Theme color customization
  • Automatically styled links to source code repositories
License

FormalCode is released under a Creative Commons - Attribution-Share Alike 3.0 license. Portions of this theme make use of Prototype.js. FormalCode currently uses Prototype version 1.6.0.3.

Contact

I'm always happy to hear question, comments, and requests regarding FormalCode. You can email me at: patrick (at) programmish (dot) com