emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [O] [Feature Request] Cross headings in tables


From: Carsten Dominik
Subject: Re: [O] [Feature Request] Cross headings in tables
Date: Fri, 22 Feb 2013 13:31:28 +0100

On 17 feb. 2013, at 09:35, Nicolas Goaziou <address@hidden> wrote:

> Hello,
> 
> Achim Gratz <address@hidden> writes:
> 
>> I've just looked at how to implement this using org-element and the
>> new exporter. Much to my dismay I found that table headers are not
>> a separate row or row group type and the new exporter is still using
>> this "everything before the first separator is a heading" kludge.
> 
> I wouldn't call that a kludge. That's where most of the mere mortals
> expect the heading to be anyway. Also, it's somewhat back-end specific.
> 
>> It's easy enough to introduce a second type of separator in
>> org-element (BTW, I don't think that 'rule is a particularly good
>> symbol name for this) by adding another type of table rows, but then
>> these lines get ignored by the new exporter. While the logic used
>> there is amendable (not as easily), it would be more hackish than
>> I hoped.
> 
> You only need to modify org-element if Org syntax has been changed.
> 
>> Also, it appears that each element can have only one property or did
>> I miss something? It seems that having a way to get the (main)
>> property and then asking if there are sub-properties on that element
>> would allow simpler code in this particular instance and likely
>> elsewhere. Maybe I missed how to do it, though.
> 
> I don't understand that part. For example:
> 
> --8<---------------cut here---------------start------------->8---
>   * TODO Headline                                          :tag:
> --8<---------------cut here---------------end--------------->8---
> 
> In the following buffer, you can have:
> 
>  (org-element-property :priority (org-element-at-point))
>  (org-element-property :tag (org-element-at-point))
>  (org-element-property :todo-keyword (org-element-at-point))
>  (org-element-property :todo-type (org-element-at-point))
>  (org-element-property :level: (org-element-at-point))
>  ...
> 
> So there is more than one property. See:
> 
>  http://orgmode.org/worg/dev/org-export-reference.html
> 
> for a list of all properties associated to a given element or object
> type.
> 
>> The cleanest way to implement this would be if being a header would be a
>> property of the row group (maybe returnable as the sign of the row group
>> number).  There'd be two types of separators, "|-" and "|~".  If the
>> line past the end of a row group is "|~", then it is a header group,
>> otherwise it is a normal group.  This is incompatible with tradition,
>> but it would allow to use row groups in formulas without introducing
>> unwanted headers.
>> 
>> Thoughts?
> 
> I think the cleanest way to implement this would be to _not_ modify Org
> syntax, because it is export back-end very specific. Something like:
> 
>  #+attr_html: :header-groups (1 3)
>  | This      | will      |
>  | be        | a header  |
>  |-----------+-----------|
>  | This      | won't     |
>  |-----------+-----------|
>  | This will | be too    |
>  |-----------+-----------|
>  | This      | won't too |

I really like this approach, to mark the header groups in an attribute - maybe 
an backend-independent attribute?  The reason why I prefer this approach is 
that I am weary of new syntax in Org-mode that will take up new characters of 
character chains.  For the case of tables, if I could go back, I would even 
remove some of the syntax I introduced, for example for defining the values of 
constants - that should have been an attribute-link thing as well.  Probably 
even row and column naming, could have been done in this way.

- Carsten




reply via email to

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