From: Chris Johnsen <chris_johnsen@pobox.com>
To: Junio C Hamano <gitster@pobox.com>
Cc: Jeff King <peff@peff.net>, Heiko Voigt <hvoigt@hvoigt.net>,
git@vger.kernel.org, Chris Johnsen <chris_johnsen@pobox.com>
Subject: [PATCH] Documentation: use "spurious .sp" XSLT if DOCBOOK_SUPPRESS_SP is set
Date: Wed, 1 Apr 2009 03:50:34 -0500 [thread overview]
Message-ID: <1238575834-17838-1-git-send-email-chris_johnsen@pobox.com> (raw)
In-Reply-To: <7vljql4586.fsf@gitster.siamese.dyndns.org>
With this change, the "spurious .sp" suppression XSLT code is
disabled by default. It can be enabled by defining
DOCBOOK_SUPPRESS_SP.
The "spurious .sp" XSLT fragment was used to work around a bug
first released in docbook-xsl 1.69.1. Modern versions of
docbook-xsl are negatively affected by the code (some empty lines
are omitted from manpage output; see
<http://article.gmane.org/gmane.comp.version-control.git/115302>).
The key revisions in the docbook SVN repo seem to be 5144 (before
docbook-xsl 1.69.1) and 6359 (before docbook-xsl 1.71.1).
Testing done with asciidoc 8.3.1 and docbook-xsl 1.74.0.
Signed-off-by: Chris Johnsen <chris_johnsen@pobox.com>
---
Here is a proof-of-concept. It is on top of next (it requires the
previous XSLT/asciidoc cleanup).
I went with a "feature knob" instead of a "version knob" since my
research in the docbook SVN repo indicates that multiple versions
are affected. Maybe the name could be better. Also I am not at
all sure that my research into past docbook-xsl releases is 100%
accurate. Anyone motivated enough to install old versions of
docbook-xsl and test with them?
The message that Peff cites
(<http://article.gmane.org/gmane.comp.version-control.git/32957>)
seems to indicate that the "spurious .sp" problem was injected
_between_ 1.69.0 and 1.69.1. So, I did some research in the
docbook SVN repo.
I grepped for ".sp" and "simpara" in
<http://docbook.svn.sourceforge.net/viewvc/docbook/trunk/xsl/manpages/block.xsl?view=log>
to find likely interesting spots (sure, not thorough, but I hoped
to get lucky). Then I slogged through the "tags" directory to
find out when in the revision stream docbook-xsl releases seemed
to have been cut.
Here are some of the "interesting" revision numbers:
5119 1.69.0
5144 .sp instead of blank line in mixed blocks
5152 1.69.1
5755 newline before .sp in verbatims (not simpara)
5985 1.70.0
6003 1.70.1
6166 suppress .sp inside {author,person}blurb
6279 1.71.0
6359 newline before .sp in simpara
6373 1.71.1
6552 1.72.0
...
7398 1.73.2
no tags for 1.74.*?
7782 move .sp to before, not after simpara text
7844 suppress .sp inside callout
? 1.74.0 {relnotes include descriptions of 7782 and 7844}
Before I got tired of digging through the SVN history, it seemed
to me that the problematic ".sp" was introduced at 5144 and
resolved at 6359. The code in Git's XSLT is very similar to that
of revision 6359, lines 81-91 (with a double newline instead of a
properly positioned ".sp" command).
So, it seems that the "spurious .sp" problem that Git's simpara
template "fixes" is not present in docbook-xsl 1.69.0, but is
present in 1.69.1, 1.70.0, 1.70.1, and 1.71.0. The "spurious .sp"
might not be present in 1.69.0 and earlier, but I would guess
that there are still line spacing issues there.
Should more of this background info be in the commit message?
Less?
---
Documentation/Makefile | 7 ++++++-
Documentation/manpage-base.xsl | 13 -------------
Documentation/manpage-suppress-sp.xsl | 21 +++++++++++++++++++++
3 files changed, 27 insertions(+), 14 deletions(-)
create mode 100644 Documentation/manpage-suppress-sp.xsl
diff --git a/Documentation/Makefile b/Documentation/Makefile
index dae3174..dba97dc 100644
--- a/Documentation/Makefile
+++ b/Documentation/Makefile
@@ -69,7 +69,9 @@ endif
#
# For docbook-xsl ...
# -1.68.1, set ASCIIDOC_NO_ROFF? (based on changelog from 1.73.0)
-# 1.69.0-1.71.1, no extra settings are needed?
+# 1.69.0, no extra settings are needed?
+# 1.69.1-1.71.0, set DOCBOOK_SUPPRESS_SP?
+# 1.71.1, no extra settings are needed?
# 1.72.0, set DOCBOOK_XSL_172.
# 1.73.0-, set ASCIIDOC_NO_ROFF
#
@@ -97,6 +99,9 @@ endif
ifdef MAN_BOLD_LITERAL
XMLTO_EXTRA += -m manpage-bold-literal.xsl
endif
+ifdef DOCBOOK_SUPPRESS_SP
+XMLTO_EXTRA += -m manpage-suppress-sp.xsl
+endif
#
# Please note that there is a minor bug in asciidoc.
diff --git a/Documentation/manpage-base.xsl b/Documentation/manpage-base.xsl
index 16e2e40..a264fa6 100644
--- a/Documentation/manpage-base.xsl
+++ b/Documentation/manpage-base.xsl
@@ -32,17 +32,4 @@
<xsl:text>br </xsl:text>
</xsl:template>
-<!-- attempt to work around spurious .sp at the tail of the line
- that docbook stylesheets seem to add -->
-<xsl:template match="simpara">
- <xsl:variable name="content">
- <xsl:apply-templates/>
- </xsl:variable>
- <xsl:value-of select="normalize-space($content)"/>
- <xsl:if test="not(ancestor::authorblurb) and
- not(ancestor::personblurb)">
- <xsl:text> </xsl:text>
- </xsl:if>
-</xsl:template>
-
</xsl:stylesheet>
diff --git a/Documentation/manpage-suppress-sp.xsl b/Documentation/manpage-suppress-sp.xsl
new file mode 100644
index 0000000..a63c763
--- /dev/null
+++ b/Documentation/manpage-suppress-sp.xsl
@@ -0,0 +1,21 @@
+<!-- manpage-suppress-sp.xsl:
+ special settings for manpages rendered from asciidoc+docbook
+ handles erroneous, inline .sp in manpage output of some
+ versions of docbook-xsl -->
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ version="1.0">
+
+<!-- attempt to work around spurious .sp at the tail of the line
+ that some versions of docbook stylesheets seem to add -->
+<xsl:template match="simpara">
+ <xsl:variable name="content">
+ <xsl:apply-templates/>
+ </xsl:variable>
+ <xsl:value-of select="normalize-space($content)"/>
+ <xsl:if test="not(ancestor::authorblurb) and
+ not(ancestor::personblurb)">
+ <xsl:text> </xsl:text>
+ </xsl:if>
+</xsl:template>
+
+</xsl:stylesheet>
--
1.6.2.1.556.g581a3
next prev parent reply other threads:[~2009-04-01 8:52 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-03-23 19:53 [PATCH] Add warning about known issues to documentation of cvsimport Heiko Voigt
2009-03-23 20:33 ` Ferry Huberts (Pelagic)
2009-03-30 22:17 ` Heiko Voigt
2009-03-31 5:36 ` Ferry Huberts (Pelagic)
2009-03-31 16:22 ` Heiko Voigt
2009-03-31 16:53 ` [PATCH] cvsimport: Add a note about crlf options to the documentation Heiko Voigt
2009-03-31 17:10 ` [PATCH] Add warning about known issues to documentation of cvsimport Ferry Huberts (Pelagic)
2009-03-24 3:14 ` Jeff King
2009-03-30 22:36 ` Heiko Voigt
2009-03-31 0:51 ` Junio C Hamano
2009-03-31 16:45 ` [PATCH] Cleanup warning about known issues in cvsimport documentation Heiko Voigt
2009-03-31 19:49 ` Jeff King
2009-04-01 20:24 ` [PATCH v2] " Heiko Voigt
2009-03-31 11:28 ` [PATCH] Add warning about known issues to documentation of cvsimport Jeff King
2009-03-31 19:40 ` Jeff King
2009-03-31 23:55 ` Junio C Hamano
2009-04-01 8:50 ` Chris Johnsen [this message]
2009-04-01 10:14 ` [PATCH] Documentation: use "spurious .sp" XSLT if DOCBOOK_SUPPRESS_SP is set Jeff King
2009-04-02 5:25 ` Junio C Hamano
2009-04-01 10:34 ` Jeff King
2009-04-01 12:19 ` Chris Johnsen
2009-04-01 13:06 ` Jeff King
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1238575834-17838-1-git-send-email-chris_johnsen@pobox.com \
--to=chris_johnsen@pobox.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=hvoigt@hvoigt.net \
--cc=peff@peff.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).