On 17 feb. 2013, at 09:35, Nicolas Goaziou <n.goaz...@gmail.com> wrote:
> Hello, > > Achim Gratz <strom...@nexgo.de> 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