Author: ltheussl
Date: Wed Oct 10 12:25:52 2007
New Revision: 583585
URL: http://svn.apache.org/viewvc?rev=583585&view=rev
Log:
Fix ordered lists, use style instead of type.
Modified:
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/main/java/org/apache/maven/doxia/module/xhtml/XhtmlSink.java
maven/doxia/doxia/trunk/doxia-modules/doxia-module-xhtml/src/test/java/org/apache/maven/doxia/module/xhtml/XhtmlSinkTest.java
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=583585&r1=583584&r2=583585&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 12:25:52 2007
@@ -66,6 +66,9 @@
*/
private static final String ANCHOR = "anchor";
+ /** Used for nested lists. */
+ private int orderedListDepth = 0;
+
/** [EMAIL PROTECTED] */
protected void handleStartTag( XmlPullParser parser, Sink sink )
throws XmlPullParserException, MacroExecutionException
@@ -121,11 +124,48 @@
}
else if ( parser.getName().equals( Tag.OL.toString() ) )
{
- sink.numberedList( Sink.NUMBERING_DECIMAL );
+ int numbering = Sink.NUMBERING_DECIMAL;
+
+ // this will have to be generalized if we handle styles
+ String style = parser.getAttributeValue( null,
Attribute.STYLE.toString() );
+
+ if ( style != null )
+ {
+ if ( "list-style-type: upper-alpha".equals( style ) )
+ {
+ numbering = Sink.NUMBERING_UPPER_ALPHA;
+ }
+ else if ( "list-style-type: lower-alpha".equals( style ) )
+ {
+ numbering = Sink.NUMBERING_LOWER_ALPHA;
+ }
+ else if ( "list-style-type: upper-roman".equals( style ) )
+ {
+ numbering = Sink.NUMBERING_UPPER_ROMAN;
+ }
+ else if ( "list-style-type: lower-roman".equals( style ) )
+ {
+ numbering = Sink.NUMBERING_LOWER_ROMAN;
+ }
+ else if ( "list-style-type: decimal".equals( style ) )
+ {
+ numbering = Sink.NUMBERING_DECIMAL;
+ }
+ }
+
+ sink.numberedList( numbering );
+ orderedListDepth++;
}
else if ( parser.getName().equals( Tag.LI.toString() ) )
{
- sink.listItem();
+ if ( orderedListDepth == 0 )
+ {
+ sink.listItem();
+ }
+ else
+ {
+ sink.numberedListItem();
+ }
}
else if ( parser.getName().equals( Tag.HEAD.toString() ) )
{
@@ -262,10 +302,18 @@
else if ( parser.getName().equals( Tag.OL.toString() ) )
{
sink.numberedList_();
+ orderedListDepth--;
}
else if ( parser.getName().equals( Tag.LI.toString() ) )
{
- sink.listItem_();
+ if ( orderedListDepth == 0 )
+ {
+ sink.listItem_();
+ }
+ else
+ {
+ sink.numberedListItem_();
+ }
}
else if ( parser.getName().equals( Tag.HEAD.toString() ) )
{
Modified:
maven/doxia/doxia/trunk/doxia-modules/doxia-module-xhtml/src/main/java/org/apache/maven/doxia/module/xhtml/XhtmlSink.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/XhtmlSink.java?rev=583585&r1=583584&r2=583585&view=diff
==============================================================================
---
maven/doxia/doxia/trunk/doxia-modules/doxia-module-xhtml/src/main/java/org/apache/maven/doxia/module/xhtml/XhtmlSink.java
(original)
+++
maven/doxia/doxia/trunk/doxia-modules/doxia-module-xhtml/src/main/java/org/apache/maven/doxia/module/xhtml/XhtmlSink.java
Wed Oct 10 12:25:52 2007
@@ -489,33 +489,35 @@
}
/**
+ * The default list style depends on the numbering.
+ *
* [EMAIL PROTECTED]
* @see javax.swing.text.html.HTML.Tag#OL
*/
public void numberedList( int numbering )
{
- String type;
+ String style;
switch ( numbering )
{
- case Sink.NUMBERING_LOWER_ALPHA:
- type = "a";
+ case NUMBERING_UPPER_ALPHA:
+ style = "upper-alpha";
break;
- case Sink.NUMBERING_UPPER_ALPHA:
- type = "A";
+ case NUMBERING_LOWER_ALPHA:
+ style = "lower-alpha";
break;
- case Sink.NUMBERING_LOWER_ROMAN:
- type = "i";
+ case NUMBERING_UPPER_ROMAN:
+ style = "upper-roman";
break;
- case Sink.NUMBERING_UPPER_ROMAN:
- type = "I";
+ case NUMBERING_LOWER_ROMAN:
+ style = "lower-roman";
break;
- case Sink.NUMBERING_DECIMAL:
+ case NUMBERING_DECIMAL:
default:
- type = "1";
+ style = "decimal";
}
MutableAttributeSet att = new SimpleAttributeSet();
- att.addAttribute( Attribute.TYPE, type );
+ att.addAttribute( Attribute.STYLE, "list-style-type: " + style );
writeStartTag( Tag.OL, att );
}
Modified:
maven/doxia/doxia/trunk/doxia-modules/doxia-module-xhtml/src/test/java/org/apache/maven/doxia/module/xhtml/XhtmlSinkTest.java
URL:
http://svn.apache.org/viewvc/maven/doxia/doxia/trunk/doxia-modules/doxia-module-xhtml/src/test/java/org/apache/maven/doxia/module/xhtml/XhtmlSinkTest.java?rev=583585&r1=583584&r2=583585&view=diff
==============================================================================
---
maven/doxia/doxia/trunk/doxia-modules/doxia-module-xhtml/src/test/java/org/apache/maven/doxia/module/xhtml/XhtmlSinkTest.java
(original)
+++
maven/doxia/doxia/trunk/doxia-modules/doxia-module-xhtml/src/test/java/org/apache/maven/doxia/module/xhtml/XhtmlSinkTest.java
Wed Oct 10 12:25:52 2007
@@ -138,7 +138,7 @@
/** [EMAIL PROTECTED] */
protected String getNumberedListBlock( String item )
{
- return "<ol type=\"i\"><li>" + item + "</li></ol>";
+ return "<ol style=\"list-style-type: lower-roman\"><li>" + item +
"</li></ol>";
}
/** [EMAIL PROTECTED] */