emacs-orgmode
[Top][All Lists]
Advanced

[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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]