What I needed (OK, wanted) was an engine that would render HTML from wikimarkup. The back-story's a bit involved, but I started with s-expressions, found them unwieldy, realised I was nicely placed to separate the parsing and rendering, so worked out how to parse markup into an AST. Then I realised I had the general-purpose engine that I wanted for other web-based work, so ripped out the wiki-specific bit and in the process proved that it actually is as easily extensible as I'd hoped. It also helpfully auto-detects whether you're using s-expressions or wikimarkup in a given batch of input, and selects the parser accordingly.
The upshot is an engine that parses the incoming markup into an AST, then renders the AST as HTML, and has a mechanism for adding custom bits of rendering functionality for, say, adding an image link. That mechanism is in place and in use, but needs one more step and a bit of documentation before it's ready for the insertion of arbitrary {macro}content{/macro} processes. It also actually parses the input, rather than using regexes to transform things, which is a (not-so-)small point of pride

Version 0.1 is on github now, in its basic working form.
Credit goes to Peter Seibel, because I've shamelessly swiped the rendering code from Practical Common Lisp. Anything that's broken is entirely my fault.