Nicolas Goaziou <m...@nicolasgoaziou.fr> writes: >> #+begin_example >> -,#+ATTR_TEXINFO: :table-type vtable :sep , :indic asis >> +,#+attr_texinfo: :table-type vtable :indic asis :sep , >> - foo, bar :: This is the common text for variables foo and bar. >> #+end_example > > This change is not needed. Org markup is capitalized in examples to make > it stand out. It's not great because 1) it is ugly 2) users may think > Org syntax is uppercase. But changing that is not the point of this patch.
Sorry about that; I also don't like it when contributors sneak in cosmetic changes. >> (defun org-texinfo--normalize-headlines (tree _backend info) >> "Normalize headlines in TREE. >> >> -BACK-END is the symbol specifying back-end used for export. >> +_BACKEND is the symbol `texinfo'; the back-end used for export. > > You don't need to document ignored arguments. The argument was already documented before I touched this, and additionally the given name was incorrect. Should I leave this untouched to avoid making unrelated cosmetic changes or should I remove this line? >> +(defun org-texinfo--combine-items (tree _backend info) >> + "Combine certain description list items. >> + >> +_BACKEND is the symbol `texinfo'; the back-end used for export. >> +INFO is a plist used as a communication channel. > > Same as above. This one is an addition so I am dropping it. (The reason I originally added it in the above addition is that I saw it being present here.) >> +If the `:combine' attribute of a description list is non-nil and >> +an item in that list has no body and is followed by another item, >> +then remove the first item and prepend its `:tag' to that of the >> +second item. >> + >> +Such an item that absorbed the tags of other items is later >> +transcoded to one `@item', followed by one or more `@itemx'. >> + >> +Return new tree." >> + (org-element-map tree 'item >> + (lambda (item) >> + (let ((plain-list (org-element-property :parent item))) >> + (when (and (org-not-nil (org-export-read-attribute >> + :attr_texinfo plain-list :compact)) >> + (eq (org-element-property :type plain-list) 'descriptive)) >> + (let ((next-item >> + (cadr (memq item (org-element-contents plain-list))))) > > I suggest to use `org-export-get-next-element', which is not as > low-level as this. Okay changed. In the next commit, in org-texinfo--massage-key-item, I am also using the low-level approach. That function isn't passed INFO, so I am unsure what to do there. Looking at org-export-get-next-element it seems fine to just pass it nil as INFO. >> - (items (and tag >> - (let ((tag (org-export-data tag info))) >> + (items (org-element-property :itemx item)) >> + (items (cond (items >> + (mapcar (lambda (tag) (org-export-data tag info)) >> + (nconc items (list tag)))) >> + ((not tag) nil) >> + (t >> + (setq tag (org-export-data tag info)) > > OK, but I think this is a bit convoluted. I wonder if we need > `org-texinfo--combine-items' at all. I.e., `org-texinfo-item' could > decide to prefix current tag with @itemx if 1) the item is empty 2) the > list has a non-nil :compact attribute 3) there's another item following > it. IOW, we do not need to rely on an :itemx property. I think so, but its bed time. I'll look into it tomorrow. Thanks for the review, Jonas