Author: ltheussl Date: Sat Jun 13 09:15:56 2009 New Revision: 784352 URL: http://svn.apache.org/viewvc?rev=784352&view=rev Log: Symmetrize unknown events. Filter table frame attribute.
Modified: maven/doxia/doxia/trunk/doxia-modules/doxia-module-docbook-simple/src/main/java/org/apache/maven/doxia/module/docbook/DocBookParser.java Modified: maven/doxia/doxia/trunk/doxia-modules/doxia-module-docbook-simple/src/main/java/org/apache/maven/doxia/module/docbook/DocBookParser.java URL: http://svn.apache.org/viewvc/maven/doxia/doxia/trunk/doxia-modules/doxia-module-docbook-simple/src/main/java/org/apache/maven/doxia/module/docbook/DocBookParser.java?rev=784352&r1=784351&r2=784352&view=diff ============================================================================== --- maven/doxia/doxia/trunk/doxia-modules/doxia-module-docbook-simple/src/main/java/org/apache/maven/doxia/module/docbook/DocBookParser.java (original) +++ maven/doxia/doxia/trunk/doxia-modules/doxia-module-docbook-simple/src/main/java/org/apache/maven/doxia/module/docbook/DocBookParser.java Sat Jun 13 09:15:56 2009 @@ -60,6 +60,8 @@ private boolean ignore; + private boolean simpleTag; + /** * A selective stack of parent elements */ @@ -158,6 +160,7 @@ } SinkEventAttributeSet attribs = getAttributesFromParser( parser ); + simpleTag = parser.isEmptyElementTag(); if ( parser.getName().equals( SimplifiedDocbookMarkup.ARTICLE_TAG.toString() ) ) { @@ -211,7 +214,14 @@ { if ( !ignorable( parser.getName() ) ) { - handleUnknown( parser, sink, HtmlMarkup.TAG_TYPE_START ); + if ( simpleTag ) + { + handleUnknown( parser, sink, HtmlMarkup.TAG_TYPE_SIMPLE ); + } + else + { + handleUnknown( parser, sink, HtmlMarkup.TAG_TYPE_START ); + } } } } @@ -287,6 +297,7 @@ else if ( parser.getName().equals( SimplifiedDocbookMarkup.IMAGEOBJECT_TAG.toString() ) || parser.getName().equals( SimplifiedDocbookMarkup.FIGURE_TAG.toString() ) || parser.getName().equals( SimplifiedDocbookMarkup.THEAD_TAG.toString() ) + || parser.getName().equals( SimplifiedDocbookMarkup.TFOOT_TAG.toString() ) || parser.getName().equals( SimplifiedDocbookMarkup.TBODY_TAG.toString() ) ) { parent.pop(); @@ -332,14 +343,14 @@ else if ( BOLD_ELEMENTS.contains( parser.getName() ) && MONOSPACE_ELEMENTS.contains( parser.getName() ) ) { - sink.bold_(); sink.monospaced_(); + sink.bold_(); } else if ( ITALIC_ELEMENTS.contains( parser.getName() ) && MONOSPACE_ELEMENTS.contains( parser.getName() ) ) { - sink.italic_(); sink.monospaced_(); + sink.italic_(); } else if ( BOLD_ELEMENTS.contains( parser.getName() ) ) { @@ -375,6 +386,10 @@ sink.link_(); } } + else if ( !simpleTag && !ignorable( parser.getName() ) ) + { + handleUnknown( parser, sink, HtmlMarkup.TAG_TYPE_END ); + } } /** {...@inheritdoc} */ @@ -669,6 +684,38 @@ private void handleTableStart( Sink sink, SinkEventAttributeSet attribs ) { + Object frame = attribs.getAttribute( SimplifiedDocbookMarkup.FRAME_ATTRIBUTE ); + if ( frame != null ) + { + String fr = frame.toString(); + if ( fr.equals( "all" ) ) + { + fr = "box"; + } + else if ( fr.equals( "bottom" ) ) + { + fr = "below"; + } + else if ( fr.equals( "none" ) ) + { + fr = "void"; + } + else if ( fr.equals( "sides" ) ) + { + fr = "vsides"; + } + else if ( fr.equals( "top" ) ) + { + fr = "above"; + } + else if ( fr.equals( "topbot" ) ) + { + fr = "hsides"; + } + + attribs.addAttribute( SimplifiedDocbookMarkup.FRAME_ATTRIBUTE, fr ); + } + sink.table( attribs ); parent.push( SimplifiedDocbookMarkup.TABLE_TAG.toString() ); @@ -913,6 +960,7 @@ handleTableStart( sink, attribs ); } else if ( name.equals( SimplifiedDocbookMarkup.THEAD_TAG.toString() ) + || name.equals( SimplifiedDocbookMarkup.TFOOT_TAG.toString() ) || name.equals( SimplifiedDocbookMarkup.TBODY_TAG.toString() ) ) { parent.push( name );