[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [O] Bug: Table export to [tc]sv doesn't convert \vert [7.8.11]
From: |
Bastien |
Subject: |
Re: [O] Bug: Table export to [tc]sv doesn't convert \vert [7.8.11] |
Date: |
Mon, 31 Dec 2012 10:30:49 +0100 |
User-agent: |
Gnus/5.130006 (Ma Gnus v0.6) Emacs/24.3.50 (gnu/linux) |
Hi Nathan,
Nathan Trapuzzano <address@hidden> 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