From 958caa58c089037ffb8cd71bc342bb9d798a6dd3 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= Date: Sun, 22 Nov 2015 23:43:36 -0500 Subject: [PATCH] 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. --- man/custom-html.xsl | 3 ++- tools/make-directive-index.py | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/man/custom-html.xsl b/man/custom-html.xsl index 84c2301..e89d73e 100644 --- a/man/custom-html.xsl +++ b/man/custom-html.xsl @@ -37,7 +37,8 @@ - .html + .html# + diff --git a/tools/make-directive-index.py b/tools/make-directive-index.py index 17b1325..8091683 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' -- 2.7.4