Nicolas Goaziou <m...@nicolasgoaziou.fr> writes:

> Hello,
>
> Thanks. Some comments follow.

Thanks for the review!

> Jonas Bernoulli <jo...@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.

The alternative also isn't great (see below).

I vaguely remember having run into this feature before when using Org to
record a pros and cons list.  As a maintainer I don't like this question
but; could this feature be made optional?  (Of course one could use tags
to indicate whether an item is a pro or cons, but for such a simple use-
case that seems more work than necessary and less immediately obvious.)

>>  *** 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.

This bothered me a bit too when writing it but at the same time
it seemed like overkill to replicate the docstrings of the called
functions.  How do you feel about using a hook instead?

(defvar org-texinfo--filter-parse-tree-functions
  '(org-texinfo--normalize-headlines
    org-texinfo--normalize-items)
  "List of functions the `texinfo' back-end applies to the parsed tree.
Each filter is called with three arguments: the parse tree, as
returned by `org-element-parse-buffer', the back-end, as
a symbol, and the communication channel, as a plist.  It must
return the modified parse tree to transcode.")

Do you prefer to add the hook functions as done above or should each one
be added individually using add-hook?

>> +  (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 "+".

Done.  Is this okay?:

              (when (and next-item
                         (string-prefix-p
                          "+"
                          (org-element-property :bullet next-item)))

Or should the line-breaks go elsewhere?

> Anyhow, relying on mixed bullets is not great…

The alternative isn't great either.

For example:

- Key: C-c C-w (forge-browse-TYPE) ::
+ Key: C-c C-w (forge-browse-dwim) ::
+ Key: N b I (forge-browse-issues) ::
+ Key: N b P (forge-browse-pullreqs) ::
+ Key: N b t (forge-browse-topic) ::
+ Key: N b i (forge-browse-issue) ::
+ Key: N b p (forge-browse-pullreq) ::

  These commands visit the topic, issue(s), pull-request(s), post,
  branch, commit, or remote at point in a browser. ...

vs.

- Key: C-c C-w (forge-browse-TYPE), C-c C-w (forge-browse-dwim), N b I 
(forge-browse-issues), N b P (forge-browse-pullreqs), N b t 
(forge-browse-topic), N b i (forge-browse-issue), N b p (forge-browse-pullreq) 
::

  These commands visit the topic, issue(s), pull-request(s), post,
  branch, commit, or remote at point in a browser. ...

I am sure I am gonna make mistakes when using the latter approach.

     Cheers,
     Jonas

Reply via email to