Doxia 框架概述

下图代表了 Doxia 框架的主要组件。

Doxia 框架 Sink API Core APT Module XDoc Module FML Module Modules Doxia Site Renderer Decoration Model Doc Renderer Site Tools Converter Linkcheck Tools

注意:和 Maven 一样,Doxia 也广泛使用 Plexus

接收器 API

Sink接口是一个通用的标记语言接口 。它包含几个封装通用文本语法的方法。开始标签用 xxxx()方法表示,标签结束用xxxx_()方法表示。

例如,您可以执行以下操作:

sink.paragraph();
sink.text( "my text" );
sink.paragraph_(); 

类似于此 HTML 标记:

<p>my text</p>

要了解有关 Sink API 的更多信息,您可以在 此处阅读 Javadoc 。

Doxia 核心

Core是解析源并将其填充到Sink 对象中 的API。Parser接口只包含一种方法 :

void parse( Reader source, Sink sink )
    throws ParseException; 

ParseException 类有责任捕获所有解析异常。它提供了一个辅助方法getLineNumber(),该方法有助于查找发生错误的位置。

AbstractParser类是 Parser 的抽象实现。它提供了一种宏机制来为解析提供动态功能。有关宏的更多信息,请阅读Doxia 宏指南

最后,SiteModule接口是拼图的最后一部分。它提供给定 Doxia 模块的主要定义,并由 doxia-site-renderer站点工具使用。

Doxia 模块

Doxia 模块是给定标记语言(如 APT 或 Xdoc)的实现。每个模块都应该实现这些接口:

  • Parser接口,更具体地说是AbstractParser
  • 站点模块接口

几个模块还提供了一个接收器实现来处理特定的输出标记语言。

有关模块的更多信息,请阅读Doxia 模块指南

Doxia 网站工具

站点工具是一组用于渲染输出的工具 。Maven 使用的主要工具,特别是 Maven 站点插件,是doxia-site-renderer,它以 HTML 格式呈现使用支持的标记语法编写的任何文档。它使用 Velocity 模板 来自定义渲染器,并使用site-decoration-model工具来装饰渲染器。此组件描述site.xml 文件 中定义的站点布局。

doxia -doc-renderer工具用于渲染另一个文档中的任何文档。