[PATCH] manpage-bold-literal.xsl: provide namespaced template for "d:literal"

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



We recently regressed our rendering of "literal" elements in our
manpages, i.e, stuff we have placed within `backticks` in order to
render as monospace. In particular, we lost the bold rendering of such
literal text.

The culprit is f6461b82b9 ("Documentation: fix build with Asciidoctor 2",
2019-09-15), where we switched from DocBook 4.5 to DocBook 5 with
Asciidoctor. As part of the switch, we started using the namespaced
DocBook XSLT stylesheets rather than the non-namespaced ones. (See
f6461b82b9 for more details on why we changed to the namespaced ones.)

The bold literals are implemented as an XSLT snippet <xsl:template
match="literal">...</xsl:template>. Now that we use namespaces, this
doesn't pick up our literals like it used to.

Add an exact copy of the template where we match for "d:literal" instead
of just "literal", after defining the d namespace. ("d" is what
http://docbook.sourceforge.net/release/xsl-ns/current/manpages/docbook.xsl
uses.) Note that we need to keep the non-namespaced version for
AsciiDoc.

This boldness was introduced by 5121a6d993 ("Documentation: option to
render literal text as bold for manpages", 2009-03-27) and made the
default in 5945717009 ("Documentation: bold literals in man",
2016-05-31).

One reason this was not caught in review is that our doc-diff tool diffs
without any boldness, i.e., it "only" compares text.

This has been optically tested with AsciiDoc 8.6.10, Asciidoctor 1.5.5
and Asciidoctor 2.0.10. I've also verified that doc-diff produces the
empty output in all three cases, as expected.

Signed-off-by: Martin Ågren <martin.agren@xxxxxxxxx>
---
 I've kept thinking lately that "wow, are we behind on marking up stuff
 to be monospaced/boldened"...

 I'm pretty sure about the background here, but I'm not at all sure 
 that this is the prettiest or correctest fix.
 
 Not sure if this problem is bad enough (and the fix good enough) for
 this to go into 2.24, but I offer this anyway.

 There are more manpage-*.xsl -- manpage-suppress-sp.xsl looks like it
 would have the exact same problem. But before diving in too deep, I'd
 rather submit this one to see if it's in the right direction at all.

 Martin

 Documentation/manpage-bold-literal.xsl | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/Documentation/manpage-bold-literal.xsl b/Documentation/manpage-bold-literal.xsl
index 608eb5df62..172388d6cf 100644
--- a/Documentation/manpage-bold-literal.xsl
+++ b/Documentation/manpage-bold-literal.xsl
@@ -1,11 +1,20 @@
 <!-- manpage-bold-literal.xsl:
      special formatting for manpages rendered from asciidoc+docbook -->
 <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
+		xmlns:d="http://docbook.org/ns/docbook";
 		version="1.0">
 
 <!-- render literal text as bold (instead of plain or monospace);
      this makes literal text easier to distinguish in manpages
      viewed on a tty -->
+<xsl:template match="d:literal">
+	<xsl:value-of select="$git.docbook.backslash"/>
+	<xsl:text>fB</xsl:text>
+	<xsl:apply-templates/>
+	<xsl:value-of select="$git.docbook.backslash"/>
+	<xsl:text>fR</xsl:text>
+</xsl:template>
+
 <xsl:template match="literal">
 	<xsl:value-of select="$git.docbook.backslash"/>
 	<xsl:text>fB</xsl:text>
-- 
2.24.0.rc2




[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux