私は DocBook でいくつかの man ページを書いています。また、それらを HTML に変換して Web 上に表示したいと考えています。ある man ページから別の man ページへのリンクを挿入するにはどうすればよいですか? Web 上では同じディレクトリ内の別の HTML ファイルに変換されている別の man ページへのハイパーリンクとして表示されますかman
?target(1)
1 に答える
2
私はこれを理解したと思います。ドキュメントでは a を使用する必要が<citerefentry/>
あります。これは、man ページで期待どおりに表示されます。ターゲット URL を生成する方法 (カスタマイズ レイヤーで行う) を提供しない限り、HTML ドキュメントではハイパーリンクされません。
以下は、man ページの「関連項目」セクションのドキュメント スニペットの例です。
<refsect1 id="seealso">
<title>See Also</title>
<simplelist type="inline">
<member><citerefentry><refentrytitle>grep</refentrytitle><manvolnum>1</manvolnum></citerefentry></member>
<member><citerefentry><refentrytitle>awk</refentrytitle><manvolnum>1P</manvolnum></citerefentry></member>
</simplelist>
</refsect1>
このカスタマイズ テンプレートと組み合わせる (名前を付けて保存custom.xsl
)
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<!-- Ignore spaces between elements (without this, the URL is "grep .html" -->
<xsl:strip-space elements="*"/>
<!-- Turn citerefentry elements into HTML links -->
<xsl:param name="citerefentry.link" select="1"/>
<!-- Code to generate the URL for a given citerefentry element -->
<xsl:template name="generate.citerefentry.link">
<xsl:value-of select="refentrytitle"/>
<xsl:text>.html</xsl:text>
</xsl:template>
</xsl:stylesheet>
プログラムを使用しxmlto
て DocBook XML を処理し、HTML のカスタマイズ レイヤーを指定します。
$ xmlto man input.xml
$ xmlto html-nochunks -m custom.xsl input.xml
マンページでは、これにより次が生成されます。
SEE ALSO
grep(1), awk(1P)
そして、HTML では次のように生成されます: (<span>
わかりやすくするために、すべての要素が削除されています)
<h2>See Also</h2>
<a href="grep.html">grep(1)</a>, <a href="awk.html">awk(1)</a>
生成される実際の URL は、 でgenerate.citerefentry.link
テンプレートの内容を編集することで調整できますcustom.xsl
。上記の例では<refentrytitle>
、DocBook XML の の値を使用し、それに「.html」を追加しています。
于 2012-08-11T13:13:21.283 に答える