[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