2

私は DocBook でいくつかの man ページを書いています。また、それらを HTML に変換して Web 上に表示したいと考えています。ある man ページから別の man ページへのリンクを挿入するにはどうすればよいですか? Web 上では同じディレクトリ内の別の HTML ファイルに変換されている別の man ページへのハイパーリンクとして表示されますかman?target(1)

4

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 に答える