On 1 Mar 2008, at 19:19, David Parsons wrote:

I agree that Markdown needs to be defined unambiguously, but I don't
think that's feasible with plain English [...]

   I'm not so sure about this.   I managed to write a markdown
implementation without using anything other than the daring fireball
   syntax document and MarkdownTest_1.0.   And I am by no means a
   Perl programmer.

And no offense, but there must be hundreds of edge-cases where your implementation disagrees with Markdown.pl.

Have a look e.g. at http://six.pairlist.net/pipermail/markdown-discuss/2006-August/000151.html for some edge cases related to nesting block elements, where the outcome is ambiguous, and I am quite sure there are no tests, as Markdown.pl generates bad HTML for most of them.

A formal grammar defines _exactly_ how things should be, as I argue here http://six.pairlist.net/pipermail/markdown-discuss/2007-August/000746.html where I also show how Markdown.pl presently has unintuitive precedence which is definitely not defined in the syntax document and something I doubt is in the tests (as the behavior to me is unattractive, but stems from how Markdown.pl is implemented, and thus most of the ports as well).

The problem so far has been that the formal syntax normally used to define grammars does not support Markdown’s notion of embedding, but as mentioned here http://six.pairlist.net/pipermail/markdown-discuss/2008-February/001002.html I have had some success with a rule-based implementation that uses a stack for aggregating rules that needs to be applied to the current line before it is handed to the regular parser -- this allows a specification without code and which is unambiguous to edge-cases since the rules are exhaustive, unlike a document written in English.

Though without changing a lot of edge-case behavior, I find it hard to see Markdown using such rule-based implementation, so personally I am favoring a new Markdown-inspired language.

_______________________________________________
Markdown-Discuss mailing list
[email protected]
http://six.pairlist.net/mailman/listinfo/markdown-discuss

Reply via email to