<div dir="ltr"><br><div class="gmail_extra"><div class="gmail_quote">On Fri, Oct 4, 2013 at 9: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:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">Le 4-oct.-2013 à 11:22, Roopesh Chander &lt;<a href="mailto:roop@forwardbias.in" target="_blank">roop@forwardbias.in</a>&gt; a écrit :<br>



<div><br>
&gt; For obvious input, most Markdown implementations agree. For non-obvious<br>
&gt; input, they behave inconsistently.<br>
<br>
</div>But pretty much all current implementations treat tabs the same way (converting them to spaces, with 4-space tab stops). There is virtually no inconsistency, implementations agree. </blockquote><div><br></div><div>


No, not all of them. Most of them, yes. As we saw earlier, Kramdown and Maruku keep them as is. (Which is why you probably added &quot;pretty much&quot; before &quot;all current implementations&quot;.)</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">


I know you&#39;ve come up with some examples that would be interpreted better. But unless I&#39;m mistaken, those are theoretical examples made up specifically to demonstrate cases in which a new algorithm is an improvement. I think we should be extra-careful about implementing solutions that fix hypothetical problems.<br>

</blockquote><div><br></div><div>Let us consider the example I gave in my last mail, which to me looks like a practical use case. Let me elaborate on it here:</div><div><br></div><div> 1. Consider a user who sets his text editor to keep tabs as is (and not expand it to spaces)</div>

<div> 2. This chap wants a code block inside a blockquote in his Markdown document</div><div> 3. This is the first time he&#39;s tried to write a code block inside a blockquote, so he consults the user doc</div><div> 4. The user doc says:</div>

<div><div style="font-size:13px;font-family:arial,sans-serif">     (a) &quot;For code blocks, indent each line with 4 spaces or 1 tab&quot;</div><div style="font-family:arial,sans-serif;font-size:13px">     (b) &quot;For blockquoting, start the line with &#39;&gt;&#39; followed by an optional space.&quot;.</div>

<div style="font-family:arial,sans-serif;font-size:13px">     (c) The doc gives examples of blockquotes containing code blocks that use 4 spaces after the &quot;&gt; &quot; of a blockquote</div><div style="font-family:arial,sans-serif;font-size:13px">

 5. After reading the doc, the user naturally writes (.=space;_=tab;tabstop=4):<br></div><div style="font-family:arial,sans-serif;font-size:13px"><div><font face="courier new, monospace">&gt;.__code block</font></div><div>

(or)</div><div><div><font face="courier new, monospace">&gt;___code block</font></div><div><br></div></div><div>Would you consider the above example <span style="font-size:small;font-family:arial">hypothetical - something that cannot happen practically? If yes, which step(s) above would you term as impractical?</span><br>

</div><div><span style="font-size:small;font-family:arial"><br></span></div><div><span style="font-size:small;font-family:arial">That is:</span></div><div><span style="font-size:small;font-family:arial"> 1. Is it impractical to assume that a user would set noexpandtab? (Y/N)</span></div>

<div><span style="font-size:small;font-family:arial"> 2. Is it impractical that the user would want to have a code block inside a blockquote? (Y/N)</span></div><div><span style="font-size:small;font-family:arial">and so on.</span></div>

<div><span style="font-size:small;font-family:arial"><br></span></div></div></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">


We could debate this a lot longer, but I don&#39;t really feel like wasting time on something I don&#39;t see as an issue. Please first convince me that this is a problem that needs improvements, that it is actually biting some people out there, and that the current solution(s) are not practical. Then we&#39;ll have some data points to discuss possible fixes for those problems.<br>

</blockquote><div><br></div><div>Frankly, I don&#39;t know whether it&#39;s biting anyone out there. But there is an inherent value in being self-consistent. The parser should behave in a way that is consistent with the user doc. This is violated in the example given above.</div>

<div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div>
&gt; I guess anything that exists in the document should be considered as being<br>
&gt; put there intentionally.<br>
<br>
<br>
</div>Have you never copy-pasted text containing tabs without noticing? It&#39;s often hard to notice that tabs are actually tabs and not just a bunch of spaces until edit that line. What you notice more however is whether things properly align or not in your editor.</blockquote>

<div><br></div><div>Are you talking about copying code from a code editor (say XCode), where we&#39;re using tab-indentation in some lines and space-indentation in some other lines?</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">

 </blockquote><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div>
&gt; As far as I know, most browsers use 8 as tabstop by default, so it&#39;s fairly<br>
&gt; consistent.<br>
<br>
</div>It&#39;s not consistent with Markdown&#39;s 4-space tab stops.<br></blockquote><div><br></div><div>In your earlier mail, you had said<span style="font-size:13px;color:rgb(80,0,80);font-family:arial,sans-serif"> that &quot;</span><span style="font-size:13px;color:rgb(80,0,80);font-family:arial,sans-serif">since browsers don&#39;t all show tabs in a consistent way inside a `&lt;pre&gt;`, it&#39;s </span><span style="font-size:13px;color:rgb(80,0,80);font-family:arial,sans-serif">much better if they get converted to spaces</span><span style="font-size:13px;color:rgb(80,0,80);font-family:arial,sans-serif">&quot;. </span><span style="color:rgb(80,0,80);font-family:arial,sans-serif;font-size:13px">My response was browsers among themselves are consistent.</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">I agree that browsers use 8 column tabs and many Markdown implementations use 4 column tabs to convert to spaces. But if we leave tabs intact in the HTML output, then Markdown and the browsers will be consistent, so all will be well? </span><span style="font-family:arial,sans-serif;font-size:13px">Maybe explaining using an example use case would help here (maybe we are copying from XCode and pasting it into our doc, or maybe we are copying code from a browser)?</span></div>

<div><font color="#500050" face="arial, sans-serif"><br></font></div><div><font color="#500050" face="arial, sans-serif">As I said earlier, </font><span style="font-size:13px;font-family:arial,sans-serif">I hadn&#39;t understood what you&#39;d meant when you said &quot;I didn&#39;t think tabs inside code blocks were into question here, are they?&quot;. Please explain (if you think it&#39;s worth discussing, that is). </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">Also, </span><span style="font-family:arial,sans-serif;font-size:13px">I had requested that you provide a few examples of inputs that would break if we change handling of tabs. If you have such examples, please provide them.</span></div>

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