15.8.6. 使用Doxia宏

除了高级的文档渲染特性,Doxia同时也提供了一个宏引擎,它允许每种输入格式触发动态内容的注入。一个优秀的例子是snippet宏,它能让一个文档从一个HTTP可访问的源文件抓取代码片段。使用该宏,一小段APT可以被渲染成XHTML。下面的APT代码调用了snippet宏。请注意该代码应该是单独连续的一行,插入一个反斜杠是为了表示换行,以让代码更适合页面。

%{snippet|id=modello-model|url=http://svn.apache.org/repos/asf/maven/archetype/trunk/\
maven-archetype/maven-archetype-model/src/main/mdo/archetype.mdo}

Example 15.19. XHTML中Snippet宏的输出

<div class="source"><pre>

<model>
  <id>archetype</id>
  <name>Archetype</name>
  <description><![CDATA[Maven's model for the archetype descriptor.]]></description>
  <defaults>
    <default>
      <key>package</key>
      <value>org.apache.maven.archetype.model</value>
    </default>
  </defaults>
  <classes>
    <class rootElement="true" xml.tagName="archetype">
      <name>ArchetypeModel</name>
      <description>Describes the assembly layout and packaging.</description>
      <version>1.0.0</version>
      <fields>
        <field>
          <name>id</name>
          <version>1.0.0</version>
          <required>true</required>
          <type>String</type>
        </field>
        ...
      </fields>
    </class>
  </classes>
</model>

</pre></div>


Warning

在APT源文档中,绝对不要缩进Doxia宏。这么做会让APT解析器完全的忽略该宏。

要了解更多如何在你代码中定义snippet,以及snippet宏的信息,参考Maven站点上Snippet宏的指南:http://maven.apache.org/guides/mini/guide-snippet-macro.html