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: .
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.