Author: ltheussl
Date: Thu May 28 12:43:33 2009
New Revision: 779585

URL: http://svn.apache.org/viewvc?rev=779585&view=rev
Log:
[DOXIA-326] preserve CDATA within <script>

Modified:
    
maven/doxia/doxia-sitetools/trunk/doxia-site-renderer/src/test/java/org/apache/maven/doxia/siterenderer/JavascriptVerifier.java
    
maven/doxia/doxia-sitetools/trunk/doxia-site-renderer/src/test/resources/site/xdoc/javascript.xml
    
maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/markup/HtmlMarkup.java
    
maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/parser/XhtmlBaseParser.java
    
maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/sink/XhtmlBaseSink.java
    
maven/doxia/doxia/trunk/doxia-modules/doxia-module-xdoc/src/test/java/org/apache/maven/doxia/module/xdoc/XdocParserTest.java

Modified: 
maven/doxia/doxia-sitetools/trunk/doxia-site-renderer/src/test/java/org/apache/maven/doxia/siterenderer/JavascriptVerifier.java
URL: 
http://svn.apache.org/viewvc/maven/doxia/doxia-sitetools/trunk/doxia-site-renderer/src/test/java/org/apache/maven/doxia/siterenderer/JavascriptVerifier.java?rev=779585&r1=779584&r2=779585&view=diff
==============================================================================
--- 
maven/doxia/doxia-sitetools/trunk/doxia-site-renderer/src/test/java/org/apache/maven/doxia/siterenderer/JavascriptVerifier.java
 (original)
+++ 
maven/doxia/doxia-sitetools/trunk/doxia-site-renderer/src/test/java/org/apache/maven/doxia/siterenderer/JavascriptVerifier.java
 Thu May 28 12:43:33 2009
@@ -37,7 +37,7 @@
 
 
 /**
- * 
+ * Verify javascript code.
  *
  * @author ltheussl
  * @version $Id$

Modified: 
maven/doxia/doxia-sitetools/trunk/doxia-site-renderer/src/test/resources/site/xdoc/javascript.xml
URL: 
http://svn.apache.org/viewvc/maven/doxia/doxia-sitetools/trunk/doxia-site-renderer/src/test/resources/site/xdoc/javascript.xml?rev=779585&r1=779584&r2=779585&view=diff
==============================================================================
--- 
maven/doxia/doxia-sitetools/trunk/doxia-site-renderer/src/test/resources/site/xdoc/javascript.xml
 (original)
+++ 
maven/doxia/doxia-sitetools/trunk/doxia-site-renderer/src/test/resources/site/xdoc/javascript.xml
 Thu May 28 12:43:33 2009
@@ -33,7 +33,9 @@
       <p>You should see a JavaScript alert...</p>
 
       <script type="text/javascript">
-        <![CDATA[alert("Hello!");]]>
+        //<![CDATA[
+        alert("Hello!");
+        //]]>
       </script>
 
     </section>

Modified: 
maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/markup/HtmlMarkup.java
URL: 
http://svn.apache.org/viewvc/maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/markup/HtmlMarkup.java?rev=779585&r1=779584&r2=779585&view=diff
==============================================================================
--- 
maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/markup/HtmlMarkup.java
 (original)
+++ 
maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/markup/HtmlMarkup.java
 Thu May 28 12:43:33 2009
@@ -55,6 +55,13 @@
      */
     int ENTITY_TYPE = 4;
 
+    /**
+     * A CDATA type event.
+     *
+     * @since 1.1.1.
+     */
+    int CDATA_TYPE = 5;
+
     // ----------------------------------------------------------------------
     // All XHTML 1.0 tags
     // ----------------------------------------------------------------------

Modified: 
maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/parser/XhtmlBaseParser.java
URL: 
http://svn.apache.org/viewvc/maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/parser/XhtmlBaseParser.java?rev=779585&r1=779584&r2=779585&view=diff
==============================================================================
--- 
maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/parser/XhtmlBaseParser.java
 (original)
+++ 
maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/parser/XhtmlBaseParser.java
 Thu May 28 12:43:33 2009
@@ -469,8 +469,10 @@
         /*
          * NOTE: Don't do any whitespace trimming here. Whitespace 
normalization has already been performed by the
          * parser so any whitespace that makes it here is significant.
+         *
+         * NOTE: text within script tags is ignored, scripting code should be 
embedded in CDATA.
          */
-        if ( StringUtils.isNotEmpty( text ) )
+        if ( StringUtils.isNotEmpty( text ) && !isScriptBlock() )
         {
             sink.text( text, decoration );
         }
@@ -500,7 +502,7 @@
 
         if ( isScriptBlock() )
         {
-            sink.rawText( text );
+            sink.unknown( CDATA, new Object[] {new Integer( CDATA_TYPE ), 
text}, null );
         }
         else
         {

Modified: 
maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/sink/XhtmlBaseSink.java
URL: 
http://svn.apache.org/viewvc/maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/sink/XhtmlBaseSink.java?rev=779585&r1=779584&r2=779585&view=diff
==============================================================================
--- 
maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/sink/XhtmlBaseSink.java
 (original)
+++ 
maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/sink/XhtmlBaseSink.java
 Thu May 28 12:43:33 2009
@@ -1792,6 +1792,13 @@
             return;
         }
 
+        if ( tagType == CDATA_TYPE )
+        {
+            rawText( EOL + "//<![CDATA[" + requiredParams[1] + "]]>" + EOL );
+
+            return;
+        }
+
         Tag tag = HtmlTools.getHtmlTag( name );
 
         if ( tag == null )
@@ -1814,7 +1821,7 @@
             }
             else
             {
-                throw new IllegalArgumentException( "Not a valid TAG_TYPE: " + 
tagType );
+                getLog().warn( "No type information for unknown Sink event: " 
+ name + ", ignoring!" );
             }
         }
     }

Modified: 
maven/doxia/doxia/trunk/doxia-modules/doxia-module-xdoc/src/test/java/org/apache/maven/doxia/module/xdoc/XdocParserTest.java
URL: 
http://svn.apache.org/viewvc/maven/doxia/doxia/trunk/doxia-modules/doxia-module-xdoc/src/test/java/org/apache/maven/doxia/module/xdoc/XdocParserTest.java?rev=779585&r1=779584&r2=779585&view=diff
==============================================================================
--- 
maven/doxia/doxia/trunk/doxia-modules/doxia-module-xdoc/src/test/java/org/apache/maven/doxia/module/xdoc/XdocParserTest.java
 (original)
+++ 
maven/doxia/doxia/trunk/doxia-modules/doxia-module-xdoc/src/test/java/org/apache/maven/doxia/module/xdoc/XdocParserTest.java
 Thu May 28 12:43:33 2009
@@ -381,7 +381,7 @@
 
         Iterator it = sink.getEventList().iterator();
         assertEquals( "unknown", ( (SinkEventElement) it.next() ).getName() );
-        assertEquals( "rawText", ( (SinkEventElement) it.next() ).getName() );
+        assertEquals( "unknown", ( (SinkEventElement) it.next() ).getName() );
         assertEquals( "unknown", ( (SinkEventElement) it.next() ).getName() );
         assertFalse( it.hasNext() );
     }


Reply via email to