While microformats are all about embedding data in HTML, I thought that macroformats could be a good way to talk about transforming existing data into HTML. I hear you say this didn’t need a name, it existed before; but we all know this is all about naming in the end…
So, here is on the “macroformat” technique that I use to keep up to date the list of projects I’m working on at this time: it’s based on an iCalendar todo list that I maintain using Evolution.
The idea is that each of the todo item is in fact a project of mine, and is categorized into a simple HTML page depending on its iCalendar characteristics as either “Planned”, “In Progress”, “Some day pile” or “Past”. It relies on iCal2RDF to parse the iCalendar into RDF, which I then transform into XHTML using a simple XSLT stylesheet.
To have this happening automatically when I modify the todo list with Evolution, I’m using dnotify to watch the directory where the Todo list sits with the following command: dnotify --modify ~/.evolution/tasks/local/system/ -e ~/bin/update-tasks which is started with my graphical login session.
update-tasks is a simple shell script that does the right thing:
/usr/bin/perl ical2rdf.pl -xnames=http://www.example.org/dom-todos/# ~/.evolution/tasks/local/system/ | xsltproc progress.xsl - > InProgress.html
and then publishes it to the W3C Web site (in a private area) using CVS.