Author: ltheussl
Date: Fri May 27 07:22:11 2011
New Revision: 1128181

URL: http://svn.apache.org/viewvc?rev=1128181&view=rev
Log:
[DOXIA-426] Markdown module: apply doxia-module-markdown-2.patch with some 
modifications
Submitted by: Julien Nicoulaud

Added:
    maven/sandbox/trunk/doxia/doxia-module-markdown/src/test/resources/bold.md
    maven/sandbox/trunk/doxia/doxia-module-markdown/src/test/resources/code.md
    maven/sandbox/trunk/doxia/doxia-module-markdown/src/test/resources/image.md
    maven/sandbox/trunk/doxia/doxia-module-markdown/src/test/resources/italic.md
    maven/sandbox/trunk/doxia/doxia-module-markdown/src/test/resources/link.md
    maven/sandbox/trunk/doxia/doxia-module-markdown/src/test/resources/list.md
    
maven/sandbox/trunk/doxia/doxia-module-markdown/src/test/resources/numbered-list.md
    
maven/sandbox/trunk/doxia/doxia-module-markdown/src/test/resources/paragraph.md
Removed:
    
maven/sandbox/trunk/doxia/doxia-module-markdown/src/main/java/org/apache/maven/doxia/module/markdown/MarkdownParseException.java
    
maven/sandbox/trunk/doxia/doxia-module-markdown/src/main/java/org/apache/maven/doxia/module/markdown/MarkdownSink.java
    
maven/sandbox/trunk/doxia/doxia-module-markdown/src/main/java/org/apache/maven/doxia/module/markdown/MarkdownSinkFactory.java
Modified:
    maven/sandbox/trunk/doxia/doxia-module-markdown/pom.xml
    
maven/sandbox/trunk/doxia/doxia-module-markdown/src/main/java/org/apache/maven/doxia/module/markdown/MarkdownParser.java
    
maven/sandbox/trunk/doxia/doxia-module-markdown/src/test/java/org/apache/maven/doxia/module/markdown/MarkdownParserTest.java

Modified: maven/sandbox/trunk/doxia/doxia-module-markdown/pom.xml
URL: 
http://svn.apache.org/viewvc/maven/sandbox/trunk/doxia/doxia-module-markdown/pom.xml?rev=1128181&r1=1128180&r2=1128181&view=diff
==============================================================================
--- maven/sandbox/trunk/doxia/doxia-module-markdown/pom.xml (original)
+++ maven/sandbox/trunk/doxia/doxia-module-markdown/pom.xml Fri May 27 07:22:11 
2011
@@ -52,7 +52,11 @@ under the License.
         <dependency>
             <groupId>org.pegdown</groupId>
             <artifactId>pegdown</artifactId>
-            <version>0.9.2</version>
+            <version>1.0.1</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.maven.doxia</groupId>
+            <artifactId>doxia-module-xhtml</artifactId>
         </dependency>
     </dependencies>
 

Modified: 
maven/sandbox/trunk/doxia/doxia-module-markdown/src/main/java/org/apache/maven/doxia/module/markdown/MarkdownParser.java
URL: 
http://svn.apache.org/viewvc/maven/sandbox/trunk/doxia/doxia-module-markdown/src/main/java/org/apache/maven/doxia/module/markdown/MarkdownParser.java?rev=1128181&r1=1128180&r2=1128181&view=diff
==============================================================================
--- 
maven/sandbox/trunk/doxia/doxia-module-markdown/src/main/java/org/apache/maven/doxia/module/markdown/MarkdownParser.java
 (original)
+++ 
maven/sandbox/trunk/doxia/doxia-module-markdown/src/main/java/org/apache/maven/doxia/module/markdown/MarkdownParser.java
 Fri May 27 07:22:11 2011
@@ -21,8 +21,10 @@ package org.apache.maven.doxia.module.ma
 
 import java.io.IOException;
 import java.io.Reader;
+import java.io.StringReader;
 
-import org.apache.maven.doxia.parser.AbstractTextParser;
+import org.apache.maven.doxia.module.xhtml.XhtmlParser;
+import org.apache.maven.doxia.parser.ParseException;
 import org.apache.maven.doxia.sink.Sink;
 
 import org.codehaus.plexus.util.IOUtil;
@@ -40,7 +42,7 @@ import org.pegdown.PegDownProcessor;
  * @since 1.3
  */
 public class MarkdownParser
-    extends AbstractTextParser
+    extends XhtmlParser
 {
 
     /**
@@ -57,16 +59,17 @@ public class MarkdownParser
     /**
      * {@inheritDoc}
      */
+    @Override
     public void parse( Reader reader, Sink sink )
-        throws MarkdownParseException
+        throws ParseException
     {
         try
         {
-            sink.rawText( PEGDOWN_PROCESSOR.markdownToHtml( IOUtil.toString( 
reader ) ) );
+            super.parse( new StringReader( "<html><body>" + 
PEGDOWN_PROCESSOR.markdownToHtml( IOUtil.toString( reader ) ) + 
"</body></html>" ), sink );
         }
         catch ( IOException e )
         {
-            throw new MarkdownParseException( "Failed reading Markdown source 
document", e );
+            throw new ParseException( "Failed reading Markdown source 
document", e );
         }
     }
 }

Modified: 
maven/sandbox/trunk/doxia/doxia-module-markdown/src/test/java/org/apache/maven/doxia/module/markdown/MarkdownParserTest.java
URL: 
http://svn.apache.org/viewvc/maven/sandbox/trunk/doxia/doxia-module-markdown/src/test/java/org/apache/maven/doxia/module/markdown/MarkdownParserTest.java?rev=1128181&r1=1128180&r2=1128181&view=diff
==============================================================================
--- 
maven/sandbox/trunk/doxia/doxia-module-markdown/src/test/java/org/apache/maven/doxia/module/markdown/MarkdownParserTest.java
 (original)
+++ 
maven/sandbox/trunk/doxia/doxia-module-markdown/src/test/java/org/apache/maven/doxia/module/markdown/MarkdownParserTest.java
 Fri May 27 07:22:11 2011
@@ -19,8 +19,17 @@ package org.apache.maven.doxia.module.ma
  * under the License.
  */
 
+import java.io.Reader;
+
+import java.util.Iterator;
+
 import org.apache.maven.doxia.parser.AbstractParserTest;
+import org.apache.maven.doxia.parser.ParseException;
 import org.apache.maven.doxia.parser.Parser;
+import org.apache.maven.doxia.sink.SinkEventElement;
+import org.apache.maven.doxia.sink.SinkEventTestingSink;
+
+import org.codehaus.plexus.util.IOUtil;
 
 /**
  * Tests for {@link MarkdownParser}.
@@ -64,4 +73,179 @@ public class MarkdownParserTest
     {
         return MarkdownSiteModule.FILE_EXTENSION;
     }
+
+    /**
+     * Assert the paragraph sink event is fired when parsing "paragraph.md".
+     *
+     * @throws Exception if the event list is not correct when parsing the 
document.
+     */
+    public void testParagraphSinkEvent() throws Exception
+    {
+        Iterator<SinkEventElement> it = parseFileToEventTestingSink( 
"paragraph" ).getEventList().iterator();
+
+        assertEquals( "body", ( it.next() ).getName() );
+        assertEquals( "paragraph", ( it.next() ).getName() );
+        assertEquals( "text", ( it.next() ).getName() );
+        assertEquals( "paragraph_", ( it.next() ).getName() );
+        assertEquals( "body_", ( it.next() ).getName() );
+
+        assertFalse( it.hasNext() );
+    }
+
+    /**
+     * Assert the bold sink event is fired when parsing "bold.md".
+     *
+     * @throws Exception if the event list is not correct when parsing the 
document.
+     */
+    public void testBoldSinkEvent() throws Exception
+    {
+        Iterator<SinkEventElement> it = parseFileToEventTestingSink( "bold" 
).getEventList().iterator();
+
+        assertEquals( "body", ( it.next() ).getName() );
+        assertEquals( "paragraph", ( it.next() ).getName() );
+        assertEquals( "bold", ( it.next() ).getName() );
+        assertEquals( "text", ( it.next() ).getName() );
+        assertEquals( "bold_", ( it.next() ).getName() );
+        assertEquals( "paragraph_", ( it.next() ).getName() );
+        assertEquals( "body_", ( it.next() ).getName() );
+
+        assertFalse( it.hasNext() );
+    }
+
+    /**
+     * Assert the italic sink event is fired when parsing "italic.md".
+     *
+     * @throws Exception if the event list is not correct when parsing the 
document.
+     */
+    public void testItalicSinkEvent() throws Exception
+    {
+        Iterator<SinkEventElement> it = parseFileToEventTestingSink( "italic" 
).getEventList().iterator();
+
+        assertEquals( "body", ( it.next() ).getName() );
+        assertEquals( "paragraph", ( it.next() ).getName() );
+        assertEquals( "italic", ( it.next() ).getName() );
+        assertEquals( "text", ( it.next() ).getName() );
+        assertEquals( "italic_", ( it.next() ).getName() );
+        assertEquals( "paragraph_", ( it.next() ).getName() );
+        assertEquals( "body_", ( it.next() ).getName() );
+
+        assertFalse( it.hasNext() );
+    }
+
+    /**
+     * Assert the code sink event is fired when parsing "code.md".
+     *
+     * @throws Exception if the event list is not correct when parsing the 
document.
+     */
+    public void testCodeSinkEvent() throws Exception
+    {
+        Iterator<SinkEventElement> it = parseFileToEventTestingSink( "code" 
).getEventList().iterator();
+
+        assertEquals( "body", ( it.next() ).getName() );
+        assertEquals( "paragraph", ( it.next() ).getName() );
+        assertEquals( "text", ( it.next() ).getName() );
+        assertEquals( "paragraph_", ( it.next() ).getName() );
+        assertEquals( "text", ( it.next() ).getName() );
+        assertEquals( "verbatim", ( it.next() ).getName() );
+        assertEquals( "monospaced", ( it.next() ).getName() );
+        assertEquals( "text", ( it.next() ).getName() );
+        assertEquals( "monospaced_", ( it.next() ).getName() );
+        assertEquals( "verbatim_", ( it.next() ).getName() );
+        assertEquals( "body_", ( it.next() ).getName() );
+
+        assertFalse( it.hasNext() );
+    }
+
+    /**
+     * Assert the image sink event is fired when parsing "image.md".
+     *
+     * @throws Exception if the event list is not correct when parsing the 
document.
+     */
+    public void testImageSinkEvent() throws Exception
+    {
+        Iterator<SinkEventElement> it = parseFileToEventTestingSink( "image" 
).getEventList().iterator();
+
+        assertEquals( "body", ( it.next() ).getName() );
+        assertEquals( "paragraph", ( it.next() ).getName() );
+        assertEquals( "text", ( it.next() ).getName() );
+        assertEquals( "figureGraphics", ( it.next() ).getName() );
+        assertEquals( "text", ( it.next() ).getName() );
+        assertEquals( "paragraph_", ( it.next() ).getName() );
+        assertEquals( "body_", ( it.next() ).getName() );
+
+        assertFalse( it.hasNext() );
+    }
+
+    /**
+     * Assert the link sink event is fired when parsing "link.md".
+     *
+     * @throws Exception if the event list is not correct when parsing the 
document.
+     */
+    public void testLinkSinkEvent() throws Exception
+    {
+        Iterator<SinkEventElement> it = parseFileToEventTestingSink( "link" 
).getEventList().iterator();
+
+        assertEquals( "body", ( it.next() ).getName() );
+        assertEquals( "paragraph", ( it.next() ).getName() );
+        assertEquals( "text", ( it.next() ).getName() );
+        assertEquals( "link", ( it.next() ).getName() );
+        assertEquals( "text", ( it.next() ).getName() );
+        assertEquals( "link_", ( it.next() ).getName() );
+        assertEquals( "text", ( it.next() ).getName() );
+        assertEquals( "paragraph_", ( it.next() ).getName() );
+        assertEquals( "body_", ( it.next() ).getName() );
+
+        assertFalse( it.hasNext() );
+    }
+
+    /**
+     * Assert the numbered list sink event is fired when parsing 
"numbered-list.md".
+     *
+     * @throws Exception if the event list is not correct when parsing the 
document.
+     */
+    public void testNumberedListSinkEvent() throws Exception
+    {
+        Iterator<SinkEventElement> it = parseFileToEventTestingSink( 
"numbered-list" ).getEventList().iterator();
+
+        assertEquals( "body", ( it.next() ).getName() );
+        assertEquals( "numberedList", ( it.next() ).getName() );
+        assertEquals( "text", ( it.next() ).getName() );
+        assertEquals( "numberedListItem", ( it.next() ).getName() );
+        assertEquals( "text", ( it.next() ).getName() );
+        assertEquals( "numberedListItem_", ( it.next() ).getName() );
+        assertEquals( "text", ( it.next() ).getName() );
+        assertEquals( "numberedListItem", ( it.next() ).getName() );
+        assertEquals( "text", ( it.next() ).getName() );
+        assertEquals( "numberedListItem_", ( it.next() ).getName() );
+        assertEquals( "text", ( it.next() ).getName() );
+        assertEquals( "numberedList_", ( it.next() ).getName() );
+        assertEquals( "body_", ( it.next() ).getName() );
+
+        assertFalse( it.hasNext() );
+    }
+
+    /**
+     * Parse the file and return a {@link SinkEventTestingSink}.
+     *
+     * @param file the file to parse with {@link #parser}.
+     * @return a sink to test parsing events.
+     * @throws ParseException if the document parsing failed.
+     */
+    protected SinkEventTestingSink parseFileToEventTestingSink( String file ) 
throws ParseException
+    {
+        Reader reader = null;
+        SinkEventTestingSink sink = null;
+        try
+        {
+            reader = getTestReader( file );
+            sink = new SinkEventTestingSink();
+            parser.parse( reader, sink );
+        }
+        finally
+        {
+            IOUtil.close( reader );
+        }
+
+        return sink;
+    }
 }

Added: 
maven/sandbox/trunk/doxia/doxia-module-markdown/src/test/resources/bold.md
URL: 
http://svn.apache.org/viewvc/maven/sandbox/trunk/doxia/doxia-module-markdown/src/test/resources/bold.md?rev=1128181&view=auto
==============================================================================
--- maven/sandbox/trunk/doxia/doxia-module-markdown/src/test/resources/bold.md 
(added)
+++ maven/sandbox/trunk/doxia/doxia-module-markdown/src/test/resources/bold.md 
Fri May 27 07:22:11 2011
@@ -0,0 +1 @@
+**This is italic text.**

Added: 
maven/sandbox/trunk/doxia/doxia-module-markdown/src/test/resources/code.md
URL: 
http://svn.apache.org/viewvc/maven/sandbox/trunk/doxia/doxia-module-markdown/src/test/resources/code.md?rev=1128181&view=auto
==============================================================================
--- maven/sandbox/trunk/doxia/doxia-module-markdown/src/test/resources/code.md 
(added)
+++ maven/sandbox/trunk/doxia/doxia-module-markdown/src/test/resources/code.md 
Fri May 27 07:22:11 2011
@@ -0,0 +1,3 @@
+Here is some code:
+
+    mvn clean package

Added: 
maven/sandbox/trunk/doxia/doxia-module-markdown/src/test/resources/image.md
URL: 
http://svn.apache.org/viewvc/maven/sandbox/trunk/doxia/doxia-module-markdown/src/test/resources/image.md?rev=1128181&view=auto
==============================================================================
--- maven/sandbox/trunk/doxia/doxia-module-markdown/src/test/resources/image.md 
(added)
+++ maven/sandbox/trunk/doxia/doxia-module-markdown/src/test/resources/image.md 
Fri May 27 07:22:11 2011
@@ -0,0 +1 @@
+This is an image: ![example](http://example).

Added: 
maven/sandbox/trunk/doxia/doxia-module-markdown/src/test/resources/italic.md
URL: 
http://svn.apache.org/viewvc/maven/sandbox/trunk/doxia/doxia-module-markdown/src/test/resources/italic.md?rev=1128181&view=auto
==============================================================================
--- 
maven/sandbox/trunk/doxia/doxia-module-markdown/src/test/resources/italic.md 
(added)
+++ 
maven/sandbox/trunk/doxia/doxia-module-markdown/src/test/resources/italic.md 
Fri May 27 07:22:11 2011
@@ -0,0 +1 @@
+*This is italic text.*

Added: 
maven/sandbox/trunk/doxia/doxia-module-markdown/src/test/resources/link.md
URL: 
http://svn.apache.org/viewvc/maven/sandbox/trunk/doxia/doxia-module-markdown/src/test/resources/link.md?rev=1128181&view=auto
==============================================================================
--- maven/sandbox/trunk/doxia/doxia-module-markdown/src/test/resources/link.md 
(added)
+++ maven/sandbox/trunk/doxia/doxia-module-markdown/src/test/resources/link.md 
Fri May 27 07:22:11 2011
@@ -0,0 +1 @@
+This is a [link](http://example).

Added: 
maven/sandbox/trunk/doxia/doxia-module-markdown/src/test/resources/list.md
URL: 
http://svn.apache.org/viewvc/maven/sandbox/trunk/doxia/doxia-module-markdown/src/test/resources/list.md?rev=1128181&view=auto
==============================================================================
--- maven/sandbox/trunk/doxia/doxia-module-markdown/src/test/resources/list.md 
(added)
+++ maven/sandbox/trunk/doxia/doxia-module-markdown/src/test/resources/list.md 
Fri May 27 07:22:11 2011
@@ -0,0 +1,2 @@
+* List item
+* List item
\ No newline at end of file

Added: 
maven/sandbox/trunk/doxia/doxia-module-markdown/src/test/resources/numbered-list.md
URL: 
http://svn.apache.org/viewvc/maven/sandbox/trunk/doxia/doxia-module-markdown/src/test/resources/numbered-list.md?rev=1128181&view=auto
==============================================================================
--- 
maven/sandbox/trunk/doxia/doxia-module-markdown/src/test/resources/numbered-list.md
 (added)
+++ 
maven/sandbox/trunk/doxia/doxia-module-markdown/src/test/resources/numbered-list.md
 Fri May 27 07:22:11 2011
@@ -0,0 +1,2 @@
+1. List item
+2. List item

Added: 
maven/sandbox/trunk/doxia/doxia-module-markdown/src/test/resources/paragraph.md
URL: 
http://svn.apache.org/viewvc/maven/sandbox/trunk/doxia/doxia-module-markdown/src/test/resources/paragraph.md?rev=1128181&view=auto
==============================================================================
--- 
maven/sandbox/trunk/doxia/doxia-module-markdown/src/test/resources/paragraph.md 
(added)
+++ 
maven/sandbox/trunk/doxia/doxia-module-markdown/src/test/resources/paragraph.md 
Fri May 27 07:22:11 2011
@@ -0,0 +1 @@
+This is a paragraph.


Reply via email to