[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH 1/2] ox-texinfo: Turn a description list item with "+" bullet
From: |
Nicolas Goaziou |
Subject: |
Re: [PATCH 1/2] ox-texinfo: Turn a description list item with "+" bullet into @itemx |
Date: |
Sun, 26 Dec 2021 22:37:50 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/27.2 (gnu/linux) |
Hello,
Thanks. Some comments follow.
Jonas Bernoulli <jonas@bernoul.li> writes:
> +In description lists the used bullet is significant when exporting to
> +Texinfo; when in doubt, then use =-=. An item that uses =+= instead
> +becomes a new entry in the first column of the table. The above
> +output can also be produced with:
>
> #+begin_example
> -#+ATTR_TEXINFO: :enum A
> -1. Alpha
> -2. Bravo
> -3. Charlie
> +,#+attr_texinfo: :table-type vtable :indic asis
> +- foo ::
> ++ bar ::
> + This is the common text for foo and bar.
> #+end_example
The above is fragile, because pressing <C-c C-c> on an item will
"repair" the bullets. Therefore, you cannot support mixed bullets in the
same list.
> *** Tables in Texinfo export
> diff --git a/lisp/ox-texinfo.el b/lisp/ox-texinfo.el
> index b0125894a..35862357d 100644
> --- a/lisp/ox-texinfo.el
> +++ b/lisp/ox-texinfo.el
> @@ -418,6 +418,11 @@ (defun org-texinfo--filter-section-blank-lines (headline
> _backend _info)
> "Filter controlling number of blank lines after a section."
> (replace-regexp-in-string "\n\\(?:\n[ \t]*\\)*\\'" "\n\n" headline))
>
> +(defun org-texinfo--filter-parse-tree (tree backend info)
> + "Normalize headlines and items."
> + (org-texinfo--normalize-headlines tree backend info)
> + (org-texinfo--normalize-items tree info))
Could you expound the docstring? Arguments are missing, and "normalize"
is vague.
> + (org-element-map tree 'plain-list
> + (lambda (plain-list)
> + (when (eq (org-element-property :type plain-list) 'descriptive)
> + (let ((contents (org-element-contents plain-list)))
> + (while (setq item (pop contents))
> + (let ((next-item (car contents)))
> + (when (and next-item
> + (equal (org-element-property :bullet next-item) "+
> "))
The above will fail if `org-list-two-spaces-after-bullet-regexp' is
non-nil. You should compare the trimmed bullet with "+".
Anyhow, relying on mixed bullets is not great…
Regards,
--
Nicolas Goaziou