<span style="font-family: courier new,monospace;">Hello List,</span><br style="font-family: courier new,monospace;"><br style="font-family: courier new,monospace;"><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">While translating documents in markdown, I&#39;ve noticed that it is often necessary to continue table cell text on the following line, especially when limited to a narrow column, and especially in table headers.  Unfortunately, this is impossible with the existing table syntax, which interprets each new line as a new table row.</span><br style="font-family: courier new,monospace;">
<br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">I see that David Wheeler proposed a syntax for a text continuation in tables based on database outputs (see <a href="http://www.justatheory.com/computers/markup/markdown-table-rfc.html">http://www.justatheory.com/computers/markup/markdown-table-rfc.html</a>, and also recent discussion on this list).</span><br style="font-family: courier new,monospace;">
<br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">Text continuation seems to me to be a desirable addition to markdown, and DW&#39;s proposal looks very encouraging.  The outstanding arguments I could find against his proposed &#39;:&#39; cell separator are:</span><br style="font-family: courier new,monospace;">
<br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">1. Not usable as described with proportional fonts,</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">2. Cannot distinguish between &#39;:&#39; as a separator and &#39;:&#39; as cell content.</span><br style="font-family: courier new,monospace;">
<br style="font-family: courier new,monospace;"><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">I&#39;d like to offer the following thoughts with a view to hopefully resolving these issues.</span><br style="font-family: courier new,monospace;">
<br style="font-family: courier new,monospace;"><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">Use With Proportional Fonts</span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;">---------------------------</span><br style="font-family: courier new,monospace;"><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">The &#39;:&#39; syntax could work exactly as per the existing &#39;|&#39; cell separator, such that the &#39;:&#39; cell separator be *required* on the right of each column rather than optional.  The last column would continue to be optional, as per the existing &#39;|&#39; cell syntax.</span><br style="font-family: courier new,monospace;">
<br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">Thus, text may be continued over any number of lines in a table body, like this;</span><br style="font-family: courier new,monospace;">
<br style="font-family: courier new,monospace;"><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">   |    Col A    |   Col B  |  Col C</span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;">---+-------------+----------+---------</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;"> 1 |      A1     |    B1    |    C1</span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;">   : a2 contains :  b2      :  c2</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">   : some long &amp; :   b2     :   c2</span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;">   : interesting :    b2    :    c2</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;"> 2 | commentary  |     B2   |     C2</span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;"> 3 |      A3     |    B3    |    C3</span><br style="font-family: courier new,monospace;"><br style="font-family: courier new,monospace;"><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;">Text may also be continued over any number of lines in a table header, like this;</span><br style="font-family: courier new,monospace;"><br style="font-family: courier new,monospace;">
<br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">   : This is   :         :</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">   : Continued :         :</span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;">   : for Ages  :         :</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">   | and Ages! |  Col B  |  Col C</span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;">---+-----------+---------+---------</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;"> 1 |     A1    |   B1    |    C1</span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;"> 2 |     A2    |   B2    |    C2</span><br style="font-family: courier new,monospace;"><br style="font-family: courier new,monospace;"><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;">This works exactly the way pipe &#39;|&#39; currently work with both proportional and non-proportional fonts.</span><br style="font-family: courier new,monospace;"><br><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;">The question raised by the second example is how should markdown parsers distinguish between a table which begins with text continuation markers, and a list definition?</span><br style="font-family: courier new,monospace;">
<br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">I believe this can be resolved by looking ahead to the following lines of the document.  Whether a table&#39;s compulsory &#39;---&#39; header/body separator line is encountered before a blank line should be enough to establish context.</span><br style="font-family: courier new,monospace;">
<br style="font-family: courier new,monospace;"><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">Distinguishing Cell Separator from Cell Content</span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;">-----------------------------------------------</span><br style="font-family: courier new,monospace;"><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">The existing pipe separator syntax must also have this same issue, the difference (presumably) being that;</span><br style="font-family: courier new,monospace;">
<br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">    * The colon is used more commonly in content than the pipe, and,</span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;">    * &#39;:&#39; is markdown syntax denoting a definition list.</span><br style="font-family: courier new,monospace;"><br style="font-family: courier new,monospace;"><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;">1. The simplest, but most restrictive, option is to simply not support colons within cell content. All colons, in the context of tables, are therefore cell delimiters.</span><br style="font-family: courier new,monospace;">
<br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">2. A less restrictive option is to require all colons within table cell content to be formally escaped, thus &#39;\:&#39;.  While this works technically, it has the disadvantage of polluting the source text.</span><br style="font-family: courier new,monospace;">
<br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">3. An alternative option is to define the colon cell separator more exactly, such that in the context of a table;</span><br style="font-family: courier new,monospace;">
<br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">    * Any colon encountered with leading or trailing text (e.g., &#39;text:&#39; or &#39;:text&#39;) is not a cell separator.</span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;">    * Any colon encountered exactly one or two characters after a colon (E.g., &#39;::&#39; or &#39;: :&#39;) is not a cell separator.  Thus, colons denoting cell separators must always be at least two characters apart.  This implies that no column (excepting the first and last) can be a single character wide.</span><br style="font-family: courier new,monospace;">
<br><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">I believe that option 3 has the most appeal since it does not pollute the source text at all, and on<font size="2">ly for</font>ces the author to create &quot;neat&quot; tables in order to work.</span><br style="font-family: courier new,monospace;">
<br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">In any case, it seems likely that the use of colons within table content would be rare compared to the use of text continuing across lines.  Therefore, the inconvenience caused by any of the suggested options may be acceptable to an author who really just wants text continuing across lines!</span><br>
<font style="font-family: courier new,monospace;" size="2"><br><br>Just a few thoughts...<br><br>Simon</font><br><br><br style="font-family: courier new,monospace;"><br style="font-family: courier new,monospace;"><br style="font-family: courier new,monospace;">
<br style="font-family: courier new,monospace;"><br style="font-family: courier new,monospace;"><br style="font-family: courier new,monospace;"><br style="font-family: courier new,monospace;">