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] */