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() ); }