It's a clever format, especially if the focus is on machines generating it and humans or machines reading it. It might even work for humans occasionally making minor edits without having to load the file in the spreadsheet.<p>I think it can encode anything except for something matching the regex `(\t+\|)+` at the end of cells (*Update:* Maybe `\n?(\t+\|)+`, but that doesn't change my point much) including newlines and even newlines followed by `\` (with the newline extension, of course).<p>For a cell containing `cell<newline>\`, you'd have:<p><pre><code> |cell<tab>|
\\<tab >|
</code></pre>
(where `<tab >` represents a single tab character regardless of the number of spaces)<p>Moreover, if you really needed it, you could add another extension to specify tabs or pipes at the end of cells. For a POC, two cells with contents `a<tab>|` and `b<tab>|` could be represented as:<p><pre><code> |a<tab ><tab>|b
~tab pipe<tab>|tab pipe
</code></pre>
(with literal words "tab" and "pipe"). Something nicer might also be possible.<p>*Update:* Though, if the focus is on humans reading it, it might also make sense to allow a single row of the table to wrap and span multiple lines in the file, perhaps as another extension.