1

Eclipse 内で実行されている Maven を使用して DocBook 出力を生成する実験を行っています。docbkx という Maven プラグインを見つけました。

DocBook の世界では、XSL 変換のデフォルトの動作の一部を変更する方法は、独自の XSL ファイルを「カスタマイズ レイヤー」として定義することです。このファイルは標準の XSL ファイルをインポートし、変更したいテンプレートなどをこのファイルに入れます。これにより、それらは標準テンプレートの後に解析され、変更されたバージョンが使用されます。

docbkx プラグインを使用してこれを実現するには、次のような行で、構成でカスタム XSL ファイルを使用していることを伝える必要があります。

<foCustomization>src/docbkx/xsl/custom_print.xsl</foCustomization>

次に、カスタム XSL ファイルでは、上部のインポート ステートメントで標準 XSL ファイルの場所を指定する必要はなく、プラグインが解決するシンボリック パスを入力します。

<xsl:import href="urn:docbkx:stylesheet"/>

これはすべて非常にうまく機能します。しかし、インポートしたい他のものを探すようにプラグインに指示する方法を理解しようとして、頭を壁にぶつけてきました。2 つの例:

  • 私のカスタマイズ レイヤーは、通常のスタイルシートだけでなく、通常のプロセスで生成したカスタム タイトルページ XSL ファイルもインポートします。


  • HTML出力の head 要素に追加コードのチャンクを書き込むためのテンプレートがあります。
    具体的には、 Google アナリティクスに接続するためのコードです。コードは外部ファイルにあります。

どちらの場合も、インポートされるファイルはカスタマイズ レイヤーと同じディレクトリにありますが、プラグインがそれらを見つけられないことがわかります。プラグインが機能するときにこれらを含める方法がわかりません。

何か案は?

ありがとう!

アラン

4

1 に答える 1

0

次のようなものがある場合:

src
|
+--docbkx
   |
   +--xsl
      |
      +--custom_print.xsl
      +--custom_titlepages.xsl

そして次のようなポンポン:

...
<plugin>
    <groupId>com.agilejava.docbkx</groupId>
    <artifactId>docbkx-maven-plugin</artifactId>
    ...
    <foCustomization>src/docbkx/xsl/custom_print.xsl</foCustomization>
    ...

custom_print.xslあなたに含めるcustom_titlepages.xsl

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:fo="http://www.w3.org/1999/XSL/Format"
    version="1.0">

    <xsl:import href="urn:docbkx:stylesheet"/>
    <xsl:include href="custom_titlepages.xsl"/>

これらの文書を啓発するかもしれません:

于 2014-05-20T10:40:14.477 に答える