On 31/7/2006, at 4:56, A. Pagaltzis wrote:

[...] it can’t be done without revising some parts of the syntax, OTOH the problematic parts (e.g. nested block elements)
You keep asserting that, and it keeps failing to make any sense.

Asserting what? That nested block elements are problematic?

[...] grammars can express nested constructs. I wonder what you are talking about.

Nested expressions in context free grammars [1] are not directly comparable with nested block elements in Markdown.

[...] That only means the current implementations need to be fixed.

Fixed how? From the syntax I get that I can do `> block quote` and `* list item` and from the cheat sheet that I can nest things like:

      * > list item with quoted text

Ignoring here that the HTML produced for that is:

    <ul>
    <li>> list item with quoting</li>
    </ul>

Let’s continue with the syntax which further says that I can be lazy and leave out the indent for list items and `>` for block quotes. So what should this convert to:

      * > list item with quoting
    more text here

Does the additional line belong to the block quote or the list item? I’m inclined to say block quote, since a block quote is not terminated before there is a blank line, at least from how I read the syntax. But then what about this:

      * > list item with quoting
    more text here
      * another list item

There is no blank line after the block quote, so does `* another list item` also belong to the block quote? This particular example does not parse as a block quote, but if we make one that does, we will see that Markdown does indeed make the list item part of the block quote, for example this example:

      * leading text as block quote can’t be first
        > some block quoted text
      * another list item

Turns into this (wrongly nested, but at least it got the block quote) HTML:

    <p><ul>
    <li>leading text as block quote can’t be first</p>

    <blockquote>
      <p>some block quoted text</li>
      <li>another list item</li>
      </ul></p>
    </blockquote>

This however raises two questions:

1. Should it actually be a list item in the block quote? for example take this example:

        > block quote
        * more block quote

    Which turns into this markup (i.e. there is no list item):

        <blockquote>
          <p>block quote
          * more block quote</p>
        </blockquote>

2. If `* another list item` gets nested into the block quote, we need a blank line in front of that item to make it part of the root list. But then, will we get the “spaced out” version of the list where each item is wrapped in `<p>…</p>` (which is normal for such “spaced out” lists.)?


These are the problems I want to have addressed/fixed! And this is where I think the syntax needs revising. I have shown above the problems with the ambiguity of nesting, but lazy mode for block quoting I think should not be a feature at all, take this example:

    > > I wrote something
    > you replied
    and now here is my reply to your reply.

This turns into the following markup:

    <blockquote>
      <blockquote>
        <p>I wrote something
        you replied
        and now here is my combat.</p>
      </blockquote>
    </blockquote>

Would people actually expect that?


Anyway, this thread was just to learn the interest in a more strict (but potentially revised) syntax and Johns future direction and thoughts on this.

It’s clear that this thread did not turn out to be productive, so I will retreat from this discussion.



[1] http://en.wikipedia.org/wiki/Context_free_grammars

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

Reply via email to