summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2015-11-22 23:43:36 -0500
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2015-11-22 23:54:29 -0500
commit958caa58c089037ffb8cd71bc342bb9d798a6dd3 (patch)
treee25b837b43356c189d4c4a29b75e81e2d607f0bc
parentb591613f2e17476ed8da29f4089c410b010c0192 (diff)
man: include the target name when linking to man pages in html output
Links like http://www.freedesktop.org/software/systemd/man/systemd.socket.html are changed to http://www.freedesktop.org/software/systemd/man/systemd.socket.html#Accept=. This implementation is quick & dirty, and misses various corner cases. A fairly important one is that when a few directives share the same anchor (which happens when multiple directives are described in the same paragraph), generated links for everything except the first one link to an invalid anchor. Another shortcoming is that the formatting does not use the proper generateID machinery, so the anchor name could be wrong in some cases. But it seems to work for a large percentage of links, so seems to be an improvement in usability. When the anchor is missing, we land at the top of the page, which is the same as before. If the anchor were to point to different spot, this would be more confusing... Not sure if that ever happens. Anyway, the user should be able to recover from landing on the wrong place in the page. (Mostly) fixes https://github.com/systemd/systemd/issues/1956.
-rw-r--r--man/custom-html.xsl3
-rwxr-xr-xtools/make-directive-index.py1
2 files changed, 3 insertions, 1 deletions
diff --git a/man/custom-html.xsl b/man/custom-html.xsl
index 84c23014e4..e89d73e7f1 100644
--- a/man/custom-html.xsl
+++ b/man/custom-html.xsl
@@ -37,7 +37,8 @@
<xsl:template match="citerefentry[not(@project)]">
<a>
<xsl:attribute name="href">
- <xsl:value-of select="refentrytitle"/><xsl:text>.html</xsl:text>
+ <xsl:value-of select="refentrytitle"/><xsl:text>.html#</xsl:text>
+ <xsl:value-of select="refentrytitle/@target"/>
</xsl:attribute>
<xsl:call-template name="inline.charseq"/>
</a>
diff --git a/tools/make-directive-index.py b/tools/make-directive-index.py
index 17b1325bba..8091683fee 100755
--- a/tools/make-directive-index.py
+++ b/tools/make-directive-index.py
@@ -268,6 +268,7 @@ def _make_section(template, name, directives, formatting):
b = tree.SubElement(para, 'citerefentry')
c = tree.SubElement(b, 'refentrytitle')
c.text = manpage
+ c.attrib['target'] = varname
d = tree.SubElement(b, 'manvolnum')
d.text = manvolume
entry.tail = '\n\n'