Maven Doxia 是 Apache Maven 项目中的一个子项目,主要用于生成文档。它提供了一套框架和工具,用于将不同格式的文档(如 Markdown、APTL、XDoc 等)转换为统一的输出格式(如 HTML、PDF 等)。Doxia 通常用于生成 Maven 项目的站点文档。
以下是关于 Maven Doxia 的详细说明:
1. 什么是 Doxia?
- 定义:Doxia 是 Maven 的文档生成框架,支持多种输入格式和输出格式。
- 作用:将不同格式的文档转换为统一的输出格式,用于生成项目站点或其他文档。
- 支持的输入格式:
- APTL(Apt Like)
- Markdown
- XDoc
- FML(FAQ Markup Language)
- Confluence
- 等
- 支持的输出格式:
- HTML
- RTF
- 等
2. Doxia 的核心组件
- Doxia Parser:
- 负责将不同格式的文档解析为统一的内部模型(Sink API)。
- Doxia Sink:
- 负责将内部模型转换为目标输出格式(如 HTML、PDF 等)。
- Doxia Modules:
- 提供对不同输入格式的支持(如
doxia-module-markdown
、doxia-module-apt
等)。
- 提供对不同输入格式的支持(如
3. 在 Maven 项目中使用 Doxia
Doxia 通常与 Maven Site Plugin 结合使用,用于生成项目站点文档。
步骤 1:配置 Maven Site Plugin
在 pom.xml
中配置 Maven Site Plugin:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-site-plugin</artifactId>
<version>3.12.1</version>
</plugin>
</plugins>
</build>
步骤 2:添加文档文件
在 src/site
目录下添加文档文件,例如:
src/site
├── apt
│ └── index.apt
├── markdown
│ └── index.md
└── site.xml
步骤 3:生成站点文档
运行以下命令生成站点文档:
mvn site
生成的文档位于 target/site
目录下。
4. 示例:使用 Markdown 生成文档
- 添加 Markdown 文件:
在src/site/markdown
目录下创建index.md
文件:# My Project This is a sample Markdown document.
- 配置
site.xml
:
在src/site
目录下创建site.xml
文件:<project> <body> <menu name="Documentation"> <item name="Home" href="index.html"/> </menu> </body> </project>
- 生成站点:
运行以下命令生成站点:
生成的 HTML 文件位于mvn site
target/site/markdown/index.html
。
5. Doxia 的扩展
- 自定义格式:
- 可以通过实现
Doxia Parser
和Doxia Sink
来支持自定义文档格式。
- 可以通过实现
- 集成其他工具:
- Doxia 可以与其他工具(如 Asciidoctor、Javadoc 等)集成,生成更丰富的文档。
6. 常见问题
- 如何支持更多输入格式?
- 在
pom.xml
中添加对应的 Doxia 模块依赖,例如:<dependency> <groupId>org.apache.maven.doxia</groupId> <artifactId>doxia-module-markdown</artifactId> <version>1.11.1</version> </dependency>
- 在
- 如何生成 PDF 文档?
- 使用 Maven PDF Plugin 将生成的 HTML 文档转换为 PDF:
mvn pdf:pdf
- 使用 Maven PDF Plugin 将生成的 HTML 文档转换为 PDF:
总结
Maven Doxia 是生成项目文档的强大工具,支持多种输入格式和输出格式。通过与 Maven Site Plugin 结合使用,可以轻松生成项目站点文档。掌握 Doxia 的使用可以显著提高项目文档的编写和发布效率。
Apache/ Maven/ Doxia/ Introduction [Edit]
| Last Published: 2020-04-24
Get Sources
About Doxia
What is Doxia?
Overview
Downloads
FAQ
Documentation
Format References
Doxia Modules Guide
Doxia Macros Guide
Writing Books
Issues & Gotchas
External Resources
Developer Docs
Developer Centre
Doxia 1.9
Doxia base
Doxia Sitetools
Doxia 1.8
Doxia base
Doxia Sitetools
Doxia 1.7
Doxia base
Doxia Sitetools
older
Doxia Tools
Project Documentation
Project Information
About
Team
Mailing Lists
Source Code Management
Issue Management
CI Management
Maven Projects
Archetype
Artifact Resolver
Doxia
JXR
Maven
Parent POMs
Plugins
Plugin Testing
Plugin Tools
Resource Bundles
SCM
Shared Components
Skins
Surefire
Wagon
ASF
How Apache Works
Foundation
Sponsoring Apache
Thanks
Follow ASFMavenProject
Built by Maven
Maven Doxia
Doxia is a content generation framework which aims to provide its users with powerful techniques for generating static and dynamic content: Doxia can be used in web-based publishing context to generate static sites, in addition to being incorporated into dynamic content generation systems like blogs, wikis and content management systems.
Doxia supports markup languages with simple syntaxes. Lightweight markup languages are used by people who might be expected to read the document source as well as the rendered output.
Doxia is used extensively by Maven and it powers the entire documentation system of Maven. It gives Maven the ability to take any document that Doxia supports and output it any format.
The current version of Doxia base framework is 1.9.1.
Brief History
Based on the (now defunct) Aptconvert project developed by Xmlmind, Doxia was initially hosted by Codehaus, to become a sub-project of Maven early in 2006.
Main Features
Developed in Java
Support of several markup formats: APT (Almost Plain Text), Confluence, Simplified DocBook, Markdown, FML (FAQ Markup Language), FO, iText, LaTeX, RTF, TWiki, XDoc (popular in Apache land), XHTML
Easy to learn the syntax of the supported markup formats
Macro support
No need to have a corporate infrastructure (like wiki) to host your documentation
Extensible framework
Site Tools extension for site or document rendering
Additional Tools like Doxia Converter