Hi Nathan, Nathan Trapuzzano <nbt...@nbtrap.com> writes:
> Of course the particular implementation will have to be seen before it > can be accepted, but I'd like to get the spec accepted (provisionally) > before setting to work on it. As a start, you can look at the way org-e-*.el backend export tables, (use `org-e-ascii-table-cell' as an entry point). What we need is a callback function to convert entities in cells, in org-export.el. Since we already have org-entities, I would use it together with `org-entity-get-representation' to convert entities from the \vert{} representation to the "|" character (in the ASCII backend.) > Here's what I propose: > > 1. Do away with \vert{} entirely, leaving just \vert as an escape > sequence standing for |, no matter where it appears. \vert{} > unnecesarily complicates things, in my opinion. Better to rely on org-entities and the way entities are treated so far. > 2. The escape sequence must itself be escapable, wherefore I propose > to give the backslash special meaning in front of the string > "vert". Specifically: > > a. An even number of consecutive backslashes followed by "vert" > stands for that number of backslashes divided by two followed by > "vert". > > b. An odd number of consecutive backslashes followed by "vert" > stands for that many backslashes integer-divided by two, followed by > "|". > > For example, "\vert" exports to "|", "\\vert" to "\vert", "\\\vert" to > "\|", "\\\\vert" to "\\vert", and so on. Obviously, upon importing, > the reverse of the above will be carried out. I would not take that route -- from experience, escaping espace sequences can drive you mad, and all this is not intuitive for users. I would simply convert entities by default and use a special table cookie in lines where you do not want the conversion to happen. For example: | Header 1 | Header 2 | |----------+----------| | \vert{} | ABC | => convert to "|" But: | | Header 1 | Header 2 | |---+----------+----------| | \ | \vert{} | ABC | Don't convert. The "\" char is free and a good choice here. -- Bastien