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&#160;breaking&#160;space.</p>
 
-    <p>Escaped special characters: ~, =, -, +, *, [, ], &lt;, &gt;, {, }, 
\.</p>
+    <p>Escaped special characters:<br />
+      ~<br />
+      =<br />
+      -<br />
+      +<br />
+      *<br />
+      [<br />
+      ]<br />
+      &lt;<br />
+      &gt;<br />
+      {<br />
+      }<br />
+      \
+    </p>
 
     <p>Copyright symbol: &#169; &#169; &#169;.</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&#160;breaking&#160;space.</p>
 
-<p>Escaped special characters: ~, =, -, +, *, [, ], &lt;, &gt;, {, }, \.</p>
+<p>Escaped special characters:<br />
+  ~<br />
+  =<br />
+  -<br />
+  +<br />
+  *<br />
+  [<br />
+  ]<br />
+  &lt;<br />
+  &gt;<br />
+  {<br />
+  }<br />
+  \
+</p>
 
 <p>Copyright symbol: ©, ©, ©.</p>
 


Reply via email to