DocBook XML文書からXHTMLへの変換をカスタマイズ(「警告」などの文字とアイコンについて)
「警告」「重要」といった「Admonition」ブロックの目印として、アイコンや文字(片方もしくは両方)を入れるかどうかを設定したり、アイコン画像を使用する場合の細かな設定をすることができる。
カスタマイズをする準備として、前回のXHTMLへの変換の記事にて想定したディレクトリ構成を準備する。
注意点として、XSLスタイルシートはXSLTプロセッサにより別形式に変換されるときに(のみ)読み込まれて処理されるため、XSLスタイルシート内の設定を変更しても、それを反映するには、変換処理を再び実行させる必要がある。これは、Admonitionの項目に限らず、変換の流れがそうなっているため、どのような項目であっても同様。
[xml]-+-[custom-xsl]-+-<xhtml-common.xsl> (XHTML変換共通設定) | +-<xhtml-single.xsl> (XHTML単独ファイル固有設定) | +-<xhtml-multi.xsl> (XHTML複数ファイル固有設定) | +-[doc]-[admontest]-<admontest.xml> (以下に載せたサンプル文書) | +-[css]-<docbook.css> (XHTML文書が参照するカスタムCSS) | +-<xsl-stylesheets> (Docbook XSLのディレクトリへのリンク)
以下、サンプル文書。
ファイル名: admontest.xml
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN" "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd"> <?xml-stylesheet href="../../wysiwygdocbook/custom.css" type="text/css"?> <article lang="ja"> <articleinfo> <title>サンプル</title> <abstract> <para>Admonitionのサンプル</para> </abstract> </articleinfo> <sect1 id="admontest"> <title>Admonitionのテスト</title> <para>普通の段落</para> <tip><para>ヒント(Tip)文</para></tip> <note><para>ノート(Note)文</para></note> <caution><para>注意書き</para></caution> <important><para>重要な注意文</para></important> <warning><para>警告文</para></warning> </sect1> </article>
カスタムXSLの設定例。
ファイル名: xhtml-common.xsl
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version='1.0'> ... <xsl:param name="admon.textlabel" select="1"/> <xsl:param name="admon.graphics" select="1"/> <xsl:param name="admon.graphics.path" select="'../../admon/'"/> <xsl:param name="admon.graphics.extension" select="'.gif'"/> <xsl:param name="admon.style"><xsl:text/></xsl:param> <!-- 下はデフォルト値 <xsl:param name="admon.style"> <xsl:text>margin-left: 0.5in; margin-right: 0.5in;</xsl:text> </xsl:param> --> ...
項目 | 値 |
---|---|
admon.graphics | アイコンを 0:表示しない(デフォルト) 1:表示する |
admon.textlabel | 「警告」などの文字ラベルを 0:表示しない 1:表示する(デフォルト) |
admon.graphics.path | アイコンを表示する場合に、その画像ファイルが含まれているディレクトリ([DocBook XSLのディレクトリ]/images/以下にあるので、DocBook文書のツリーにリンクを張るか、コピーをすると管理上便利) |
admon.graphics.extension | アイコンを表示する場合の画像ファイルの拡張子(デフォルトは.png) |
admon.style | Admonitionブロックに対するstyle属性を記述するのだが、ここは空にして、外部CSSでclass指定したほうがXHTMLのサイズも小さくできるのでおすすめ |
admon.styleの値を上記のように空にすると、style属性が出なくなるが、そこに書かれていたスタイル指定が無くなったことにより、横幅が変わってしまうため、カスタムCSS側でclassセレクタ(要素名の後ろに「.」とクラス名を書く)を用いて
ファイル名: docbook.css
div.tip, div.note, div.caution, div.important, div.warning { margin-left: 0.5in; margin-right: 0.5in; }
のように指定するとよい。
関連記事:
使用したバージョン: docbook-xsl-stylesheets 1.70.1