merge of doxia-module and site-generation into the main project
diff --git a/cli/pom.xml b/cli/pom.xml
index 85e218d..b299b4c 100644
--- a/cli/pom.xml
+++ b/cli/pom.xml
@@ -31,7 +31,7 @@
         <dependency>
             <groupId>org.tautua.markdownpapers</groupId>
             <artifactId>markdownpapers-core</artifactId>
-            <version>1.1.0-SNAPSHOT</version>
+            <version>${project.version}</version>
         </dependency>
         <dependency>
             <groupId>commons-cli</groupId>
diff --git a/doxia-module/pom.xml b/doxia-module/pom.xml
new file mode 100644
index 0000000..9251962
--- /dev/null
+++ b/doxia-module/pom.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0"?>
+<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
+         xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.tautua.markdownpapers</groupId>
+        <artifactId>markdownpapers-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../parent/pom.xml</relativePath>
+    </parent>
+    <groupId>org.tautua.markdownpapers</groupId>
+    <artifactId>markdownpapers-doxia-module</artifactId>
+    <name>MarkdownPapers Doxia Module</name>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.tautua.markdownpapers</groupId>
+            <artifactId>markdownpapers-core</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.maven.doxia</groupId>
+            <artifactId>doxia-core</artifactId>
+            <version>${doxia.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.maven.doxia</groupId>
+            <artifactId>doxia-core</artifactId>
+            <version>${doxia.version}</version>
+            <type>test-jar</type>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.mockito</groupId>
+            <artifactId>mockito-all</artifactId>
+            <version>1.8.0</version>
+        </dependency>
+    </dependencies>
+
+    <properties>
+        <doxia.version>1.1.4</doxia.version>
+    </properties>
+</project>
diff --git a/doxia-module/src/main/java/org/tautua/markdownpapers/doxia/MarkdownParser.java b/doxia-module/src/main/java/org/tautua/markdownpapers/doxia/MarkdownParser.java
new file mode 100644
index 0000000..a108819
--- /dev/null
+++ b/doxia-module/src/main/java/org/tautua/markdownpapers/doxia/MarkdownParser.java
@@ -0,0 +1,28 @@
+package org.tautua.markdownpapers.doxia;
+
+import org.apache.maven.doxia.parser.AbstractParser;
+import org.apache.maven.doxia.parser.ParseException;
+import org.apache.maven.doxia.sink.Sink;
+import org.tautua.markdownpapers.ast.Document;
+import org.tautua.markdownpapers.parser.Parser;
+
+import java.io.Reader;
+
+/**
+ *
+ */
+public class MarkdownParser extends AbstractParser {
+
+    public void parse(Reader reader, Sink sink) throws ParseException {
+        Parser parser = new Parser(reader);
+        Document document = null;
+        try {
+            document = parser.parse();
+        } catch (org.tautua.markdownpapers.parser.ParseException e) {
+            throw new ParseException(e, e.currentToken.beginLine, e.currentToken.beginColumn);
+        }
+
+        SinkEventEmitter emitter = new SinkEventEmitter(sink);
+        document.accept(emitter);
+    }
+}
diff --git a/doxia-module/src/main/java/org/tautua/markdownpapers/doxia/MarkdownSiteModule.java b/doxia-module/src/main/java/org/tautua/markdownpapers/doxia/MarkdownSiteModule.java
new file mode 100644
index 0000000..f2d9ba3
--- /dev/null
+++ b/doxia-module/src/main/java/org/tautua/markdownpapers/doxia/MarkdownSiteModule.java
@@ -0,0 +1,9 @@
+package org.tautua.markdownpapers.doxia;
+
+import org.apache.maven.doxia.module.site.AbstractSiteModule;
+
+public class MarkdownSiteModule extends AbstractSiteModule {
+    public MarkdownSiteModule() {
+        super("markdown", "md", "markdown");
+    }
+}
diff --git a/doxia-module/src/main/java/org/tautua/markdownpapers/doxia/SinkEventEmitter.java b/doxia-module/src/main/java/org/tautua/markdownpapers/doxia/SinkEventEmitter.java
new file mode 100644
index 0000000..0c59a80
--- /dev/null
+++ b/doxia-module/src/main/java/org/tautua/markdownpapers/doxia/SinkEventEmitter.java
@@ -0,0 +1,214 @@
+package org.tautua.markdownpapers.doxia;
+
+import org.apache.maven.doxia.sink.Sink;
+import org.apache.maven.doxia.sink.SinkEventAttributeSet;
+import org.apache.maven.doxia.sink.SinkEventAttributes;
+import org.tautua.markdownpapers.ast.*;
+
+import java.util.Stack;
+
+/**
+ * Generate doxia events that are going to be consume by a corresponding sink
+ * @author Larry Ruiz, Aug 25, 2010
+ */
+public class SinkEventEmitter implements Visitor {
+    private Stack<Header> stack = new Stack<Header>();
+    private Sink sink;
+
+    public SinkEventEmitter(Sink sink) {
+        this.sink = sink;
+    }
+
+    public void visit(CharRef node) {
+        sink.text(node.getValue());
+    }
+
+    public void visit(ClosingTag node) {
+        sink.rawText("</");
+        sink.rawText(node.getName());
+        sink.rawText(">");
+    }
+
+    public void visit(Code node) {
+        sink.verbatim(SinkEventAttributeSet.BOXED);
+        node.childrenAccept(this);
+        sink.verbatim_();
+    }
+
+    public void visit(CodeSpan node) {
+        sink.text(node.getText(), SinkEventAttributeSet.MONOSPACED);
+    }
+
+    public void visit(CodeText node) {
+        sink.text(node.getValue());
+    }
+
+    public void visit(Comment node) {
+        sink.comment(node.getText());
+    }
+
+    public void visit(Document node) {
+        sink.body();
+        node.childrenAccept(this);
+        while(!stack.isEmpty()) {
+            sink.section_(stack.pop().getLevel());
+        }
+        sink.body_();
+    }
+
+    public void visit(Emphasis node) {
+        switch (node.getType()) {
+            case BOLD:
+                sink.bold();
+                sink.text(node.getText());
+                sink.bold_();
+                break;
+            case ITALIC:
+                sink.italic();
+                sink.text(node.getText());
+                sink.italic_();
+                break;
+            case ITALIC_AND_BOLD:
+                sink.italic();
+                sink.bold();
+                sink.text(node.getText());
+                sink.bold_();
+                sink.italic_();
+                break;
+        }
+    }
+
+    public void visit(EmptyTag node) {
+        sink.rawText("<");
+        sink.rawText(node.getName());
+        appendAttributes(node.getAttributes());
+        sink.rawText("/>");
+    }
+
+    public void visit(Header node) {
+        if(stack.isEmpty()) {
+            stack.push(node);
+        } else if(stack.peek().getLevel() < node.getLevel()) {
+            stack.push(node);
+        } else {
+            do {
+                sink.section_(stack.pop().getLevel());
+            } while(!stack.isEmpty() && stack.peek().getLevel() >= node.getLevel());
+            stack.push(node);
+        }
+        sink.section(node.getLevel(), null);
+        sink.sectionTitle(node.getLevel(), null);
+        node.childrenAccept(this);
+        sink.sectionTitle_(node.getLevel());
+    }
+
+    public void visit(Image node) {
+        Resource resource = node.getResource();
+        SinkEventAttributes attr = new SinkEventAttributeSet();
+        attr.addAttribute(SinkEventAttributeSet.ALT, node.getText());
+        attr.addAttribute(SinkEventAttributeSet.TITLE, resource.getHint());
+
+        if (node.jjtGetParent() instanceof Line && node.jjtGetParent().jjtGetNumChildren() == 1) {
+            sink.figure();
+            sink.figureGraphics(resource.getLocation(), attr);
+            sink.figureCaption();
+            sink.text(resource.getHint());
+            sink.figureCaption_();
+            sink.figure_();
+        } else {
+            // inline graphics
+            sink.figureGraphics(resource.getLocation(), attr);
+        }
+    }
+
+    public void visit(Link node) {
+        Resource resource = node.getResource();
+        if(resource != null) {
+            sink.link(resource.getLocation());
+            node.childrenAccept(this);
+            sink.link_();
+        } else {
+            sink.text("[");
+            node.childrenAccept(this);
+            sink.text("]");
+        }
+    }
+
+    public void visit(InlineUrl node) {
+        sink.link(node.getUrl());
+        sink.text(node.getUrl());
+        sink.link_();
+    }
+
+    public void visit(Item node) {
+        sink.listItem();
+        node.childrenAccept(this);
+        sink.listItem_();
+    }
+
+    public void visit(Line node) {
+        node.childrenAccept(this);
+        sink.text("\n");
+    }
+
+    public void visit(ResourceDefinition node) {
+        //do nothing
+    }
+
+    public void visit(List node) {
+        if (node.isOrdered()) {
+            sink.numberedList(Sink.NUMBERING_DECIMAL);
+            node.childrenAccept(this);
+            sink.numberedList_();
+        } else {
+            sink.list();
+            node.childrenAccept(this);
+            sink.list_();
+        }
+    }
+
+    public void visit(OpeningTag node) {
+        sink.rawText("<");
+        sink.rawText(node.getName());
+        appendAttributes(node.getAttributes());
+        sink.rawText(">");
+    }
+
+    private void appendAttributes(java.util.List<TagAttribute> attributes) {
+        for(TagAttribute a : attributes) {
+            sink.rawText(" ");
+            sink.rawText(a.getName());
+            sink.rawText("=\"");
+            sink.rawText(a.getValue());
+            sink.rawText("\"");
+        }
+    }
+
+    public void visit(Paragraph node) {
+        Node parent = node.jjtGetParent();
+        if(parent instanceof Item) {
+            if (!((Item)parent).isLoose()) {
+                node.childrenAccept(this);
+                return;
+            }
+        }
+        sink.paragraph();
+        node.childrenAccept(this);
+        sink.paragraph_();
+    }
+
+    public void visit(Quote node) {
+    }
+
+    public void visit(Ruler node) {
+        sink.horizontalRule();
+    }
+
+    public void visit(SimpleNode node) {
+        throw new UnsupportedOperationException();
+    }
+
+    public void visit(Text node) {
+        sink.text(node.getValue());
+    }
+}
diff --git a/doxia-module/src/main/resources/META-INF/plexus/components.xml b/doxia-module/src/main/resources/META-INF/plexus/components.xml
new file mode 100644
index 0000000..5b98ce2
--- /dev/null
+++ b/doxia-module/src/main/resources/META-INF/plexus/components.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<component-set>

+    <components>

+        <component>

+            <role>org.apache.maven.doxia.parser.Parser</role>

+            <role-hint>markdown</role-hint>

+            <implementation>org.tautua.markdownpapers.doxia.MarkdownParser</implementation>

+            <description>The Markdown parser.</description>

+        </component>

+        <component>

+            <role>org.apache.maven.doxia.module.site.SiteModule</role>

+            <role-hint>markdown</role-hint>

+            <implementation>org.tautua.markdownpapers.doxia.MarkdownSiteModule</implementation>

+            <description>Markdown site module.</description>

+        </component>

+    </components>

+</component-set>

diff --git a/doxia-module/src/test/java/org/tautua/markdownpapers/doxia/MarkdownParserTest.java b/doxia-module/src/test/java/org/tautua/markdownpapers/doxia/MarkdownParserTest.java
new file mode 100644
index 0000000..49b1769
--- /dev/null
+++ b/doxia-module/src/test/java/org/tautua/markdownpapers/doxia/MarkdownParserTest.java
@@ -0,0 +1,76 @@
+package org.tautua.markdownpapers.doxia;
+
+import org.apache.maven.doxia.parser.AbstractParserTest;
+import org.apache.maven.doxia.parser.Parser;
+import org.apache.maven.doxia.sink.Sink;
+
+import java.io.Reader;
+
+import static org.apache.maven.doxia.sink.Sink.NUMBERING_DECIMAL;
+import static org.mockito.Mockito.*;
+
+/**
+ * @author Larry Ruiz, Aug 26, 2010
+ */
+public class MarkdownParserTest extends AbstractParserTest {
+    private MarkdownParser parser;
+
+    protected void setUp() throws Exception {
+        super.setUp();
+        parser = (MarkdownParser) lookup( Parser.ROLE, "markdown" );
+    }
+
+    protected Parser createParser() {
+        return parser;
+    }
+
+    protected String outputExtension() {
+        return "md";
+    }
+
+
+    public void testList() throws org.apache.maven.doxia.parser.ParseException {
+        Sink sink = mock(Sink.class);
+        Reader reader = getTestReader("list");
+        Parser p = createParser();
+
+        p.parse(reader, sink);
+
+        verify(sink).body();
+        verify(sink, times(2)).numberedList(NUMBERING_DECIMAL);
+        verify(sink, times(2)).numberedList_();
+        verify(sink, times(3)).listItem();
+        verify(sink, times(3)).listItem_();
+        verify(sink).body_();
+    }
+
+    public void testParagraph() throws org.apache.maven.doxia.parser.ParseException {
+        Sink sink = mock(Sink.class);
+        Reader reader = getTestReader("paragraph");
+        Parser p = createParser();
+
+        p.parse(reader, sink);
+
+        verify(sink).body();
+        verify(sink, times(2)).paragraph();
+        verify(sink, times(2)).paragraph_();
+        verify(sink).body_();
+    }
+
+    public void testHeaders() throws org.apache.maven.doxia.parser.ParseException {
+        Sink sink = mock(Sink.class);
+        Reader reader = getTestReader("headers");
+        Parser p = createParser();
+
+        p.parse(reader, sink);
+
+        verify(sink).body();
+        verify(sink, times(2)).sectionTitle(1, null);
+        verify(sink, times(2)).sectionTitle_(1);
+        verify(sink, times(2)).sectionTitle(2, null);
+        verify(sink, times(2)).sectionTitle_(2);
+        verify(sink, times(1)).sectionTitle(3, null);
+        verify(sink, times(1)).sectionTitle_(3);
+        verify(sink).body_();
+    }
+}
diff --git a/doxia-module/src/test/resources/headers.md b/doxia-module/src/test/resources/headers.md
new file mode 100644
index 0000000..1920ed5
--- /dev/null
+++ b/doxia-module/src/test/resources/headers.md
@@ -0,0 +1,12 @@
+Header 1
+========
+
+
+Header 2
+--------
+
+
+# Header 1
+## Header 2
+### Header 3
+
diff --git a/doxia-module/src/test/resources/list.md b/doxia-module/src/test/resources/list.md
new file mode 100644
index 0000000..c7d13eb
--- /dev/null
+++ b/doxia-module/src/test/resources/list.md
@@ -0,0 +1,3 @@
+1. item 1
+   1. item 1.1
+2. item 2
\ No newline at end of file
diff --git a/doxia-module/src/test/resources/paragraph.md b/doxia-module/src/test/resources/paragraph.md
new file mode 100644
index 0000000..86de2cc
--- /dev/null
+++ b/doxia-module/src/test/resources/paragraph.md
@@ -0,0 +1,10 @@
+This page offers a brief overview of what it's like to use Markdown.
+The [syntax page] [s] provides complete, detailed documentation for
+every feature, but Markdown should be very easy to pick up simply by
+looking at a few examples of it in action. The examples on this page
+are written in a before/after style, showing example syntax and the
+HTML output produced by Markdown.
+
+It's also helpful to simply try Markdown out; the [Dingus] [d] is a
+web application that allows you type your own Markdown-formatted text
+and translate it to XHTML.
\ No newline at end of file
diff --git a/doxia-module/src/test/resources/test.md b/doxia-module/src/test/resources/test.md
new file mode 100644
index 0000000..cb70921
--- /dev/null
+++ b/doxia-module/src/test/resources/test.md
@@ -0,0 +1,888 @@
+Markdown: Syntax
+================
+
+<ul id="ProjectSubmenu">
+    <li><a href="/projects/markdown/" title="Markdown Project Page">Main</a></li>
+    <li><a href="/projects/markdown/basics" title="Markdown Basics">Basics</a></li>
+    <li><a class="selected" title="Markdown Syntax Documentation">Syntax</a></li>
+    <li><a href="/projects/markdown/license" title="Pricing and License Information">License</a></li>
+    <li><a href="/projects/markdown/dingus" title="Online Markdown Web Form">Dingus</a></li>
+</ul>
+
+
+*   [Overview](#overview)
+    *   [Philosophy](#philosophy)
+    *   [Inline HTML](#html)
+    *   [Automatic Escaping for Special Characters](#autoescape)
+*   [Block Elements](#block)
+    *   [Paragraphs and Line Breaks](#p)
+    *   [Headers](#header)
+    *   [Blockquotes](#blockquote)
+    *   [Lists](#list)
+    *   [Code Blocks](#precode)
+    *   [Horizontal Rules](#hr)
+*   [Span Elements](#span)
+    *   [Links](#link)
+    *   [Emphasis](#em)
+    *   [Code](#code)
+    *   [Images](#img)
+*   [Miscellaneous](#misc)
+    *   [Backslash Escapes](#backslash)
+    *   [Automatic Links](#autolink)
+
+
+**Note:** This document is itself written using Markdown; you
+can [see the source for it by adding '.text' to the URL][src].
+
+  [src]: /projects/markdown/syntax.text
+
+* * *
+
+<h2 id="overview">Overview</h2>
+
+<h3 id="philosophy">Philosophy</h3>
+
+Markdown is intended to be as easy-to-read and easy-to-write as is feasible.
+
+Readability, however, is emphasized above all else. A Markdown-formatted
+document should be publishable as-is, as plain text, without looking
+like it's been marked up with tags or formatting instructions. While
+Markdown's syntax has been influenced by several existing text-to-HTML
+filters -- including [Setext] [1], [atx] [2], [Textile] [3], [reStructuredText] [4],
+[Grutatext] [5], and [EtText] [6] -- the single biggest source of
+inspiration for Markdown's syntax is the format of plain text email.
+
+  [1]: http://docutils.sourceforge.net/mirror/setext.html
+  [2]: http://www.aaronsw.com/2002/atx/
+  [3]: http://textism.com/tools/textile/
+  [4]: http://docutils.sourceforge.net/rst.html
+  [5]: http://www.triptico.com/software/grutatxt.html
+  [6]: http://ettext.taint.org/doc/
+
+To this end, Markdown's syntax is comprised entirely of punctuation
+characters, which punctuation characters have been carefully chosen so
+as to look like what they mean. E.g., asterisks around a word actually
+look like \*emphasis\*. Markdown lists look like, well, lists. Even
+blockquotes look like quoted passages of text, assuming you've ever
+used email.
+
+
+
+<h3 id="html">Inline HTML</h3>
+
+Markdown's syntax is intended for one purpose: to be used as a
+format for *writing* for the web.
+
+Markdown is not a replacement for HTML, or even close to it. Its
+syntax is very small, corresponding only to a very small subset of
+HTML tags. The idea is *not* to create a syntax that makes it easier
+to insert HTML tags. In my opinion, HTML tags are already easy to
+insert. The idea for Markdown is to make it easy to read, write, and
+edit prose. HTML is a *publishing* format; Markdown is a *writing*
+format. Thus, Markdown's formatting syntax only addresses issues that
+can be conveyed in plain text.
+
+For any markup that is not covered by Markdown's syntax, you simply
+use HTML itself. There's no need to preface it or delimit it to
+indicate that you're switching from Markdown to HTML; you just use
+the tags.
+
+The only restrictions are that block-level HTML elements -- e.g. `<div>`,
+`<table>`, `<pre>`, `<p>`, etc. -- must be separated from surrounding
+content by blank lines, and the start and end tags of the block should
+not be indented with tabs or spaces. Markdown is smart enough not
+to add extra (unwanted) `<p>` tags around HTML block-level tags.
+
+For example, to add an HTML table to a Markdown article:
+
+    This is a regular paragraph.
+
+    <table>
+        <tr>
+            <td>Foo</td>
+        </tr>
+    </table>
+
+    This is another regular paragraph.
+
+Note that Markdown formatting syntax is not processed within block-level
+HTML tags. E.g., you can't use Markdown-style `*emphasis*` inside an
+HTML block.
+
+Span-level HTML tags -- e.g. `<span>`, `<cite>`, or `<del>` -- can be
+used anywhere in a Markdown paragraph, list item, or header. If you
+want, you can even use HTML tags instead of Markdown formatting; e.g. if
+you'd prefer to use HTML `<a>` or `<img>` tags instead of Markdown's
+link or image syntax, go right ahead.
+
+Unlike block-level HTML tags, Markdown syntax *is* processed within
+span-level tags.
+
+
+<h3 id="autoescape">Automatic Escaping for Special Characters</h3>
+
+In HTML, there are two characters that demand special treatment: `<`
+and `&`. Left angle brackets are used to start tags; ampersands are
+used to denote HTML entities. If you want to use them as literal
+characters, you must escape them as entities, e.g. `&lt;`, and
+`&amp;`.
+
+Ampersands in particular are bedeviling for web writers. If you want to
+write about 'AT&T', you need to write '`AT&amp;T`'. You even need to
+escape ampersands within URLs. Thus, if you want to link to:
+
+    http://images.google.com/images?num=30&q=larry+bird
+
+you need to encode the URL as:
+
+    http://images.google.com/images?num=30&amp;q=larry+bird
+
+in your anchor tag `href` attribute. Needless to say, this is easy to
+forget, and is probably the single most common source of HTML validation
+errors in otherwise well-marked-up web sites.
+
+Markdown allows you to use these characters naturally, taking care of
+all the necessary escaping for you. If you use an ampersand as part of
+an HTML entity, it remains unchanged; otherwise it will be translated
+into `&amp;`.
+
+So, if you want to include a copyright symbol in your article, you can write:
+
+    &copy;
+
+and Markdown will leave it alone. But if you write:
+
+    AT&T
+
+Markdown will translate it to:
+
+    AT&amp;T
+
+Similarly, because Markdown supports [inline HTML](#html), if you use
+angle brackets as delimiters for HTML tags, Markdown will treat them as
+such. But if you write:
+
+    4 < 5
+
+Markdown will translate it to:
+
+    4 &lt; 5
+
+However, inside Markdown code spans and blocks, angle brackets and
+ampersands are *always* encoded automatically. This makes it easy to use
+Markdown to write about HTML code. (As opposed to raw HTML, which is a
+terrible format for writing about HTML syntax, because every single `<`
+and `&` in your example code needs to be escaped.)
+
+
+* * *
+
+
+<h2 id="block">Block Elements</h2>
+
+
+<h3 id="p">Paragraphs and Line Breaks</h3>
+
+A paragraph is simply one or more consecutive lines of text, separated
+by one or more blank lines. (A blank line is any line that looks like a
+blank line -- a line containing nothing but spaces or tabs is considered
+blank.) Normal paragraphs should not be intended with spaces or tabs.
+
+The implication of the "one or more consecutive lines of text" rule is
+that Markdown supports "hard-wrapped" text paragraphs. This differs
+significantly from most other text-to-HTML formatters (including Movable
+Type's "Convert Line Breaks" option) which translate every line break
+character in a paragraph into a `<br />` tag.
+
+When you *do* want to insert a `<br />` break tag using Markdown, you
+end a line with two or more spaces, then type return.
+
+Yes, this takes a tad more effort to create a `<br />`, but a simplistic
+"every line break is a `<br />`" rule wouldn't work for Markdown.
+Markdown's email-style [blockquoting][bq] and multi-paragraph [list items][l]
+work best -- and look better -- when you format them with hard breaks.
+
+  [bq]: #blockquote
+  [l]:  #list
+
+
+
+<h3 id="header">Headers</h3>
+
+Markdown supports two styles of headers, [Setext] [1] and [atx] [2].
+
+Setext-style headers are "underlined" using equal signs (for first-level
+headers) and dashes (for second-level headers). For example:
+
+    This is an H1
+    =============
+
+    This is an H2
+    -------------
+
+Any number of underlining `=`'s or `-`'s will work.
+
+Atx-style headers use 1-6 hash characters at the start of the line,
+corresponding to header levels 1-6. For example:
+
+    # This is an H1
+
+    ## This is an H2
+
+    ###### This is an H6
+
+Optionally, you may "close" atx-style headers. This is purely
+cosmetic -- you can use this if you think it looks better. The
+closing hashes don't even need to match the number of hashes
+used to open the header. (The number of opening hashes
+determines the header level.) :
+
+    # This is an H1 #
+
+    ## This is an H2 ##
+
+    ### This is an H3 ######
+
+
+<h3 id="blockquote">Blockquotes</h3>
+
+Markdown uses email-style `>` characters for blockquoting. If you're
+familiar with quoting passages of text in an email message, then you
+know how to create a blockquote in Markdown. It looks best if you hard
+wrap the text and put a `>` before every line:
+
+    > This is a blockquote with two paragraphs. Lorem ipsum dolor sit amet,
+    > consectetuer adipiscing elit. Aliquam hendrerit mi posuere lectus.
+    > Vestibulum enim wisi, viverra nec, fringilla in, laoreet vitae, risus.
+    >
+    > Donec sit amet nisl. Aliquam semper ipsum sit amet velit. Suspendisse
+    > id sem consectetuer libero luctus adipiscing.
+
+Markdown allows you to be lazy and only put the `>` before the first
+line of a hard-wrapped paragraph:
+
+    > This is a blockquote with two paragraphs. Lorem ipsum dolor sit amet,
+    consectetuer adipiscing elit. Aliquam hendrerit mi posuere lectus.
+    Vestibulum enim wisi, viverra nec, fringilla in, laoreet vitae, risus.
+
+    > Donec sit amet nisl. Aliquam semper ipsum sit amet velit. Suspendisse
+    id sem consectetuer libero luctus adipiscing.
+
+Blockquotes can be nested (i.e. a blockquote-in-a-blockquote) by
+adding additional levels of `>`:
+
+    > This is the first level of quoting.
+    >
+    > > This is nested blockquote.
+    >
+    > Back to the first level.
+
+Blockquotes can contain other Markdown elements, including headers, lists,
+and code blocks:
+
+	> ## This is a header.
+	>
+	> 1.   This is the first list item.
+	> 2.   This is the second list item.
+	>
+	> Here's some example code:
+	>
+	>     return shell_exec("echo $input | $markdown_script");
+
+Any decent text editor should make email-style quoting easy. For
+example, with BBEdit, you can make a selection and choose Increase
+Quote Level from the Text menu.
+
+
+<h3 id="list">Lists</h3>
+
+Markdown supports ordered (numbered) and unordered (bulleted) lists.
+
+Unordered lists use asterisks, pluses, and hyphens -- interchangably
+-- as list markers:
+
+    *   Red
+    *   Green
+    *   Blue
+
+is equivalent to:
+
+    +   Red
+    +   Green
+    +   Blue
+
+and:
+
+    -   Red
+    -   Green
+    -   Blue
+
+Ordered lists use numbers followed by periods:
+
+    1.  Bird
+    2.  McHale
+    3.  Parish
+
+It's important to note that the actual numbers you use to mark the
+list have no effect on the HTML output Markdown produces. The HTML
+Markdown produces from the above list is:
+
+    <ol>
+    <li>Bird</li>
+    <li>McHale</li>
+    <li>Parish</li>
+    </ol>
+
+If you instead wrote the list in Markdown like this:
+
+    1.  Bird
+    1.  McHale
+    1.  Parish
+
+or even:
+
+    3. Bird
+    1. McHale
+    8. Parish
+
+you'd get the exact same HTML output. The point is, if you want to,
+you can use ordinal numbers in your ordered Markdown lists, so that
+the numbers in your source match the numbers in your published HTML.
+But if you want to be lazy, you don't have to.
+
+If you do use lazy list numbering, however, you should still start the
+list with the number 1. At some point in the future, Markdown may support
+starting ordered lists at an arbitrary number.
+
+List markers typically start at the left margin, but may be indented by
+up to three spaces. List markers must be followed by one or more spaces
+or a tab.
+
+To make lists look nice, you can wrap items with hanging indents:
+
+    *   Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
+        Aliquam hendrerit mi posuere lectus. Vestibulum enim wisi,
+        viverra nec, fringilla in, laoreet vitae, risus.
+    *   Donec sit amet nisl. Aliquam semper ipsum sit amet velit.
+        Suspendisse id sem consectetuer libero luctus adipiscing.
+
+But if you want to be lazy, you don't have to:
+
+    *   Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
+    Aliquam hendrerit mi posuere lectus. Vestibulum enim wisi,
+    viverra nec, fringilla in, laoreet vitae, risus.
+    *   Donec sit amet nisl. Aliquam semper ipsum sit amet velit.
+    Suspendisse id sem consectetuer libero luctus adipiscing.
+
+If list items are separated by blank lines, Markdown will wrap the
+items in `<p>` tags in the HTML output. For example, this input:
+
+    *   Bird
+    *   Magic
+
+will turn into:
+
+    <ul>
+    <li>Bird</li>
+    <li>Magic</li>
+    </ul>
+
+But this:
+
+    *   Bird
+
+    *   Magic
+
+will turn into:
+
+    <ul>
+    <li><p>Bird</p></li>
+    <li><p>Magic</p></li>
+    </ul>
+
+List items may consist of multiple paragraphs. Each subsequent
+paragraph in a list item must be intended by either 4 spaces
+or one tab:
+
+    1.  This is a list item with two paragraphs. Lorem ipsum dolor
+        sit amet, consectetuer adipiscing elit. Aliquam hendrerit
+        mi posuere lectus.
+
+        Vestibulum enim wisi, viverra nec, fringilla in, laoreet
+        vitae, risus. Donec sit amet nisl. Aliquam semper ipsum
+        sit amet velit.
+
+    2.  Suspendisse id sem consectetuer libero luctus adipiscing.
+
+It looks nice if you indent every line of the subsequent
+paragraphs, but here again, Markdown will allow you to be
+lazy:
+
+    *   This is a list item with two paragraphs.
+
+        This is the second paragraph in the list item. You're
+    only required to indent the first line. Lorem ipsum dolor
+    sit amet, consectetuer adipiscing elit.
+
+    *   Another item in the same list.
+
+To put a blockquote within a list item, the blockquote's `>`
+delimiters need to be indented:
+
+    *   A list item with a blockquote:
+
+        > This is a blockquote
+        > inside a list item.
+
+To put a code block within a list item, the code block needs
+to be indented *twice* -- 8 spaces or two tabs:
+
+    *   A list item with a code block:
+
+            <code goes here>
+
+
+It's worth noting that it's possible to trigger an ordered list by
+accident, by writing something like this:
+
+    1986. What a great season.
+
+In other words, a *number-period-space* sequence at the beginning of a
+line. To avoid this, you can backslash-escape the period:
+
+    1986\. What a great season.
+
+
+
+<h3 id="precode">Code Blocks</h3>
+
+Pre-formatted code blocks are used for writing about programming or
+markup source code. Rather than forming normal paragraphs, the lines
+of a code block are interpreted literally. Markdown wraps a code block
+in both `<pre>` and `<code>` tags.
+
+To produce a code block in Markdown, simply indent every line of the
+block by at least 4 spaces or 1 tab. For example, given this input:
+
+    This is a normal paragraph:
+
+        This is a code block.
+
+Markdown will generate:
+
+    <p>This is a normal paragraph:</p>
+
+    <pre><code>This is a code block.
+    </code></pre>
+
+One level of indentation -- 4 spaces or 1 tab -- is removed from each
+line of the code block. For example, this:
+
+    Here is an example of AppleScript:
+
+        tell application "Foo"
+            beep
+        end tell
+
+will turn into:
+
+    <p>Here is an example of AppleScript:</p>
+
+    <pre><code>tell application "Foo"
+        beep
+    end tell
+    </code></pre>
+
+A code block continues until it reaches a line that is not indented
+(or the end of the article).
+
+Within a code block, ampersands (`&`) and angle brackets (`<` and `>`)
+are automatically converted into HTML entities. This makes it very
+easy to include example HTML source code using Markdown -- just paste
+it and indent it, and Markdown will handle the hassle of encoding the
+ampersands and angle brackets. For example, this:
+
+        <div class="footer">
+            &copy; 2004 Foo Corporation
+        </div>
+
+will turn into:
+
+    <pre><code>&lt;div class="footer"&gt;
+        &amp;copy; 2004 Foo Corporation
+    &lt;/div&gt;
+    </code></pre>
+
+Regular Markdown syntax is not processed within code blocks. E.g.,
+asterisks are just literal asterisks within a code block. This means
+it's also easy to use Markdown to write about Markdown's own syntax.
+
+
+
+<h3 id="hr">Horizontal Rules</h3>
+
+You can produce a horizontal rule tag (`<hr />`) by placing three or
+more hyphens, asterisks, or underscores on a line by themselves. If you
+wish, you may use spaces between the hyphens or asterisks. Each of the
+following lines will produce a horizontal rule:
+
+    * * *
+
+    ***
+
+    *****
+
+    - - -
+
+    ---------------------------------------
+
+	_ _ _
+
+
+* * *
+
+<h2 id="span">Span Elements</h2>
+
+<h3 id="link">Links</h3>
+
+Markdown supports two style of links: *inline* and *reference*.
+
+In both styles, the link text is delimited by [square brackets].
+
+To create an inline link, use a set of regular parentheses immediately
+after the link text's closing square bracket. Inside the parentheses,
+put the URL where you want the link to point, along with an *optional*
+title for the link, surrounded in quotes. For example:
+
+    This is [an example](http://example.com/ "Title") inline link.
+
+    [This link](http://example.net/) has no title attribute.
+
+Will produce:
+
+    <p>This is <a href="http://example.com/" title="Title">
+    an example</a> inline link.</p>
+
+    <p><a href="http://example.net/">This link</a> has no
+    title attribute.</p>
+
+If you're referring to a local resource on the same server, you can
+use relative paths:
+
+    See my [About](/about/) page for details.
+
+Reference-style links use a second set of square brackets, inside
+which you place a label of your choosing to identify the link:
+
+    This is [an example][id] reference-style link.
+
+You can optionally use a space to separate the sets of brackets:
+
+    This is [an example] [id] reference-style link.
+
+Then, anywhere in the document, you define your link label like this,
+on a line by itself:
+
+    [id]: http://example.com/  "Optional Title Here"
+
+That is:
+
+*   Square brackets containing the link identifier (optionally
+    indented from the left margin using up to three spaces);
+*   followed by a colon;
+*   followed by one or more spaces (or tabs);
+*   followed by the URL for the link;
+*   optionally followed by a title attribute for the link, enclosed
+    in double or single quotes.
+
+The link URL may, optionally, be surrounded by angle brackets:
+
+    [id]: <http://example.com/>  "Optional Title Here"
+
+You can put the title attribute on the next line and use extra spaces
+or tabs for padding, which tends to look better with longer URLs:
+
+    [id]: http://example.com/longish/path/to/resource/here
+        "Optional Title Here"
+
+Link definitions are only used for creating links during Markdown
+processing, and are stripped from your document in the HTML output.
+
+Link definition names may constist of letters, numbers, spaces, and punctuation -- but they are *not* case sensitive. E.g. these two links:
+
+	[link text][a]
+	[link text][A]
+
+are equivalent.
+
+The *implicit link name* shortcut allows you to omit the name of the
+link, in which case the link text itself is used as the name.
+Just use an empty set of square brackets -- e.g., to link the word
+"Google" to the google.com web site, you could simply write:
+
+	[Google][]
+
+And then define the link:
+
+	[Google]: http://google.com/
+
+Because link names may contain spaces, this shortcut even works for
+multiple words in the link text:
+
+	Visit [Daring Fireball][] for more information.
+
+And then define the link:
+
+	[Daring Fireball]: http://daringfireball.net/
+
+Link definitions can be placed anywhere in your Markdown document. I
+tend to put them immediately after each paragraph in which they're
+used, but if you want, you can put them all at the end of your
+document, sort of like footnotes.
+
+Here's an example of reference links in action:
+
+    I get 10 times more traffic from [Google] [1] than from
+    [Yahoo] [2] or [MSN] [3].
+
+      [1]: http://google.com/        "Google"
+      [2]: http://search.yahoo.com/  "Yahoo Search"
+      [3]: http://search.msn.com/    "MSN Search"
+
+Using the implicit link name shortcut, you could instead write:
+
+    I get 10 times more traffic from [Google][] than from
+    [Yahoo][] or [MSN][].
+
+      [google]: http://google.com/        "Google"
+      [yahoo]:  http://search.yahoo.com/  "Yahoo Search"
+      [msn]:    http://search.msn.com/    "MSN Search"
+
+Both of the above examples will produce the following HTML output:
+
+    <p>I get 10 times more traffic from <a href="http://google.com/"
+    title="Google">Google</a> than from
+    <a href="http://search.yahoo.com/" title="Yahoo Search">Yahoo</a>
+    or <a href="http://search.msn.com/" title="MSN Search">MSN</a>.</p>
+
+For comparison, here is the same paragraph written using
+Markdown's inline link style:
+
+    I get 10 times more traffic from [Google](http://google.com/ "Google")
+    than from [Yahoo](http://search.yahoo.com/ "Yahoo Search") or
+    [MSN](http://search.msn.com/ "MSN Search").
+
+The point of reference-style links is not that they're easier to
+write. The point is that with reference-style links, your document
+source is vastly more readable. Compare the above examples: using
+reference-style links, the paragraph itself is only 81 characters
+long; with inline-style links, it's 176 characters; and as raw HTML,
+it's 234 characters. In the raw HTML, there's more markup than there
+is text.
+
+With Markdown's reference-style links, a source document much more
+closely resembles the final output, as rendered in a browser. By
+allowing you to move the markup-related metadata out of the paragraph,
+you can add links without interrupting the narrative flow of your
+prose.
+
+
+<h3 id="em">Emphasis</h3>
+
+Markdown treats asterisks (`*`) and underscores (`_`) as indicators of
+emphasis. Text wrapped with one `*` or `_` will be wrapped with an
+HTML `<em>` tag; double `*`'s or `_`'s will be wrapped with an HTML
+`<strong>` tag. E.g., this input:
+
+    *single asterisks*
+
+    _single underscores_
+
+    **double asterisks**
+
+    __double underscores__
+
+will produce:
+
+    <em>single asterisks</em>
+
+    <em>single underscores</em>
+
+    <strong>double asterisks</strong>
+
+    <strong>double underscores</strong>
+
+You can use whichever style you prefer; the lone restriction is that
+the same character must be used to open and close an emphasis span.
+
+Emphasis can be used in the middle of a word:
+
+    un*fucking*believable
+
+But if you surround an `*` or `_` with spaces, it'll be treated as a
+literal asterisk or underscore.
+
+To produce a literal asterisk or underscore at a position where it
+would otherwise be used as an emphasis delimiter, you can backslash
+escape it:
+
+    \*this text is surrounded by literal asterisks\*
+
+
+
+<h3 id="code">Code</h3>
+
+To indicate a span of code, wrap it with backtick quotes (`` ` ``).
+Unlike a pre-formatted code block, a code span indicates code within a
+normal paragraph. For example:
+
+    Use the `printf()` function.
+
+will produce:
+
+    <p>Use the <code>printf()</code> function.</p>
+
+To include a literal backtick character within a code span, you can use
+multiple backticks as the opening and closing delimiters:
+
+    ``There is a literal backtick (`) here.``
+
+which will produce this:
+
+    <p><code>There is a literal backtick (`) here.</code></p>
+
+The backtick delimiters surrounding a code span may include spaces --
+one after the opening, one before the closing. This allows you to place
+literal backtick characters at the beginning or end of a code span:
+
+	A single backtick in a code span: `` ` ``
+
+	A backtick-delimited string in a code span: `` `foo` ``
+
+will produce:
+
+	<p>A single backtick in a code span: <code>`</code></p>
+
+	<p>A backtick-delimited string in a code span: <code>`foo`</code></p>
+
+With a code span, ampersands and angle brackets are encoded as HTML
+entities automatically, which makes it easy to include example HTML
+tags. Markdown will turn this:
+
+    Please don't use any `<blink>` tags.
+
+into:
+
+    <p>Please don't use any <code>&lt;blink&gt;</code> tags.</p>
+
+You can write this:
+
+    `&#8212;` is the decimal-encoded equivalent of `&mdash;`.
+
+to produce:
+
+    <p><code>&amp;#8212;</code> is the decimal-encoded
+    equivalent of <code>&amp;mdash;</code>.</p>
+
+
+
+<h3 id="img">Images</h3>
+
+Admittedly, it's fairly difficult to devise a "natural" syntax for
+placing images into a plain text document format.
+
+Markdown uses an image syntax that is intended to resemble the syntax
+for links, allowing for two styles: *inline* and *reference*.
+
+Inline image syntax looks like this:
+
+    ![Alt text](/path/to/img.jpg)
+
+    ![Alt text](/path/to/img.jpg "Optional title")
+
+That is:
+
+*   An exclamation mark: `!`;
+*   followed by a set of square brackets, containing the `alt`
+    attribute text for the image;
+*   followed by a set of parentheses, containing the URL or path to
+    the image, and an optional `title` attribute enclosed in double
+    or single quotes.
+
+Reference-style image syntax looks like this:
+
+    ![Alt text][id]
+
+Where "id" is the name of a defined image reference. Image references
+are defined using syntax identical to link references:
+
+    [id]: url/to/image  "Optional title attribute"
+
+As of this writing, Markdown has no syntax for specifying the
+dimensions of an image; if this is important to you, you can simply
+use regular HTML `<img>` tags.
+
+
+* * *
+
+
+<h2 id="misc">Miscellaneous</h2>
+
+<h3 id="autolink">Automatic Links</h3>
+
+Markdown supports a shortcut style for creating "automatic" links for URLs and email addresses: simply surround the URL or email address with angle brackets. What this means is that if you want to show the actual text of a URL or email address, and also have it be a clickable link, you can do this:
+
+    <http://example.com/>
+
+Markdown will turn this into:
+
+    <a href="http://example.com/">http://example.com/</a>
+
+Automatic links for email addresses work similarly, except that
+Markdown will also perform a bit of randomized decimal and hex
+entity-encoding to help obscure your address from address-harvesting
+spambots. For example, Markdown will turn this:
+
+    <address@example.com>
+
+into something like this:
+
+    <a href="&#x6D;&#x61;i&#x6C;&#x74;&#x6F;:&#x61;&#x64;&#x64;&#x72;&#x65;
+    &#115;&#115;&#64;&#101;&#120;&#x61;&#109;&#x70;&#x6C;e&#x2E;&#99;&#111;
+    &#109;">&#x61;&#x64;&#x64;&#x72;&#x65;&#115;&#115;&#64;&#101;&#120;&#x61;
+    &#109;&#x70;&#x6C;e&#x2E;&#99;&#111;&#109;</a>
+
+which will render in a browser as a clickable link to "address@example.com".
+
+(This sort of entity-encoding trick will indeed fool many, if not
+most, address-harvesting bots, but it definitely won't fool all of
+them. It's better than nothing, but an address published in this way
+will probably eventually start receiving spam.)
+
+
+
+<h3 id="backslash">Backslash Escapes</h3>
+
+Markdown allows you to use backslash escapes to generate literal
+characters which would otherwise have special meaning in Markdown's
+formatting syntax. For example, if you wanted to surround a word with
+literal asterisks (instead of an HTML `<em>` tag), you can backslashes
+before the asterisks, like this:
+
+    \*literal asterisks\*
+
+Markdown provides backslash escapes for the following characters:
+
+    \   backslash
+    `   backtick
+    *   asterisk
+    _   underscore
+    {}  curly braces
+    []  square brackets
+    ()  parentheses
+    #   hash mark
+	+	plus sign
+	-	minus sign (hyphen)
+    .   dot
+    !   exclamation mark
+
diff --git a/pom.xml b/pom.xml
index f19d48c..bff883f 100644
--- a/pom.xml
+++ b/pom.xml
@@ -14,9 +14,7 @@
   See the License for the specific language governing permissions and
   limitations under the License.
   -->
-
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
     <modelVersion>4.0.0</modelVersion>
     <parent>
         <groupId>org.tautua.markdownpapers</groupId>
@@ -32,5 +30,7 @@
         <module>parent</module>
         <module>core</module>
         <module>cli</module>
+        <module>doxia-module</module>
+        <module>www</module>
     </modules>
 </project>
diff --git a/www/pom.xml b/www/pom.xml
new file mode 100644
index 0000000..cea1ef1
--- /dev/null
+++ b/www/pom.xml
@@ -0,0 +1,71 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Copyright 2010 the original author or authors.
+
+  Licensed under the Apache License, Version 2.0 (the "License");
+  you may not use this file except in compliance with the License.
+  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+  -->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.tautua.markdownpapers</groupId>
+        <artifactId>markdownpapers-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../parent/pom.xml</relativePath>
+    </parent>
+    <groupId>org.tautua.markdownpapers</groupId>
+    <artifactId>markdownpapers-site</artifactId>
+    <packaging>pom</packaging>
+    <name>MarkdownPapers Site</name>
+    <distributionManagement>
+        <site>
+            <id>MarkdownPapers.site</id>
+            <name>MarkdownPapers Site</name>
+            <url>scp://tautua.org/var/sites/markdown.tautua.org</url>
+        </site>
+    </distributionManagement>
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-site-plugin</artifactId>
+                <version>3.0-beta-3</version>
+                <configuration>
+                    <reportPlugins>
+                        <plugin>
+                            <groupId>org.apache.maven.plugins</groupId>
+                            <artifactId>maven-project-info-reports-plugin</artifactId>
+                            <version>2.2</version>
+                            <configuration>
+                                <dependencyDetailsEnabled>false</dependencyDetailsEnabled>
+                                <dependencyLocationsEnabled>false</dependencyLocationsEnabled>
+                            </configuration>
+                            <reports>
+                                <report>license</report>
+                                <report>project-team</report>
+                            </reports>
+                        </plugin>
+                    </reportPlugins>
+                </configuration>
+                <dependencies>
+                    <dependency>
+                        <groupId>org.tautua.markdownpapers</groupId>
+                        <artifactId>markdownpapers-doxia-module</artifactId>
+                        <version>${project.version}</version>
+                    </dependency>
+                </dependencies>
+            </plugin>
+        </plugins>
+    </build>
+</project>
diff --git a/www/src/site/markdown/doxia-module.md b/www/src/site/markdown/doxia-module.md
new file mode 100644
index 0000000..dbdb7f6
--- /dev/null
+++ b/www/src/site/markdown/doxia-module.md
@@ -0,0 +1,49 @@
+MarkdownPapers and doxia
+========================
+
+[Doxia] is a content generation framework, supporting a variety of markup languages, MarkdownPapers provides a
+doxia module that enables writing content in markdown format.
+
+
+Write all your docs in **src/site/markdown/** with **md** as file extension, for the moment you have to built from the
+[source code][Repo] since it hasn't been released. Then you have to configure your maven-site-plugin and include
+markdownpapers-doxia-module as dependency.
+
+    ...
+    <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-site-plugin</artifactId>
+        <version>3.0-beta-3</version>
+        <configuration>
+            <reportPlugins>
+                <plugin>
+                    <groupId>org.apache.maven.plugins</groupId>
+                    <artifactId>maven-project-info-reports-plugin</artifactId>
+                    <version>2.2</version>
+                    <configuration>
+                        <dependencyDetailsEnabled>false</dependencyDetailsEnabled>
+                        <dependencyLocationsEnabled>false</dependencyLocationsEnabled>
+                    </configuration>
+                    <reports>
+                        <report>license</report>
+                        <report>project-team</report>
+                    </reports>
+                </plugin>
+            </reportPlugins>
+        </configuration>
+        <dependencies>
+            <dependency>
+                <groupId>org.tautua.markdownpapers</groupId>
+                <artifactId>markdownpapers-doxia-module</artifactId>
+                <version>${use latest}</version>
+            </dependency>
+        </dependencies>
+    </plugin>
+    ...
+
+
+
+
+
+[Doxia]: http://maven.apache.org/doxia/doxia/index.html
+[Repo]: http://github.com/lruiz/MarkdownPapers-doxia-module
\ No newline at end of file
diff --git a/www/src/site/markdown/index.md b/www/src/site/markdown/index.md
new file mode 100644
index 0000000..2ee4518
--- /dev/null
+++ b/www/src/site/markdown/index.md
@@ -0,0 +1,49 @@
+Hello World !
+
+What is MarkdownPapers?
+=======================
+
+MarkdownPapers is a java implementation of Markdown language created by [John Gruber] which provides
+an easy-to-read, easy-to-write plain text format that takes many cues from existing conventions for
+marking up plain text in email.
+
+This implementation consist in parser built from a [JAVACC] grammar definition that produces an
+abstract syntax tree ([AST]) where transformations are performed following the [Visitor Pattern].
+
+Quick example
+-------------
+
+The most prominent component would be org.tautua.markdownpapers.Markdown which receives a java.io.Reader
+(input content) and java.io.Writer (output).
+
+    Reader in = new FileReader("in.md");
+    Writer out = new FileWriter("out.html");
+
+    Markdown md = new Markdown();
+    md.transform(in, out);
+
+And if you need to handle the AST by your own...
+
+    Reader in = new FileReader("in.md");
+    Visitor v = new HtmlEmitter();
+    Parser parser = new Parser(in);
+
+    Document doc = parser.parse();
+    doc.accept(v);
+
+Maven dependency
+----------------
+
+You can add markdonwpapers to your project as dependency for immediate use :).
+
+    <dependency>
+        <groupId>org.tautua.markdownpapers</groupId>
+        <artifactId>markdownpapers-core</artifactId>
+        <version>${use latest}</version>
+    </dependency>
+
+
+[John Gruber]: http://daringfireball.net/projects/markdown
+[JAVACC]: http://javacc.java.net
+[AST]: http://en.wikipedia.org/wiki/Abstract_syntax_tree
+[Visitor Pattern]: http://en.wikipedia.org/wiki/Visitor_pattern
diff --git a/www/src/site/resources/images/Logo.png b/www/src/site/resources/images/Logo.png
new file mode 100644
index 0000000..86f1f62
--- /dev/null
+++ b/www/src/site/resources/images/Logo.png
Binary files differ
diff --git a/www/src/site/site.xml b/www/src/site/site.xml
new file mode 100644
index 0000000..247fb41
--- /dev/null
+++ b/www/src/site/site.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="utf-8"?>
+<project name="MarkdownPapers - markdown java implementation">
+    <skin>
+        <groupId>org.tautua.maven.skins</groupId>
+        <artifactId>tautua-default-skin</artifactId>
+        <version>1.0</version>
+    </skin>
+    <bannerLeft>
+        <name>Markdown</name>
+        <src>images/Logo.png</src>
+        <href>http://markdown.tautua.org/</href>
+    </bannerLeft>
+    <body>
+        <head>
+            <meta name="description" content="markdownpapers, markdown parser and transformer java implementation"/>
+            <meta name="keywords" content="java,parser,transformer,ast,javacc,doxia,maven"/>
+            <script type="text/javascript">
+                var _gaq = _gaq || [];
+                _gaq.push(['_setAccount', 'UA-18182963-2']);
+                _gaq.push(['_trackPageview']);
+
+                (function() {
+                var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+                ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') +
+                '.google-analytics.com/ga.js';
+                var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+                })();
+            </script>
+        </head>
+
+        <menu name="Documentation" inherit="top">
+            <item name="Introduction" href="index.html" title="Introduction"/>
+            <item name="Doxia Module" href="doxia-module.html"/>
+            <item name="JavaCC Grammar" href="https://github.com/lruiz/MarkdownPapers/blob/master/core/src/main/jjtree/Markdown.jjt"/>
+            <item name="Download" href="https://github.com/lruiz/MarkdownPapers/downloads"/>
+        </menu>
+        <menu name="Development">
+            <item name="Source Code" href="https://github.com/lruiz/MarkdownPapers"/>
+            <item name="Issues" href="https://github.com/lruiz/MarkdownPapers/issues"/>
+            <item name="People" href="team-list.html"/>
+            <item name="License" href="license.html"/>
+        </menu>
+    </body>
+</project>