git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH 2/5] doc: fix synopsis analysis logic

From
Jean-Noël Avila <jn.avila@free.fr>
Date
Apr 12, 2025, 08:58 UTC
Message-ID
<0846bdd8-f2a6-43d9-83d1-73d9a5b04005@free.fr>
In-Reply-To
<CAN0heSrfQMZ8=pFNuaqn_0bpLxhMtGiO8Vg2hXTo6aqq3rF4yQ@mail.gmail.com>
Le 05/04/2025 à 00:39, Martin Ågren a écrit :
Show 39 quoted lines
> On Sun, 30 Mar 2025 at 19:16, Jean-Noël Avila via GitGitGadget
> <gitgitgadget@gmail.com> wrote:
>>
>> The synopsis analysis logic was not able to handle backslashes and stars
>> which are used in the synopsis of the git-rm command. This patch fixes the
>> issue by updating the regular expression used to match the keywords.
> 
>> --- a/Documentation/asciidoctor-extensions.rb.in
>> +++ b/Documentation/asciidoctor-extensions.rb.in
>> @@ -50,7 +50,7 @@ module Git
>>        def process parent, reader, attrs
>>          outlines = reader.lines.map do |l|
>>            l.gsub(/(\.\.\.?)([^\]$.])/, '`\1`\2')
>> -           .gsub(%r{([\[\] |()>]|^)([-a-zA-Z0-9:+=~@,/_^\$]+)}, '\1{empty}`\2`{empty}')
>> +           .gsub(%r{([\[\] |()>]|^)([-a-zA-Z0-9:+=~@,/_^\$\\\*]+)}, '\1{empty}`\2`{empty}')
>>             .gsub(/(<[-a-zA-Z0-9.]+>)/, '__\\1__')
>>             .gsub(']', ']{empty}')
>>          end
>> @@ -72,7 +72,7 @@ module Git
>>            %(<inlineequation><alt><![CDATA[#{equation = node.text}]]></alt><mathphrase><![CDATA[#{equation}]]></mathphrase></inlineequation>)
>>          elsif type == :monospaced
>>            node.text.gsub(/(\.\.\.?)([^\]$.])/, '<literal>\1</literal>\2')
>> -              .gsub(%r{([\[\s|()>.]|^|\]|&gt;)(\.?([-a-zA-Z0-9:+=~@,/_^\$]+\.{0,2})+)}, '\1<literal>\2</literal>')
>> +              .gsub(%r{([\[\s|()>.]|^|\]|&gt;)(\.?([-a-zA-Z0-9:+=~@,/_^\$\\\*]+\.{0,2})+)}, '\1<literal>\2</literal>')
>>                .gsub(/(&lt;[-a-zA-Z0-9.]+&gt;)/, '<emphasis>\1</emphasis>')
>>          else
>>            open, close, supports_phrase = QUOTE_TAGS[type]
>> @@ -100,7 +100,7 @@ module Git
>>        def convert_inline_quoted node
>>          if node.type == :monospaced
>>            node.text.gsub(/(\.\.\.?)([^\]$.])/, '<code>\1</code>\2')
>> -              .gsub(%r{([\[\s|()>.]|^|\]|&gt;)(\.?([-a-zA-Z0-9:+=~@,/_^\$]+\.{0,2})+)}, '\1<code>\2</code>')
>> +              .gsub(%r{([\[\s|()>.]|^|\]|&gt;)(\.?([-a-zA-Z0-9:+=~@,/_^\$\\\*]+\.{0,2})+)}, '\1<code>\2</code>')
>>                .gsub(/(&lt;[-a-zA-Z0-9.]+&gt;)/, '<em>\1</em>')
> 
> This seems to introduce some extra spacing in the rendered man pages, e.g.,
> "The bundle.*  keys" or "Fileglobs (e.g.  *.c)". (Asciidoctor 2.0.18.) I
> haven't dug into the regexes so see what might be the cause.
> 
The xml regex seems ok for this. The docbook output is as follows:

(...) pairs in this list are in the <literal>bundle.*</literal> namespace (see (...)

The manpage output seems also correct:

(...) would accept (with the \fB\-\-file\fR option)\&. The key\-value pairs in this list are in the \fBbundle\&.*\fR namespace (see (...)

Strangely, the --file above is rendered correctly, but the bundle.* below not. I do not know TROFF to assess what is going on. Has '*' a special behavior in a bold span?

JN
Previous: Martin ÅgrenNext: Jean-Noël Avila via GitGitGadget
Message 6 of 19 in “doc: convert git-reset, git-rm and git-mv to new documentation format”
  1. 0/5 doc: convert git-reset, git-rm and git-mv to new documentation formatJean-Noël Avila via GitGitGadget, Mar 30, 2025
  2. 1/5 doc: convert git-reset to new documentation formatJean-Noël Avila via GitGitGadget, Mar 30, 2025
  3. Martin ÅgrenApr 4, 2025
  4. 2/5 doc: fix synopsis analysis logicJean-Noël Avila via GitGitGadget, Mar 30, 2025
  5. Martin ÅgrenApr 4, 2025
  6. Jean-Noël AvilaApr 12, 2025
  7. 3/5 doc: convert git-rm to new documentation formatJean-Noël Avila via GitGitGadget, Mar 30, 2025
  8. 4/5 doc: move synopsis git-mv commands in the synopsis sectionJean-Noël Avila via GitGitGadget, Mar 30, 2025
  9. Martin ÅgrenApr 5, 2025
  10. 5/5 doc: convert git-mv to new documentation formatJean-Noël Avila via GitGitGadget, Mar 30, 2025
  11. 0/7 doc: convert git-reset, git-rm and git-mv to new documentation formatJean-Noël Avila via GitGitGadget, Apr 12, 2025
  12. 1/7 doc: convert git-reset to new documentation formatJean-Noël Avila via GitGitGadget, Apr 12, 2025
  13. 2/7 doc: fix synopsis analysis logicJean-Noël Avila via GitGitGadget, Apr 12, 2025
  14. 3/7 doc: convert git-rm to new documentation formatJean-Noël Avila via GitGitGadget, Apr 12, 2025
  15. 4/7 doc: move synopsis git-mv commands in the synopsis sectionJean-Noël Avila via GitGitGadget, Apr 12, 2025
  16. 5/7 doc: convert git-mv to new documentation formatJean-Noël Avila via GitGitGadget, Apr 12, 2025
  17. 6/7 doc: fix asciidoctor synopsis processing of triple-dotsJean-Noël Avila via GitGitGadget, Apr 12, 2025
  18. 7/7 doc: add markup for characters in GuidelinesJean-Noël Avila via GitGitGadget, Apr 12, 2025
  19. Junio C HamanoApr 14, 2025

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.