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

这一切都很好。但是我一直在努力理解如何告诉插件查找您可能想要导入的其他内容。两个例子:

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

  • 我有一个模板可以将一大块附加代码写入 HTML
    输出的 head 元素。具体来说,它是连接到
    Google Analytics 的代码。代码位于外部文件中。

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

有任何想法吗?

谢谢!

艾伦

4

1 回答 1

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.xslcustom_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 回答