Debian / debiman

debiman generates a static manpage HTML repository out of a Debian archive
Apache License 2.0
185 stars 46 forks source link

HTML br tags are inserted before each line within EX/EE man macros #163

Open gokcehan opened 11 months ago

gokcehan commented 11 months ago

We have a man page for lf that we maintain using man macros. We wrap code snippets and monospace verbatim contents within .EX and .EE macros. It seems that debiman inserts <br/> tags before each line when rendering these contents.

For example, we have the following in the man page:

.PP
The following commands/keybindings are provided by default:
.PP
.EX
    Unix                     Windows
    cmd open &$OPENER "$f"   cmd open &%OPENER% %f%
    map e $$EDITOR "$f"      map e $%EDITOR% %f%
    map i $$PAGER "$f"       map i !%PAGER% %f%
    map w $$SHELL            map w $%SHELL%
.EE

Output of this section is as follows:

<p class="Pp">The following commands/keybindings are provided by default:</p>
<p class="Pp"></p>
<pre><br/>
    Unix                     Windows
<br/>
    cmd open &amp;$OPENER &#34;$f&#34;   cmd open &amp;%OPENER% %f%
<br/>
    map e $$EDITOR &#34;$f&#34;      map e $%EDITOR% %f%
<br/>
    map i $$PAGER &#34;$f&#34;       map i !%PAGER% %f%
<br/>
    map w $$SHELL            map w $%SHELL%
</pre>

The rendered output currently shows up as follows:

image

When I tried mandoc myself on my machine, no such extra <br/> tags are inserted:

<div class="Pp"></div>
The following commands/keybindings are provided by default:
<div class="Pp"></div>
<pre>
    Unix                          Windows
    cmd open &amp;$OPENER &quot;$f&quot;        cmd open &amp;%OPENER% %f%
    map e $$EDITOR &quot;$f&quot;           map e $%EDITOR% %f%
    map i $$PAGER &quot;$f&quot;            map i !%PAGER% %f%
    map w $$SHELL                 map w $%SHELL%
    cmd doc $$lf -doc | $PAGER    cmd doc !%lf% -doc | %PAGER%
    map &lt;f-1&gt; doc                 map &lt;f-1&gt; doc
</pre>

Is there are reason debiman inserts those extra <br/> tags? If this is working as intended, then is there a workaround to avoid these <br/> tags?

I have looked at other man page hosts and it seems that the arch man page for lf also have these extra <br/> tags. It seems that this behavior is previously reported and it is currently marked as a bug. Arch linux also seems to use mandoc so maybe it could be related.

stapelberg commented 11 months ago

Can you test if you can reproduce this problem directly using mandoc?

If so, please report this issue upstream with mandoc.

I don’t currently have time to look into this in any capacity. Sorry.

gokcehan commented 11 months ago

@stapelberg Extra <br/> tags are not inserted when I run mandoc myself. You can see the output with regular mandoc in my original post. That is executed with mandoc -Ofragment -Thtml lf.1 which I think has the same arguments used in debiman.

It's no problem if you don't have time to look at this. I might take a look at this myself if I find some time.