*
to list items and ---
to separate paragraphs. Recently when I had to publish some documentation for a project, I was not surprised to find my existing notes in Markdown. So why not generate the final document from them?Maven Doxia is the content generation framework used by the site plugin. It supports Markdown since Doxia 1.3. The site content is separated by format and Markdown files need to be inside a
markdown
folder and named *.md
.project |-- pom.xml `-- src |-- main |-- test `-- site |-- markdown | `-- Readme.md `-- site.xmlTo enable markdown processing in Maven site the
doxia-module-markdown
has to be added to your pom.xml
.<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-site-plugin</artifactId> <version>3.2</version> <dependencies> <!-- add optional Markdown processor --> <dependency> <groupId>org.apache.maven.doxia</groupId> <artifactId>doxia-module-markdown</artifactId> <version>1.4</version> </dependency> </dependencies> </plugin> </plugins> </build>During
mvn site
all Markdown files are translated to HTML and put into the target/site
folder. To add them to the menu of the generated site, you have to add links to the decoration descriptor of Doxia, also known as site.xml
.<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/DECORATION/1.4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/DECORATION/1.4.0 http://maven.apache.org/xsd/decoration-1.4.0.xsd"> <body> <menu name="Documents"> <item name="Readme" href="Readme.html" /> </menu> <menu ref="reports" /> </body> </project>Done. Success. Profit. ;-)