<div dir="ltr"><div><div>Alan,</div></div><div><br></div><div>Thanks a lot for your compliment.</div><div><br></div><div>Thomas,</div><div><br></div><div>&gt; <span style="font-size:13px;font-family:arial,sans-serif">Have a look at </span><a href="http://kramdown.rubyforge.org/syntax.html" target="_blank" style="font-size:13px;font-family:arial,sans-serif">http://kramdown.rubyforge.org/syntax.html</a><span style="font-size:13px;font-family:arial,sans-serif"> for the</span></div>

<span style="font-family:arial,sans-serif;font-size:13px">&gt; specification of the syntax used by kramdown (note that this is a</span><br style="font-family:arial,sans-serif;font-size:13px"><span style="font-family:arial,sans-serif;font-size:13px">&gt; specification targeted at end users).</span><div>

<span style="font-family:arial,sans-serif;font-size:13px"><br></span></div><div><span style="font-family:arial,sans-serif;font-size:13px">When I said &quot;define [the syntax] </span><span style="color:rgb(80,0,80);font-family:arial,sans-serif;font-size:13px">unambiguously&quot;, I meant stuff like the Markdown Extra spec [1] and peg-markdown&#39;s PEG file [2], which are targeted at Markdown implementers (hence absolutely unambiguous) rather than document writers (and so can have some ambiguity). Sorry about the confusion.</span></div>

<div><span style="color:rgb(80,0,80);font-family:arial,sans-serif;font-size:13px"><br></span></div><div><span style="color:rgb(80,0,80);font-family:arial,sans-serif;font-size:13px">[1]: </span><font color="#500050" face="arial, sans-serif"><a href="http://michelf.ca/specs/markdown-extra/">http://michelf.ca/specs/markdown-extra/</a></font></div>

<div><font color="#500050" face="arial, sans-serif">[2]: <a href="https://raw.github.com/jgm/peg-markdown/master/markdown_parser.leg">https://raw.github.com/jgm/peg-markdown/master/markdown_parser.leg</a></font></div><div>

<span style="color:rgb(80,0,80);font-family:arial,sans-serif;font-size:13px"><br></span></div><div><font color="#500050" face="arial, sans-serif">Michel,</font><br></div><div><font color="#500050" face="arial, sans-serif"><br>

</font></div><div><font color="#500050" face="arial, sans-serif">Thanks for taking a look at the spec. I&#39;ve spent about 3 months on this spec so far. For about a month before that, I had been thinking </font><span style="color:rgb(80,0,80);font-family:arial,sans-serif">in the background on </span><span style="color:rgb(80,0,80);font-family:arial,sans-serif">how to write such a spec - maybe that counts as well.</span></div>

<div><font color="#500050" face="arial, sans-serif"><br></font></div><div><font color="#500050" face="arial, sans-serif">&gt; </font><span style="font-family:arial,sans-serif;font-size:13px">&gt; A U+0009 (TAB) character in the input shall be treated as four consecutive U+0020 (SPACE) characters.</span></div>

&gt; <br style="font-family:arial,sans-serif;font-size:13px"><span style="font-family:arial,sans-serif;font-size:13px">&gt; No. That&#39;s often not the case. If I write &quot;*&quot; followed by tab to begin a line,</span><div>

<span style="font-family:arial,sans-serif;font-size:13px">&gt; that tab represents three spaces, not four. The number of spaces represented</span></div><div><span style="font-family:arial,sans-serif;font-size:13px">&gt; by a tab is 4-(column_number modulo 4). But you probably knew that. ;-)</span></div>

<div><font face="arial, sans-serif"><br></font></div><div><font face="arial, sans-serif">In vfmd, a TAB character is always 4 spaces. It&#39;s not like pressing TAB in MS Word. </font><span style="font-family:arial,sans-serif">For the same reason, from a user perspective, it&#39;s better to use spaces instead of </span><font face="arial, sans-serif">TABs to separate </font><span style="font-family:arial,sans-serif">the list bullet char (`*`) from the list item.</span></div>

<div><br></div><div>&gt; <span style="font-family:arial,sans-serif;font-size:13px">About paragraphs:</span></div>&gt; <br style="font-family:arial,sans-serif;font-size:13px"><span style="font-family:arial,sans-serif;font-size:13px">&gt; &gt; 10. If none of the above conditions apply, then the block-element start line marks</span><div>

<span style="font-family:arial,sans-serif;font-size:13px">&gt; &gt; the start of a block-element of type paragraph.</span><br style="font-family:arial,sans-serif;font-size:13px"><span style="font-family:arial,sans-serif;font-size:13px">&gt; &gt;</span><br style="font-family:arial,sans-serif;font-size:13px">

<span style="font-family:arial,sans-serif;font-size:13px">&gt; &gt; In order to find the block-element end line, we need to make use of a HTML parser. [...]</span><br style="font-family:arial,sans-serif;font-size:13px">&gt; <br style="font-family:arial,sans-serif;font-size:13px">

<span style="font-family:arial,sans-serif;font-size:13px">&gt; Oh oh... have you thought about code spans?</span><div><div><font color="#500050" face="arial, sans-serif"><br></font></div></div></div><div><font color="#500050" face="arial, sans-serif">Good catch. Have filed an issue: <a href="https://github.com/vfmd/vfmd-spec/issues/1">https://github.com/vfmd/vfmd-spec/issues/1</a></font></div>

<div><span style="color:rgb(80,0,80);font-family:arial,sans-serif"><br></span></div><div><span style="color:rgb(80,0,80);font-family:arial,sans-serif">I think it&#39;s a good idea to track problems found using GitHub issues instead of mails - it&#39;s </span><span style="color:rgb(80,0,80);font-family:arial,sans-serif">easier that way to (1) stay focused on the issue and (2) locate the discussion in the future.</span></div>

<div><font color="#500050" face="arial, sans-serif"><br></font></div><div><font color="#500050" face="arial, sans-serif">&gt; </font><span style="font-family:arial,sans-serif;font-size:13px">I don&#39;t have more time to read the rest of your spec right now. But I like the way it goes.</span></div>

<div><span style="font-family:arial,sans-serif;font-size:13px">&gt; I&#39;ll post more comments later.</span></div><div><span style="font-family:arial,sans-serif;font-size:13px"><br></span></div><div><span style="font-family:arial,sans-serif;font-size:13px">I understand. Looking forward for your comments.</span></div>

<div><span style="font-family:arial,sans-serif;font-size:13px"><br></span></div><div><span style="font-family:arial,sans-serif;font-size:13px">Thanks,</span></div><div><span style="font-family:arial,sans-serif;font-size:13px">roop.</span></div>

</div><div class="gmail_extra"><br><br><div class="gmail_quote">On Thu, Sep 26, 2013 at 11:44 PM, Michel Fortin <span dir="ltr">&lt;<a href="mailto:michel.fortin@michelf.ca" target="_blank">michel.fortin@michelf.ca</a>&gt;</span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Le 26-sept.-2013 à 12:17, Roopesh Chander &lt;<a href="mailto:roop@forwardbias.in">roop@forwardbias.in</a>&gt; a écrit :<br>


<div><div class="h5"><br>
&gt; I&#39;m pleased to announce the vfmd project to you all.<br>
&gt;<br>
&gt; vfmd is a variant of Markdown with a well-defined specification. The spec<br>
&gt; is ready - I&#39;m working on a testsuite at present and intend to start making<br>
&gt; a working implementation after that.<br>
&gt;<br>
&gt; <a href="http://vfmd.github.io/" target="_blank">http://vfmd.github.io/</a><br>
&gt;<br>
&gt; I&#39;m looking forward to knowing what you think. I&#39;d especially like to hear<br>
&gt; from Michel Fortin and John MacFarlane, who have tried to define the<br>
&gt; Markdown syntax unambiguously in a spec or grammar before.<br>
<br>
<br>
</div></div>Great. You&#39;ve written a parser in prose. I&#39;m impressed that you managed to have captured a lot of subtleties of the language within a formal spec. Seriously, how much time did you put into that?<br>
<br>
Ok, commenting as I read &lt;<a href="http://vfmd.github.io/vfmd-spec/specification/" target="_blank">http://vfmd.github.io/vfmd-spec/specification/</a>&gt;:<br>
<br>
&gt; A U+0009 (TAB) character in the input shall be treated as four consecutive U+0020 (SPACE) characters.<br>
<br>
No. That&#39;s often not the case. If I write &quot;*&quot; followed by tab to begin a line, that tab represents three spaces, not four. The number of spaces represented by a tab is 4-(column_number modulo 4). But you probably knew that. ;-)<br>


<br>
About paragraphs:<br>
<br>
&gt; 10. If none of the above conditions apply, then the block-element start line marks the start of a block-element of type paragraph.<br>
&gt;<br>
<br>
&gt;     In order to find the block-element end line, we need to make use of a HTML parser. [...]<br>
<br>
Oh oh... have you thought about code spans? If I write something like this:<br>
<br>
        This is `&lt;pre&gt;`.<br>
<br>
        Now the end tag: `&lt;/pre&gt;`.<br>
<br>
with your block-level algorithm that does not take code spans into account, the HTML parser would make the above a single paragraph instead of two. The same could happen if you had tag-like things in the tile of a link, or with partial tags:<br>


<br>
        This is `&lt;sp`.<br>
<br>
        Now ending the tag: `an&gt;`.<br>
<br>
Or a comment.<br>
<br>
You could either instruct the HTML parser to ignore span-level tags while you&#39;re trying to delimit blocks, or you need the parser to be aware of span-level Markdown syntax (basically parsing span-level syntax at the same time you&#39;re delimiting your paragraphs).<br>


<br>
... or you could try to be less clever and ask the user to start the paragraph with a block-level tag if he wants to use block-level HTML elements (like Markdown.pl and PHP Markdown do).<br>
<br>
 - - -<br>
<br>
I don&#39;t have more time to read the rest of your spec right now. But I like the way it goes. I&#39;ll post more comments later.<br>
<span class="HOEnZb"><font color="#888888"><br>
<br>
--<br>
Michel Fortin<br>
<a href="mailto:michel.fortin@michelf.ca">michel.fortin@michelf.ca</a><br>
<a href="http://michelf.ca" target="_blank">http://michelf.ca</a><br>
</font></span><div class="HOEnZb"><div class="h5"><br>
_______________________________________________<br>
Markdown-Discuss mailing list<br>
<a href="mailto:Markdown-Discuss@six.pairlist.net">Markdown-Discuss@six.pairlist.net</a><br>
<a href="http://six.pairlist.net/mailman/listinfo/markdown-discuss" target="_blank">http://six.pairlist.net/mailman/listinfo/markdown-discuss</a><br>
</div></div></blockquote></div><br></div>