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