This Space for Rent

New Code! (down with html! version)

The major part of my "replace the clunky old version control system" webpage project is to replace the current "edit things offline with vi, then use rsync to push the pages over" arrangement with a more-wikiish online editor so I can directly type changes in and not have do do my previous dance of "edit/push/refresh webbrowser/etc."

But I'm not going to use the existing hacky editor that I've got in my existing weblog program, because it sucks dead bunnies through a straw (and, yes, I've been using it for 4 years now. I'm resistant to change.) Instead, I decided that I'd be far better off if I used a markup language like John Gruber's Markdown, and then I could edit via the web and the one true editor and have it mangle down into the same sort of html for browsers to look at.

Markdown is a pretty spiffy markup language, but it has one very serious bug; it's written in p*rl, it hasn't been ported to C, and all of the existing ports appear to be simple translations of the original massively search and replacey source.

Those bugs made it unworkable for me, so I decided I'd correct them by writing my own implementation of the code. In C.

So since Monday morning, I've been spending every spare cycle doing nothing but hacking away, and this morning I finally nailed it down to the point where it could recompile the language description into a form that is almost identical to the reference version, with only one large difference (and a few enhancements.)

My markdown misses some of the interactions between list items and paragraphs; the reference compiles

      * foo

* bar

to

      <li><p>foo</p></li>
      <li><p>bar</p></li>

while mine does

      <li>foo</li>
      <li>bar</li>

But, to make up for this loss, I've extended the image link format to allow me to specify image dimensions, via

    ![alt text] (http://here.I.am =WWWxHHH "this is the title")

or

     [tag]: http://here.I.am =WWWxHHH "this is still the title"

which means It's ready for me to hack into Annotations, and to be counted as my New Code! for the day.