chiark / gitweb /
man: provide "permalinks" to sections and terms
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Sat, 4 May 2013 00:25:57 +0000 (20:25 -0400)
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Sat, 4 May 2013 00:25:57 +0000 (20:25 -0400)
So no one needs to say "go to fd.o/software/systemd/man, open page X,
then scroll down to section 3, and look for ..." anymore.

man/custom-html.xsl

index c4099b2..2e40ab1 100644 (file)
   </a>
 </xsl:template>
 
+<xsl:template match="refsect1/title|refsect1/info/title">
+  <!-- the ID is output in the block.object call for refsect1 -->
+  <h2>
+    <xsl:attribute name="id">
+      <xsl:call-template name="inline.charseq"/>
+    </xsl:attribute>
+    <xsl:apply-templates/>
+    <a>
+      <xsl:attribute name="class">
+        <xsl:text>headerlink</xsl:text>
+      </xsl:attribute>
+      <xsl:attribute name="title">
+        <xsl:text>Permalink to this headline</xsl:text>
+      </xsl:attribute>
+      <xsl:attribute name="href">
+        <!--        <xsl:call-template name="href.target.uri" /> -->
+        <xsl:text>#</xsl:text>
+        <xsl:call-template name="inline.charseq"/>
+      </xsl:attribute>
+      <xsl:text>¶</xsl:text>
+    </a>
+  </h2>
+</xsl:template>
+
+<xsl:template match="varlistentry">
+  <dt>
+    <xsl:attribute name="id">
+      <xsl:call-template name="inline.charseq">
+        <xsl:with-param name="content">
+          <xsl:copy-of select="term[position()=1]" />
+        </xsl:with-param>
+      </xsl:call-template>
+    </xsl:attribute>
+    <xsl:apply-templates select="term"/>
+    <a>
+      <xsl:attribute name="class">
+        <xsl:text>headerlink</xsl:text>
+      </xsl:attribute>
+      <xsl:attribute name="title">
+        <xsl:text>Permalink to this term</xsl:text>
+      </xsl:attribute>
+      <xsl:attribute name="href">
+        <!--        <xsl:call-template name="href.target.uri" /> -->
+        <xsl:text>#</xsl:text>
+        <xsl:call-template name="inline.charseq">
+          <xsl:with-param name="content">
+            <xsl:copy-of select="term[position()=1]" />
+          </xsl:with-param>
+        </xsl:call-template>
+      </xsl:attribute>
+      <xsl:text>¶</xsl:text>
+    </a>
+  </dt>
+  <dd>
+    <xsl:apply-templates select="listitem"/>
+  </dd>
+</xsl:template>
+
+
 <!-- add Index link at top of page -->
 <xsl:template name="user.header.content">
+  <style>
+    a.headerlink {
+      color: #c60f0f;
+      font-size: 0.8em;
+      padding: 0 4px 0 4px;
+      text-decoration: none;
+      visibility: hidden;
+    }
+
+    a.headerlink:hover {
+      background-color: #c60f0f;
+      color: white;
+    }
+
+    h1:hover > a.headerlink, h2:hover > a.headerlink, h3:hover > a.headerlink, dt:hover > a.headerlink {
+      visibility: visible;
+    }
+  </style>
+
   <a>
     <xsl:attribute name="href">
       <xsl:text>index.html</xsl:text>