Author: ltheussl Date: Wed Oct 10 05:40:08 2007 New Revision: 583455 URL: http://svn.apache.org/viewvc?rev=583455&view=rev Log: Clean up text handling by parsers: emit separate text events for newlines. Trim comments. The xdoc module now passes the identity test :)
Modified: maven/doxia/doxia/trunk/doxia-modules/doxia-module-docbook-simple/src/main/java/org/apache/maven/doxia/module/docbook/DocBookParser.java maven/doxia/doxia/trunk/doxia-modules/doxia-module-xdoc/src/main/java/org/apache/maven/doxia/module/xdoc/XdocParser.java maven/doxia/doxia/trunk/doxia-modules/doxia-module-xdoc/src/main/java/org/apache/maven/doxia/module/xdoc/XdocSink.java maven/doxia/doxia/trunk/doxia-modules/doxia-module-xdoc/src/test/resources/test.xml maven/doxia/doxia/trunk/doxia-modules/doxia-module-xhtml/src/main/java/org/apache/maven/doxia/module/xhtml/XhtmlParser.java maven/doxia/doxia/trunk/doxia-modules/doxia-module-xhtml/src/test/resources/test.xhtml Modified: maven/doxia/doxia/trunk/doxia-modules/doxia-module-docbook-simple/src/main/java/org/apache/maven/doxia/module/docbook/DocBookParser.java URL: http://svn.apache.org/viewvc/maven/doxia/doxia/trunk/doxia-modules/doxia-module-docbook-simple/src/main/java/org/apache/maven/doxia/module/docbook/DocBookParser.java?rev=583455&r1=583454&r2=583455&view=diff ============================================================================== --- maven/doxia/doxia/trunk/doxia-modules/doxia-module-docbook-simple/src/main/java/org/apache/maven/doxia/module/docbook/DocBookParser.java (original) +++ maven/doxia/doxia/trunk/doxia-modules/doxia-module-docbook-simple/src/main/java/org/apache/maven/doxia/module/docbook/DocBookParser.java Wed Oct 10 05:40:08 2007 @@ -23,6 +23,7 @@ import org.apache.maven.doxia.parser.AbstractXmlParser; import org.apache.maven.doxia.sink.Sink; +import org.codehaus.plexus.util.StringUtils; import org.codehaus.plexus.util.xml.pull.XmlPullParser; import org.codehaus.plexus.util.xml.pull.XmlPullParserException; @@ -685,9 +686,15 @@ { String text = parser.getText(); - if ( !"".equals( text.trim() ) ) + if ( StringUtils.isNotEmpty( text.trim() ) ) { - sink.text( text ); + // emit separate text events for different lines + String[] lines = StringUtils.split( text, EOL ); + + for ( int i = 0; i < lines.length; i++ ) + { + sink.text( lines[i] ); + } } } @@ -712,7 +719,7 @@ } else { - sink.comment( text ); + sink.comment( text.trim() ); } } Modified: maven/doxia/doxia/trunk/doxia-modules/doxia-module-xdoc/src/main/java/org/apache/maven/doxia/module/xdoc/XdocParser.java URL: http://svn.apache.org/viewvc/maven/doxia/doxia/trunk/doxia-modules/doxia-module-xdoc/src/main/java/org/apache/maven/doxia/module/xdoc/XdocParser.java?rev=583455&r1=583454&r2=583455&view=diff ============================================================================== --- maven/doxia/doxia/trunk/doxia-modules/doxia-module-xdoc/src/main/java/org/apache/maven/doxia/module/xdoc/XdocParser.java (original) +++ maven/doxia/doxia/trunk/doxia-modules/doxia-module-xdoc/src/main/java/org/apache/maven/doxia/module/xdoc/XdocParser.java Wed Oct 10 05:40:08 2007 @@ -669,9 +669,15 @@ { String text = parser.getText(); - if ( !"".equals( text.trim() ) ) + if ( StringUtils.isNotEmpty( text.trim() ) ) { - sink.text( text ); + // emit separate text events for different lines + String[] lines = StringUtils.split( text, EOL ); + + for ( int i = 0; i < lines.length; i++ ) + { + sink.text( lines[i] ); + } } } @@ -703,7 +709,7 @@ } else { - sink.comment( text ); + sink.comment( text.trim() ); } } Modified: maven/doxia/doxia/trunk/doxia-modules/doxia-module-xdoc/src/main/java/org/apache/maven/doxia/module/xdoc/XdocSink.java URL: http://svn.apache.org/viewvc/maven/doxia/doxia/trunk/doxia-modules/doxia-module-xdoc/src/main/java/org/apache/maven/doxia/module/xdoc/XdocSink.java?rev=583455&r1=583454&r2=583455&view=diff ============================================================================== --- maven/doxia/doxia/trunk/doxia-modules/doxia-module-xdoc/src/main/java/org/apache/maven/doxia/module/xdoc/XdocSink.java (original) +++ maven/doxia/doxia/trunk/doxia-modules/doxia-module-xdoc/src/main/java/org/apache/maven/doxia/module/xdoc/XdocSink.java Wed Oct 10 05:40:08 2007 @@ -1062,13 +1062,13 @@ } /** - * Write HTML escaped text to output, not preserving white space. + * Write HTML escaped text to output, preserving white space. * * @param text The text to write. */ protected void content( String text ) { - out.write( escapeHTML( text ), false ); + out.write( escapeHTML( text ), true ); } /** Modified: maven/doxia/doxia/trunk/doxia-modules/doxia-module-xdoc/src/test/resources/test.xml URL: http://svn.apache.org/viewvc/maven/doxia/doxia/trunk/doxia-modules/doxia-module-xdoc/src/test/resources/test.xml?rev=583455&r1=583454&r2=583455&view=diff ============================================================================== --- maven/doxia/doxia/trunk/doxia-modules/doxia-module-xdoc/src/test/resources/test.xml (original) +++ maven/doxia/doxia/trunk/doxia-modules/doxia-module-xdoc/src/test/resources/test.xml Wed Oct 10 05:40:08 2007 @@ -109,7 +109,20 @@ <p>Non breaking space.</p> - <p>Escaped special characters: ~, =, -, +, *, [, ], <, >, {, }, \.</p> + <p>Escaped special characters:<br /> + ~<br /> + =<br /> + -<br /> + +<br /> + *<br /> + [<br /> + ]<br /> + <<br /> + ><br /> + {<br /> + }<br /> + \ + </p> <p>Copyright symbol: © © ©.</p> Modified: maven/doxia/doxia/trunk/doxia-modules/doxia-module-xhtml/src/main/java/org/apache/maven/doxia/module/xhtml/XhtmlParser.java URL: http://svn.apache.org/viewvc/maven/doxia/doxia/trunk/doxia-modules/doxia-module-xhtml/src/main/java/org/apache/maven/doxia/module/xhtml/XhtmlParser.java?rev=583455&r1=583454&r2=583455&view=diff ============================================================================== --- maven/doxia/doxia/trunk/doxia-modules/doxia-module-xhtml/src/main/java/org/apache/maven/doxia/module/xhtml/XhtmlParser.java (original) +++ maven/doxia/doxia/trunk/doxia-modules/doxia-module-xhtml/src/main/java/org/apache/maven/doxia/module/xhtml/XhtmlParser.java Wed Oct 10 05:40:08 2007 @@ -27,6 +27,7 @@ import org.apache.maven.doxia.macro.MacroExecutionException; import org.apache.maven.doxia.parser.AbstractXmlParser; import org.apache.maven.doxia.sink.Sink; +import org.codehaus.plexus.util.StringUtils; import org.codehaus.plexus.util.xml.pull.XmlPullParser; import org.codehaus.plexus.util.xml.pull.XmlPullParserException; @@ -321,9 +322,15 @@ { String text = parser.getText(); - if ( !"".equals( text.trim() ) ) + if ( StringUtils.isNotEmpty( text.trim() ) ) { - sink.text( text ); + // emit separate text events for different lines + String[] lines = StringUtils.split( text, EOL ); + + for ( int i = 0; i < lines.length; i++ ) + { + sink.text( lines[i] ); + } } } @@ -348,7 +355,7 @@ } else { - sink.comment( text ); + sink.comment( text.trim() ); } } Modified: maven/doxia/doxia/trunk/doxia-modules/doxia-module-xhtml/src/test/resources/test.xhtml URL: http://svn.apache.org/viewvc/maven/doxia/doxia/trunk/doxia-modules/doxia-module-xhtml/src/test/resources/test.xhtml?rev=583455&r1=583454&r2=583455&view=diff ============================================================================== --- maven/doxia/doxia/trunk/doxia-modules/doxia-module-xhtml/src/test/resources/test.xhtml (original) +++ maven/doxia/doxia/trunk/doxia-modules/doxia-module-xhtml/src/test/resources/test.xhtml Wed Oct 10 05:40:08 2007 @@ -102,7 +102,20 @@ <p>Non breaking space.</p> -<p>Escaped special characters: ~, =, -, +, *, [, ], <, >, {, }, \.</p> +<p>Escaped special characters:<br /> + ~<br /> + =<br /> + -<br /> + +<br /> + *<br /> + [<br /> + ]<br /> + <<br /> + ><br /> + {<br /> + }<br /> + \ +</p> <p>Copyright symbol: ©, ©, ©.</p>