让Maven docbkx插件工作的问题

时间:2013-08-15 18:03:24

标签: maven xslt customization maven-plugin docbook

我一直在尝试使用在Eclipse中运行的Maven生成DocBook输出。我找到了名为docbkx的Maven插件,它几乎让我在那里。

在DocBook世界中,更改XSL转换的一些默认行为的方法是将您自己的XSL文件定义为“自定义层”。此文件导入标准XSL文件,然后您要更改的任何模板等都放在此文件中。因此,它们在标准模板之后被解析,并且您的更改版本是使用的。

要使用docbkx插件实现此目的,您必须告诉它您在配置中使用自定义XSL文件,其中包含类似

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

然后,在自定义XSL文件中,不需要在顶部的import语句中指定标准XSL文件的位置,而是放入插件解析的符号路径:

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

这一切都很有效。但是我一直在试图理解插件是如何被告知要查找其他你想要导入的东西。两个例子:

  • 我的自定义图层不仅会导入常规样式表,还会导入 也是我通过常规流程生成的自定义标题页XSL文件。

  • 我有一个模板可以在HTML中写入一大块额外的代码 输出的头部元素。具体来说,它是连接到的代码 谷歌分析。代码位于外部文件中。

在这两种情况下,导入的文件都与自定义层位于同一目录中,但最好的是我可以告诉插件无法找到它们。我不知道如何让插件包含这些以及它的工作。

有什么想法吗?

谢谢!

艾伦

1 个答案:

答案 0 :(得分:0)

如果你有类似的话:

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

和pom一样:

...
<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"/>

你可能会发现启发这些文件: