Doxia 宏指南

Doxia Core包含了便于文档编写的宏机制。

目前仅 APT、Xdoc 和 FML 格式支持宏。从 Doxia 1.7 (maven-site-plugin 3.5) 开始,XHTML 和 Markdown 也支持宏。Confluence、Docbook 和 Twiki 模块不(并且可能永远不会)支持宏。

APT 源文件中的宏是一个非缩进的行,如下所示:

%{macro_name|param1=value1|param2=value2|...}

Xdoc 或 FML 宏具有以下语法:

<macro name="macro_name">
  <param name="param1" value="value1"/>
  <param name="param2" value="value2"/>
  ...
</macro>

从 Doxia 1.7 开始,XHTML 或 Markdown 宏具有以下语法:

<!-- MACRO{macro_name|param1=value1|param2=value2|...} -->

从 Doxia 1.7 开始,以下宏可用:

回声宏

Echo宏是一个非常简单的宏:它打印出任何提供的参数的键和值。例如,在 APT 文件中,您可以编写:

%{echo|param1=value1|param2=value2}

同样,它将用于 xdoc 文件:

<macro name="echo">
  <param name="param1" value="value1"/>
  <param name="param2" value="value2"/>
</macro>

它会输出

  param1 ---> value1
  param2 ---> value2

片段宏

Snippet宏是一个非常有用的宏:它打印出文件或 URL 的内容。例如,在 APT 文件中,您可以编写:

%{snippet|id=myid|url=http://myserver/path/to/file.txt}

在 xdoc 文件中,它将是:

<macro name="snippet">
  <param name="id" value="myid"/>
  <param name="url" value="http://myserver/path/to/file.txt"/>
</macro>

id如果要包含整个文件,则不需要该参数。如果您只想包含文件的一部分,则应添加开始和结束分界符:任何包含字符串“ START”、“ SNIPPET”和“ myid”(片段的 )的行(通常是注释)都是myid开始id分界符,类似地,“ END SNIPPET myid”表示要包含的片段的结尾。例如:

  • Java 文件中的开始和结束片段
    public class MyClass
    {
        // START SNIPPET: myid
        public static void main( String[] args ) throws Exception
        {
            ...
        }
        // END SNIPPET: myid
    }
  • XML 文件中的开始和结束片段
    <project>
    ...
      <build>
        <plugins>
    <!-- START SNIPPET: myid -->
          <plugin>
            ...
          </plugin>
    <!-- END SNIPPET: myid -->
        </plugins>
      </build>
    </project>
范围 描述
ID 要包含的代码段的 ID。如果省略,将包含整个文件/url(从 Doxia 1.1 开始)。
网址 要包含的 URL 的路径。
文件 要包含的文件的路径(从 doxia-1.0-alpha-9 开始)。
逐字 如果内容应作为逐字转义文本输出。如果将其设置为false,则片段的内容将不会被转义。这意味着您可以像在网络服务器上使用服务器端包含一样使用它。默认值为true
编码 要读取的文件的编码(从 Doxia 1.6 开始)。如果省略,将使用默认的 JVM 编码。

目录宏

TOC宏打印文档的目录。如果您的文档中有多个部分和子部分,这将很有用。例如,在 APT 文件中,您可以编写:

%{toc|section=2|fromDepth=2|toDepth=3}

这将显示文档中第二部分的目录,包括所有小节(深度 2)和子小节(深度 3)。

请注意,在 Doxia 中,apt 部分标题不是隐式锚点(请参阅APT 格式的增强),因此您需要插入显式锚点才能使链接正常工作!

在 xdoc 文件中,它将是:

<macro name="toc">
  <param name="section" value="2"/>
  <param name="fromDepth" value="0"/>
  <param name="toDepth" value="4"/>
</macro>
范围 描述
部分 仅显示指定部分的 TOC,如果为 0,则显示所有部分。正整数,非强制,默认为 0。
从深度 包含在 TOC 中的最小截面深度(截面为深度 1、子截面深度 2 等)。正整数,非强制,默认为 0。
深度 包含在 TOC 中的最大截面深度。正整数,非强制,默认为 5。

Doxia 1.1.1开始,您还可以指定任何 html 基本属性(id, class, style, lang,中的任何一个title)作为参数,例如:

%{toc|class=myTOC}

这可用于通过 css 设置 TOC 样式。

SWF 宏

Swf宏在文档中打印 Shockwave Flash 资源。例如,在 APT 文件中,您可以编写:

%{swf|src=swf/myfile.swf|id=MyMovie|width=600|height=200}

在 xdoc 文件中,它将是:

<macro name="swf">
  <param name="src" value="swf/myfile.swf"/>
  <param name="id" value="MyMovie"/>
  <param name="width" value="600"/>
  <param name="height" value="200"/>
</macro>
范围 描述
源代码 指定要加载的电影的位置 (URL)。
ID 将 Flash 影片标识到主机环境(例如 Web 浏览器),以便可以使用脚本语言对其进行引用。
宽度 以像素或浏览器窗口的百分比指定影片的宽度。
高度 以像素或浏览器窗口的百分比指定影片的高度。
质量 可能的值:低、高、自动低、自动高、最佳。
菜单 True 显示完整菜单,允许用户使用多种选项来增强或控制播放。False 显示仅包含“设置”选项和“关于 Flash”选项的菜单。
环形 可能的值:真、假。指定影片是无限重复还是在到达最后一帧时停止。如果省略此属性,则默认值为 true。
可能的值:真、假。指定影片是否在浏览器中加载后立即开始播放。如果省略此属性,则默认值为 true。
版本 以像素或浏览器窗口的百分比指定影片的宽度。
允许脚本 以像素或浏览器窗口的百分比指定影片的宽度。

有关详细信息,请参阅SWF 宏页面。

SSI 宏

从 Doxia 1.7 开始,SSI宏打印服务器端包含。例如,在 APT 文件中,您可以编写:

%{ssi|function=include|file=included-file.html}

在 xdoc 文件中,它将是:

<macro name="ssi">
  <param name="function" value="include"/>
  <param name="file" value="included-file.html"/>
</macro>
范围 描述
功能 要插入的 SSI 函数。
任何 将添加到 SSI 指令的参数。