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|()>.]|^|\]|>)(\.?([-a-zA-Z0-9:+=~@,/_^\$]+\.{0,2})+)}, '\1<literal>\2</literal>')
>> + .gsub(%r{([\[\s|()>.]|^|\]|>)(\.?([-a-zA-Z0-9:+=~@,/_^\$\\\*]+\.{0,2})+)}, '\1<literal>\2</literal>')
>> .gsub(/(<[-a-zA-Z0-9.]+>)/, '<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|()>.]|^|\]|>)(\.?([-a-zA-Z0-9:+=~@,/_^\$]+\.{0,2})+)}, '\1<code>\2</code>')
>> + .gsub(%r{([\[\s|()>.]|^|\]|>)(\.?([-a-zA-Z0-9:+=~@,/_^\$\\\*]+\.{0,2})+)}, '\1<code>\2</code>')
>> .gsub(/(<[-a-zA-Z0-9.]+>)/, '<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