You are viewing a plain text version of this content. The canonical link for it is here.
Posted to doxia-commits@maven.apache.org by lt...@apache.org on 2008/03/11 15:00:31 UTC
svn commit: r635929 - in /maven/doxia:
doxia-sitetools/trunk/doxia-site-renderer/src/test/java/org/apache/maven/doxia/siterenderer/
doxia-sitetools/trunk/doxia-site-renderer/src/test/site/xdoc/
doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxi...
Author: ltheussl
Date: Tue Mar 11 07:00:28 2008
New Revision: 635929
URL: http://svn.apache.org/viewvc?rev=635929&view=rev
Log:
[DOXIA-163, DOXIA-164] Add support for underscore, strike-through, sub- and super-script.
Modified:
maven/doxia/doxia-sitetools/trunk/doxia-site-renderer/src/test/java/org/apache/maven/doxia/siterenderer/DefaultSiteRendererTest.java
maven/doxia/doxia-sitetools/trunk/doxia-site-renderer/src/test/site/xdoc/attributes.xml
maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/parser/AbstractXmlParser.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-sink-api/src/main/java/org/apache/maven/doxia/sink/Sink.java
maven/doxia/doxia/trunk/doxia-sink-api/src/main/java/org/apache/maven/doxia/sink/SinkEventAttributes.java
Modified: maven/doxia/doxia-sitetools/trunk/doxia-site-renderer/src/test/java/org/apache/maven/doxia/siterenderer/DefaultSiteRendererTest.java
URL: http://svn.apache.org/viewvc/maven/doxia/doxia-sitetools/trunk/doxia-site-renderer/src/test/java/org/apache/maven/doxia/siterenderer/DefaultSiteRendererTest.java?rev=635929&r1=635928&r2=635929&view=diff
==============================================================================
--- maven/doxia/doxia-sitetools/trunk/doxia-site-renderer/src/test/java/org/apache/maven/doxia/siterenderer/DefaultSiteRendererTest.java (original)
+++ maven/doxia/doxia-sitetools/trunk/doxia-site-renderer/src/test/java/org/apache/maven/doxia/siterenderer/DefaultSiteRendererTest.java Tue Mar 11 07:00:28 2008
@@ -42,6 +42,7 @@
import com.gargoylesoftware.htmlunit.html.HtmlTableRow;
import com.gargoylesoftware.htmlunit.html.HtmlUnorderedList;
+import com.gargoylesoftware.htmlunit.html.UnknownHtmlElement;
import org.apache.maven.doxia.site.decoration.DecorationModel;
import org.apache.maven.doxia.site.decoration.io.xpp3.DecorationXpp3Reader;
@@ -71,6 +72,7 @@
private Renderer renderer;
/**
+ * @throws java.lang.Exception
* @see org.codehaus.plexus.PlexusTestCase#setUp()
*/
protected void setUp()
@@ -85,6 +87,7 @@
}
/**
+ * @throws java.lang.Exception
* @see org.codehaus.plexus.PlexusTestCase#tearDown()
*/
protected void tearDown()
@@ -106,17 +109,17 @@
DecorationModel decoration = new DecorationXpp3Reader()
.read( new FileReader( getTestFile( "src/test/site/site.xml" ) ) );
- SiteRenderingContext context = new SiteRenderingContext();
- context.setTemplateName( "default-site.vm" );
- context.setTemplateClassLoader( getClassLoader() );
- context.setUsingDefaultTemplate( true );
+ SiteRenderingContext ctxt = new SiteRenderingContext();
+ ctxt.setTemplateName( "default-site.vm" );
+ ctxt.setTemplateClassLoader( getClassLoader() );
+ ctxt.setUsingDefaultTemplate( true );
Map templateProp = new HashMap();
templateProp.put( "outputEncoding", "UTF-8" );
- context.setTemplateProperties( templateProp );
- context.setDecoration( decoration );
- context.addSiteDirectory( getTestFile( "src/test/site" ) );
+ ctxt.setTemplateProperties( templateProp );
+ ctxt.setDecoration( decoration );
+ ctxt.addSiteDirectory( getTestFile( "src/test/site" ) );
- renderer.render( renderer.locateDocumentFiles( context ).values(), context, getTestFile( OUTPUT ) );
+ renderer.render( renderer.locateDocumentFiles( ctxt ).values(), ctxt, getTestFile( OUTPUT ) );
// ----------------------------------------------------------------------
// Verify specific pages
@@ -154,7 +157,7 @@
// HtmlUnit
WebClient webClient = new WebClient();
- HtmlPage page = (HtmlPage) webClient.getPage( nestedItems.toURL() );
+ HtmlPage page = (HtmlPage) webClient.getPage( nestedItems.toURI().toURL() );
assertNotNull( page );
HtmlElement element = page.getHtmlElementById( "contentBox" );
@@ -197,59 +200,55 @@
HtmlUnorderedList ul = (HtmlUnorderedList) elementIterator.next();
assertNotNull( ul );
- // TODO: how can this be?
- //assertEquals( ul.getFirstChild().asText().trim(), "" );
HtmlListItem li = (HtmlListItem) elementIterator.next();
assertNotNull( li );
- assertEquals( li.getFirstChild().asText().trim(), "Item 1." );
+ assertEquals( li.getFirstDomChild().asText().trim(), "Item 1." );
ul = (HtmlUnorderedList) elementIterator.next();
assertNotNull( ul );
- //assertEquals( ul.getFirstChild().asText().trim(), "" );
li = (HtmlListItem) elementIterator.next();
assertNotNull( li );
p = (HtmlParagraph) elementIterator.next();
assertNotNull( p );
- assertEquals( p.getFirstChild().asText().trim(), "Item 11." );
+ assertEquals( p.getFirstDomChild().asText().trim(), "Item 11." );
li = (HtmlListItem) elementIterator.next();
assertNotNull( li );
p = (HtmlParagraph) elementIterator.next();
assertNotNull( p );
- assertEquals( p.getFirstChild().asText().trim(), "Item 12." );
+ assertEquals( p.getFirstDomChild().asText().trim(), "Item 12." );
li = (HtmlListItem) elementIterator.next();
assertNotNull( li );
- assertEquals( li.getFirstChild().asText().trim(), "Item 13." );
+ assertEquals( li.getFirstDomChild().asText().trim(), "Item 13." );
li = (HtmlListItem) elementIterator.next();
assertNotNull( li );
- assertEquals( li.getFirstChild().asText().trim(), "Item 14." );
+ assertEquals( li.getFirstDomChild().asText().trim(), "Item 14." );
li = (HtmlListItem) elementIterator.next();
assertNotNull( li );
- assertEquals( li.getFirstChild().asText().trim(), "Item 2." );
+ assertEquals( li.getFirstDomChild().asText().trim(), "Item 2." );
li = (HtmlListItem) elementIterator.next();
assertNotNull( li );
- assertEquals( li.getFirstChild().asText().trim(), "Item 3." );
+ assertEquals( li.getFirstDomChild().asText().trim(), "Item 3." );
li = (HtmlListItem) elementIterator.next();
assertNotNull( li );
- assertEquals( li.getFirstChild().asText().trim(), "Item 4." );
+ assertEquals( li.getFirstDomChild().asText().trim(), "Item 4." );
ul = (HtmlUnorderedList) elementIterator.next();
assertNotNull( ul );
- //assertEquals( ul.getFirstChild().asText().trim(), "" );
li = (HtmlListItem) elementIterator.next();
assertNotNull( li );
- assertEquals( li.getFirstChild().asText().trim(), "Item 41." );
+ assertEquals( li.getFirstDomChild().asText().trim(), "Item 41." );
li = (HtmlListItem) elementIterator.next();
assertNotNull( li );
- assertEquals( li.getFirstChild().asText().trim(), "Item 42." );
+ assertEquals( li.getFirstDomChild().asText().trim(), "Item 42." );
li = (HtmlListItem) elementIterator.next();
assertNotNull( li );
- assertEquals( li.getFirstChild().asText().trim(), "Item 43." );
+ assertEquals( li.getFirstDomChild().asText().trim(), "Item 43." );
li = (HtmlListItem) elementIterator.next();
assertNotNull( li );
- assertEquals( li.getFirstChild().asText().trim(), "Item 44." );
+ assertEquals( li.getFirstDomChild().asText().trim(), "Item 44." );
p = (HtmlParagraph) elementIterator.next();
assertNotNull( p );
@@ -287,54 +286,51 @@
HtmlOrderedList ol = (HtmlOrderedList) elementIterator.next();
assertNotNull( ol );
- //assertEquals( ol.getFirstChild().asText().trim(), "" );
li = (HtmlListItem) elementIterator.next();
assertNotNull( li );
- assertEquals( li.getFirstChild().asText().trim(), "Item 1." );
+ assertEquals( li.getFirstDomChild().asText().trim(), "Item 1." );
ol = (HtmlOrderedList) elementIterator.next();
assertNotNull( ol );
- //assertEquals( ol.getFirstChild().asText().trim(), "" );
li = (HtmlListItem) elementIterator.next();
assertNotNull( li );
- assertEquals( li.getFirstChild().asText().trim(), "Item 11." );
+ assertEquals( li.getFirstDomChild().asText().trim(), "Item 11." );
li = (HtmlListItem) elementIterator.next();
assertNotNull( li );
- assertEquals( li.getFirstChild().asText().trim(), "Item 12." );
+ assertEquals( li.getFirstDomChild().asText().trim(), "Item 12." );
li = (HtmlListItem) elementIterator.next();
assertNotNull( li );
- assertEquals( li.getFirstChild().asText().trim(), "Item 13." );
+ assertEquals( li.getFirstDomChild().asText().trim(), "Item 13." );
li = (HtmlListItem) elementIterator.next();
assertNotNull( li );
- assertEquals( li.getFirstChild().asText().trim(), "Item 14." );
+ assertEquals( li.getFirstDomChild().asText().trim(), "Item 14." );
li = (HtmlListItem) elementIterator.next();
assertNotNull( li );
- assertEquals( li.getFirstChild().asText().trim(), "Item 2." );
+ assertEquals( li.getFirstDomChild().asText().trim(), "Item 2." );
li = (HtmlListItem) elementIterator.next();
assertNotNull( li );
- assertEquals( li.getFirstChild().asText().trim(), "Item 3." );
+ assertEquals( li.getFirstDomChild().asText().trim(), "Item 3." );
li = (HtmlListItem) elementIterator.next();
assertNotNull( li );
- assertEquals( li.getFirstChild().asText().trim(), "Item 4." );
+ assertEquals( li.getFirstDomChild().asText().trim(), "Item 4." );
ol = (HtmlOrderedList) elementIterator.next();
assertNotNull( ol );
- //assertEquals( ol.getFirstChild().asText().trim(), "" );
li = (HtmlListItem) elementIterator.next();
assertNotNull( li );
- assertEquals( li.getFirstChild().asText().trim(), "Item 41." );
+ assertEquals( li.getFirstDomChild().asText().trim(), "Item 41." );
li = (HtmlListItem) elementIterator.next();
assertNotNull( li );
- assertEquals( li.getFirstChild().asText().trim(), "Item 42." );
+ assertEquals( li.getFirstDomChild().asText().trim(), "Item 42." );
li = (HtmlListItem) elementIterator.next();
assertNotNull( li );
- assertEquals( li.getFirstChild().asText().trim(), "Item 43." );
+ assertEquals( li.getFirstDomChild().asText().trim(), "Item 43." );
li = (HtmlListItem) elementIterator.next();
assertNotNull( li );
- assertEquals( li.getFirstChild().asText().trim(), "Item 44." );
+ assertEquals( li.getFirstDomChild().asText().trim(), "Item 44." );
p = (HtmlParagraph) elementIterator.next();
assertNotNull( p );
@@ -372,31 +368,29 @@
HtmlDefinitionList dl = (HtmlDefinitionList) elementIterator.next();
assertNotNull( dl );
- //assertEquals( dl.getFirstChild().asText().trim(), "" );
HtmlDefinitionTerm dt = (HtmlDefinitionTerm) elementIterator.next();
assertNotNull( dt );
- assertEquals( dt.getFirstChild().asText().trim(), "Term 1." );
+ assertEquals( dt.getFirstDomChild().asText().trim(), "Term 1." );
HtmlDefinitionDescription dd = (HtmlDefinitionDescription) elementIterator.next();
assertNotNull( dd );
- assertEquals( dd.getFirstChild().asText().trim(), "Description 1." );
+ assertEquals( dd.getFirstDomChild().asText().trim(), "Description 1." );
dt = (HtmlDefinitionTerm) elementIterator.next();
assertNotNull( dt );
- assertEquals( dt.getFirstChild().asText().trim(), "Term 2." );
+ assertEquals( dt.getFirstDomChild().asText().trim(), "Term 2." );
dd = (HtmlDefinitionDescription) elementIterator.next();
assertNotNull( dd );
- assertEquals( dd.getFirstChild().asText().trim(), "Description 2." );
+ assertEquals( dd.getFirstDomChild().asText().trim(), "Description 2." );
dl = (HtmlDefinitionList) elementIterator.next();
assertNotNull( dl );
- //assertEquals( dl.getFirstChild().asText().trim(), "" );
dt = (HtmlDefinitionTerm) elementIterator.next();
assertNotNull( dt );
- assertEquals( dt.getFirstChild().asText().trim(), "Term 21." );
+ assertEquals( dt.getFirstDomChild().asText().trim(), "Term 21." );
dd = (HtmlDefinitionDescription) elementIterator.next();
assertNotNull( dd );
- assertEquals( dd.getFirstChild().asText().trim(), "Description 21." );
+ assertEquals( dd.getFirstDomChild().asText().trim(), "Description 21." );
p = (HtmlParagraph) elementIterator.next();
assertNotNull( p );
@@ -432,7 +426,7 @@
// HtmlUnit
WebClient webClient = new WebClient();
- HtmlPage page = (HtmlPage) webClient.getPage( multipleblock.toURL() );
+ HtmlPage page = (HtmlPage) webClient.getPage( multipleblock.toURI().toURL() );
assertNotNull( page );
HtmlElement element = page.getHtmlElementById( "contentBox" );
@@ -472,11 +466,10 @@
HtmlUnorderedList ul = (HtmlUnorderedList) elementIterator.next();
assertNotNull( ul );
- //assertEquals( ul.getFirstChild().asText().trim(), "" );
HtmlListItem li = (HtmlListItem) elementIterator.next();
assertNotNull( li );
- assertEquals( li.getFirstChild().asText().trim(), "list1" );
+ assertEquals( li.getFirstDomChild().asText().trim(), "list1" );
// ----------------------------------------------------------------------
// Paragraph
@@ -492,11 +485,10 @@
ul = (HtmlUnorderedList) elementIterator.next();
assertNotNull( ul );
- //assertEquals( ul.getFirstChild().asText().trim(), "" );
li = (HtmlListItem) elementIterator.next();
assertNotNull( li );
- assertEquals( li.getFirstChild().asText().trim(), "list1" );
+ assertEquals( li.getFirstDomChild().asText().trim(), "list1" );
// ----------------------------------------------------------------------
// Paragraph
@@ -512,14 +504,13 @@
ul = (HtmlUnorderedList) elementIterator.next();
assertNotNull( ul );
- //assertEquals( ul.getFirstChild().asText().trim(), "" );
li = (HtmlListItem) elementIterator.next();
assertNotNull( li );
p = (HtmlParagraph) elementIterator.next();
assertNotNull( p );
- assertEquals( p.getFirstChild().asText().trim(), "list1" );
+ assertEquals( p.getFirstDomChild().asText().trim(), "list1" );
assertFalse( elementIterator.hasNext() );
}
@@ -550,7 +541,7 @@
// HtmlUnit
WebClient webClient = new WebClient();
- HtmlPage page = (HtmlPage) webClient.getPage( entityTest.toURL() );
+ HtmlPage page = (HtmlPage) webClient.getPage( entityTest.toURI().toURL() );
assertNotNull( page );
HtmlElement element = page.getHtmlElementById( "contentBox" );
@@ -632,7 +623,7 @@
final List collectedAlerts = new ArrayList();
webClient.setAlertHandler( new CollectingAlertHandler( collectedAlerts ) );
- HtmlPage page = (HtmlPage) webClient.getPage( jsTest.toURL() );
+ HtmlPage page = (HtmlPage) webClient.getPage( jsTest.toURI().toURL() );
assertNotNull( page );
HtmlElement element = page.getHtmlElementById( "contentBox" );
@@ -682,7 +673,7 @@
// HtmlUnit
WebClient webClient = new WebClient();
- HtmlPage page = (HtmlPage) webClient.getPage( faqTest.toURL() );
+ HtmlPage page = (HtmlPage) webClient.getPage( faqTest.toURI().toURL() );
assertNotNull( page );
HtmlElement element = page.getHtmlElementById( "contentBox" );
@@ -711,10 +702,10 @@
assertEquals( element.asText().trim(), "Contributing" );
HtmlOrderedList ol = (HtmlOrderedList) elementIterator.next();
- assertEquals( ol.getFirstChild().asText().trim(), "One stupid question & a silly answer?" );
+ assertEquals( ol.getFirstDomChild().asText().trim(), "One stupid question & a silly answer?" );
HtmlListItem li = (HtmlListItem) elementIterator.next();
- assertEquals( li.getFirstChild().asText().trim(), "One stupid question & a silly answer?" );
+ assertEquals( li.getFirstDomChild().asText().trim(), "One stupid question & a silly answer?" );
a = (HtmlAnchor) elementIterator.next();
assertEquals( a.getAttributeValue( "href" ), "#stupid-question" );
@@ -729,11 +720,11 @@
assertEquals( element.asText().trim(), "Using Maven" );
ol = (HtmlOrderedList) elementIterator.next();
- assertEquals( ol.getFirstChild().asText().trim(), "How do I disable a report on my site?" );
+ assertEquals( ol.getFirstDomChild().asText().trim(), "How do I disable a report on my site?" );
li = (HtmlListItem) elementIterator.next();
assertNotNull( li );
- assertEquals( li.getFirstChild().asText().trim(), "How do I disable a report on my site?" );
+ assertEquals( li.getFirstDomChild().asText().trim(), "How do I disable a report on my site?" );
a = (HtmlAnchor) elementIterator.next();
assertEquals( a.getAttributeValue( "href" ), "#disable-reports" );
@@ -750,7 +741,7 @@
HtmlDefinitionList dl = (HtmlDefinitionList) elementIterator.next();
HtmlDefinitionTerm dt = (HtmlDefinitionTerm) elementIterator.next();
- assertEquals( dt.getFirstChild().asText().trim(), "One stupid question & a silly answer?" );
+ assertEquals( dt.getFirstDomChild().asText().trim(), "One stupid question & a silly answer?" );
a = (HtmlAnchor) elementIterator.next();
assertEquals( a.getAttributeValue( "name" ), "stupid-question" );
@@ -807,7 +798,7 @@
dl = (HtmlDefinitionList) elementIterator.next();
dt = (HtmlDefinitionTerm) elementIterator.next();
- assertEquals( dt.getFirstChild().asText().trim(), "How do I disable a report on my site?" );
+ assertEquals( dt.getFirstDomChild().asText().trim(), "How do I disable a report on my site?" );
a = (HtmlAnchor) elementIterator.next();
assertEquals( a.getAttributeValue( "name" ), "disable-reports" );
@@ -856,7 +847,7 @@
// HtmlUnit
WebClient webClient = new WebClient();
- HtmlPage page = (HtmlPage) webClient.getPage( attributes.toURL() );
+ HtmlPage page = (HtmlPage) webClient.getPage( attributes.toURI().toURL() );
assertNotNull( page );
HtmlElement element = page.getHtmlElementById( "contentBox" );
@@ -924,5 +915,23 @@
assertEquals( "left", th.getAttributeValue( "align" ) );
assertEquals( "2", th.getAttributeValue( "rowspan" ) );
assertEquals( "middle", th.getAttributeValue( "valign" ) );
+
+ HtmlTableDataCell td = (HtmlTableDataCell) elementIterator.next();
+ td = (HtmlTableDataCell) elementIterator.next();
+ tr = (HtmlTableRow) elementIterator.next();
+ td = (HtmlTableDataCell) elementIterator.next();
+ td = (HtmlTableDataCell) elementIterator.next();
+
+ p = (HtmlParagraph) elementIterator.next();
+ assertNotNull( p );
+
+ UnknownHtmlElement unk = (UnknownHtmlElement) elementIterator.next();
+ assertEquals( "u", unk.getTagName());
+ unk = (UnknownHtmlElement) elementIterator.next();
+ assertEquals( "s", unk.getTagName());
+ unk = (UnknownHtmlElement) elementIterator.next();
+ assertEquals( "sub", unk.getTagName());
+ unk = (UnknownHtmlElement) elementIterator.next();
+ assertEquals( "sup", unk.getTagName());
}
}
Modified: maven/doxia/doxia-sitetools/trunk/doxia-site-renderer/src/test/site/xdoc/attributes.xml
URL: http://svn.apache.org/viewvc/maven/doxia/doxia-sitetools/trunk/doxia-site-renderer/src/test/site/xdoc/attributes.xml?rev=635929&r1=635928&r2=635929&view=diff
==============================================================================
--- maven/doxia/doxia-sitetools/trunk/doxia-site-renderer/src/test/site/xdoc/attributes.xml (original)
+++ maven/doxia/doxia-sitetools/trunk/doxia-site-renderer/src/test/site/xdoc/attributes.xml Tue Mar 11 07:00:28 2008
@@ -23,6 +23,10 @@
<td valign="bottom">555 77 855</td>
</tr>
</table>
+ <p>
+ <!-- DOXIA-163, DOXIA 164 -->
+ <u>underline</u> <s>strike-through</s> <sub>subscript</sub> <sup>superscript</sup>
+ </p>
</section>
</body>
</document>
Modified: maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/parser/AbstractXmlParser.java
URL: http://svn.apache.org/viewvc/maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/parser/AbstractXmlParser.java?rev=635929&r1=635928&r2=635929&view=diff
==============================================================================
--- maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/parser/AbstractXmlParser.java (original)
+++ maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/parser/AbstractXmlParser.java Tue Mar 11 07:00:28 2008
@@ -90,7 +90,7 @@
* Converts the attributes of the current start tag of the given parser to a SinkEventAttributeSet.
*
* @param parser A parser.
- * @param return a SinkEventAttributeSet or null if the current parser event is not a start tag.
+ * @return a SinkEventAttributeSet or null if the current parser event is not a start tag.
*/
protected SinkEventAttributeSet getAttributesFromParser( XmlPullParser parser )
{
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=635929&r1=635928&r2=635929&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 Tue Mar 11 07:00:28 2008
@@ -62,6 +62,9 @@
/** Used to recognize the case of img inside figure. */
private boolean inFigure;
+ /** Decoration properties, eg for texts. */
+ private String decoration;
+
/**
* <p>
* Goes through a common list of possible html start tags. These include only tags that can go into
@@ -129,6 +132,24 @@
sink.sectionTitle( Sink.SECTION_LEVEL_5, attribs );
}
+ else if ( parser.getName().equals( Tag.U.toString() ) )
+ {
+ this.decoration = "underline";
+ }
+ else if ( parser.getName().equals( Tag.S.toString() )
+ || parser.getName().equals( Tag.STRIKE.toString() )
+ || parser.getName().equals( "del" ) )
+ {
+ this.decoration = "line-through";
+ }
+ else if ( parser.getName().equals( Tag.SUB.toString() ) )
+ {
+ this.decoration = "sub";
+ }
+ else if ( parser.getName().equals( Tag.SUP.toString() ) )
+ {
+ this.decoration = "sup";
+ }
else if ( parser.getName().equals( Tag.P.toString() ) )
{
if ( !inFigure )
@@ -395,6 +416,15 @@
sink.paragraph_();
}
}
+ else if ( parser.getName().equals( Tag.U.toString() )
+ || parser.getName().equals( Tag.S.toString() )
+ || parser.getName().equals( Tag.STRIKE.toString() )
+ || parser.getName().equals( "del" )
+ || parser.getName().equals( Tag.SUB.toString() )
+ || parser.getName().equals( Tag.SUP.toString() ) )
+ {
+ this.decoration = null;
+ }
else if ( parser.getName().equals( Tag.DIV.toString() ) )
{
if ( inFigure )
@@ -589,6 +619,20 @@
*/
if ( StringUtils.isNotEmpty( text ) )
{
+ SinkEventAttributeSet atts = new SinkEventAttributeSet();
+
+ if ( StringUtils.isNotEmpty( decoration ) )
+ {
+ if ( "underline".equals( decoration ) || "line-through".equals( decoration ) )
+ {
+ atts.addAttribute( SinkEventAttributeSet.DECORATION, decoration);
+ }
+ else if ( "sub".equals( decoration ) || "sup".equals( decoration ) )
+ {
+ atts.addAttribute( SinkEventAttributeSet.VALIGN, decoration);
+ }
+ }
+
// Emit separate text events for different lines, e.g. the input
// "\nLine1\n\nLine2\n\n" should deliver the event sequence "\n", "Line1\n", "\n", "Line2\n", "\n".
// In other words, the concatenation of the text events must deliver the input sequence.
@@ -597,12 +641,12 @@
for ( int i = 0; i < lines.length - 1; i++ )
{
- sink.text( lines[i] + EOL );
+ sink.text( lines[i] + EOL, atts );
}
if ( lines[lines.length - 1].length() > 0 )
{
- sink.text( lines[lines.length - 1] );
+ sink.text( lines[lines.length - 1], atts );
}
}
}
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=635929&r1=635928&r2=635929&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 Tue Mar 11 07:00:28 2008
@@ -173,7 +173,7 @@
}
/**
- * @param verb an evenTableRow flag.
+ * @param even an evenTableRow flag.
*/
protected void setEvenTableRow( boolean even )
{
@@ -1366,6 +1366,9 @@
/**
* {@link StructureSinkUtils#isExternalLink(String)} also treats links to other documents as
* external links, those should not have a class="externalLink" attribute.
+ * @param href the link.
+ * @return true if the link starts with "http:/", "https:/", "ftp:/",
+ * "mailto:" or "file:/".
*/
protected boolean isExternalLink( String href )
{
@@ -1380,6 +1383,8 @@
* Legacy: treat links to other html documents as external links.
* Note that links to other file formats (images, pdf) will still be broken,
* links to other documents should always start with "./" or "../".
+ * @param href the link.
+ * @return true if the link points to another source document.
*/
protected boolean isExternalHtml( String href )
{
@@ -1586,6 +1591,52 @@
else
{
content( text );
+ }
+ }
+
+ public void text ( String text, SinkEventAttributes attributes )
+ {
+ if ( attributes == null )
+ {
+ text( text );
+ }
+ else
+ {
+ if ( attributes.containsAttribute(SinkEventAttributes.DECORATION, "underline") )
+ {
+ writeStartTag( Tag.U );
+ }
+ if ( attributes.containsAttribute(SinkEventAttributes.DECORATION, "line-through") )
+ {
+ writeStartTag( Tag.S );
+ }
+ if ( attributes.containsAttribute(SinkEventAttributes.VALIGN, "sub") )
+ {
+ writeStartTag( Tag.SUB );
+ }
+ if ( attributes.containsAttribute(SinkEventAttributes.VALIGN, "sup") )
+ {
+ writeStartTag( Tag.SUP );
+ }
+
+ text( text );
+
+ if ( attributes.containsAttribute(SinkEventAttributes.VALIGN, "sup") )
+ {
+ writeEndTag( Tag.SUP );
+ }
+ if ( attributes.containsAttribute(SinkEventAttributes.VALIGN, "sub") )
+ {
+ writeEndTag( Tag.SUB );
+ }
+ if ( attributes.containsAttribute(SinkEventAttributes.DECORATION, "line-through") )
+ {
+ writeEndTag( Tag.S );
+ }
+ if ( attributes.containsAttribute(SinkEventAttributes.DECORATION, "underline") )
+ {
+ writeEndTag( Tag.U );
+ }
}
}
Modified: maven/doxia/doxia/trunk/doxia-sink-api/src/main/java/org/apache/maven/doxia/sink/Sink.java
URL: http://svn.apache.org/viewvc/maven/doxia/doxia/trunk/doxia-sink-api/src/main/java/org/apache/maven/doxia/sink/Sink.java?rev=635929&r1=635928&r2=635929&view=diff
==============================================================================
--- maven/doxia/doxia/trunk/doxia-sink-api/src/main/java/org/apache/maven/doxia/sink/Sink.java (original)
+++ maven/doxia/doxia/trunk/doxia-sink-api/src/main/java/org/apache/maven/doxia/sink/Sink.java Tue Mar 11 07:00:28 2008
@@ -872,7 +872,9 @@
/**
* Adds a text.
- * Supported attributes are the {@link SinkEventAttributes base attributes}.
+ * Supported attributes are the {@link SinkEventAttributes base attributes}
+ * plus VALIGN (values "sub", "sup") and DECORATION (values "underline",
+ * "overline", "line-through").
*
* @param text The text to write.
* @param attributes A set of {@link SinkEventAttributes}.
Modified: maven/doxia/doxia/trunk/doxia-sink-api/src/main/java/org/apache/maven/doxia/sink/SinkEventAttributes.java
URL: http://svn.apache.org/viewvc/maven/doxia/doxia/trunk/doxia-sink-api/src/main/java/org/apache/maven/doxia/sink/SinkEventAttributes.java?rev=635929&r1=635928&r2=635929&view=diff
==============================================================================
--- maven/doxia/doxia/trunk/doxia-sink-api/src/main/java/org/apache/maven/doxia/sink/SinkEventAttributes.java (original)
+++ maven/doxia/doxia/trunk/doxia-sink-api/src/main/java/org/apache/maven/doxia/sink/SinkEventAttributes.java Tue Mar 11 07:00:28 2008
@@ -279,7 +279,8 @@
String SCOPE = "scope";
/**
- * Specifies the vertical alignment of an element.
+ * Specifies the vertical alignment of an element. Generally accepted values
+ * are "top", "baseline", "middle", "bottom", "sup", "sub".
*/
String VALIGN = "valign";
@@ -289,4 +290,11 @@
* Whether to draw a border, or box around an element.
*/
String BOXED = "boxed";
+
+ // text
+ /**
+ * Specifies a decoration for an element. Generally accepted values
+ * are "underline", "overline", "line-through".
+ */
+ String DECORATION = "decoration";
}