xMarkdown implementation

european bob bob at wolfwall.com
Mon Mar 29 19:19:19 EST 2004

John Gruber wrote:

>Bob, this is just terrific. Wonderful stuff. I simply don't have
>time at the moment to really dig in to what you've done, but at
>first glance, I'm both impressed and delighted.

Cool, I'm glad you like it! I have to say, I'm equally impressed with 
the work done on Markdown (both of them) so far.

>But even that falls short of addressing the issue, because what
>happens when you want to include an empty element tag, e.g., a br
>tag with a custom class. One might use either of:
>    <br class='foo'>
>    <br class='foo />
>One is HTML 4, the other XHTML. Markdown puts the responsibility for
>doing this correctly on the writer's shoulders.

Yep, exactly, and I don't think you can readily get around it - when 
talking of fragments, it's difficult to talk about "HTML validity" 
anyway, because it ain't ever going to be - you don't have the <html>, 
<head>, etc.. so you're starting to talk about a subset of rules, in 
which case it's difficult do mechanically and potentially not complete 
anyway. Or, you could look at the complete document as a whole, but 
that's a lot of trouble.

Certainly the "Markdown doesn't specify an HTML version" comment wasn't 
made as a criticism, more a kind of "this is the nature of the beast" - 
this aspect, processing raw HTML, is the area I think xMarkdown is 
always going to be at a disadvantage: turning tag soup into XHTML (which 
xMarkdown has to in order to output it, but Markdown doesn't) isn't 
terribly easy or even necessarily possible.

>>I hope people find a separate codebase kind of interesting, anyway, not 
>>least from a pathalogical point of view ;)
>I certainly do. I hope you're willing to keep your implementation up
>to date with the handful of additions I have planned going forward.

Yeah, it's basically intended as a Markdown parser, not a Markdown-alike 
parser. The additions discussed so far seem pretty sensible, I think the 
ability to fall back to HTML means that new syntax has to be a fairly 
big win to be useful, which is a good yardstick when adding/making 
changes. So, I do currently plan on implementing them (certainly up to 
1.0). Some of them are actually already implemented, at least partially ;)

There are a couple of extra features in xMarkdown, most of which are 
curios I implemented for my specific needs - xMarkdown is very much 
"tool of Bob" at this stage. The reason I implemented it was because of 
running a strict xhtml1.1 blog; if the post is malformatted I'm 
immediately in trouble, since my edit buttons (etc.) are all on that 
same page with the post on it - if I can't see the page the whole tower 
of cards comes crashing down since I cannot fix the page. It's a lovely 
catch-22. Hence requiring something which was certain to output at least 
valid XML.

To an extent, I'm less interested in the syntax per se than the 
possibilities of the syntax - one of the plans I allude to is fronting 
xMarkdown to CGI::KWiki. A while ago I posted some patches to improve 
the XHTML-ness of Kwiki, which were useful but I realised were only part 
of the problem. Much of the problem is the syntax and the way it's dealt 
with - I think a fair description would be that the output is 
workman-like. Replacing the standard Wiki processor immediately makes 
Kwiki standards-friendly, and also opens the way for some interesting 
page transformation stuff (for example, being able to write <a 
href="WikiPage"> is quite useful - you want to wrap something like an 
image, but you don't want to extend your wiki syntax to cover this 
corner case because 98% of your links are just plain text, and you 
certainly don't want to hard-code the link itself)

>Thanks. More comments to come after I get a chance to do more than
>kick the tires.

Much appreciated :)

-- bob.

More information about the Markdown-discuss mailing list