Author: ltheussl Date: Mon Jun 8 14:39:34 2009 New Revision: 782653 URL: http://svn.apache.org/viewvc?rev=782653&view=rev Log: [DOXIA-334] Docbook parser shouldn't insert anchors for id attributes
Modified: maven/doxia/doxia/trunk/doxia-modules/doxia-module-docbook-simple/src/main/java/org/apache/maven/doxia/module/docbook/DocBookParser.java maven/doxia/doxia/trunk/doxia-modules/doxia-module-docbook-simple/src/test/java/org/apache/maven/doxia/module/docbook/DocBookParserTest.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=782653&r1=782652&r2=782653&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 Mon Jun 8 14:39:34 2009 @@ -147,9 +147,6 @@ SinkEventAttributeSet attribs = getAttributesFromParser( parser ); - // TODO: remove - handleIdAnchor( parser, sink, attribs ); - if ( parser.getName().equals( SimplifiedDocbookMarkup.ARTICLE_TAG.toString() ) ) { handleArticleStart( sink, attribs ); @@ -285,6 +282,10 @@ { handleXrefStart( sink, attribs ); } + else if ( parser.getName().equals( SimplifiedDocbookMarkup.ANCHOR_TAG.toString() ) ) + { + handleAnchorStart( sink, attribs ); + } else { if ( !ignorable( parser.getName() ) ) @@ -558,18 +559,13 @@ parent.push( name ); } - private void handleIdAnchor( XmlPullParser parser, Sink sink, SinkEventAttributeSet attribs ) + private void handleAnchorStart( Sink sink, SinkEventAttributeSet attribs ) { Object id = attribs.getAttribute( SimplifiedDocbookMarkup.ID_ATTRIBUTE ); - //catch link targets - if ( id != null && !parser.getName().equals( SimplifiedDocbookMarkup.ARTICLE_TAG.toString() ) ) - { - sink.anchor( id.toString() ); - if ( !parser.getName().equals( SimplifiedDocbookMarkup.ANCHOR_TAG.toString() ) ) - { - sink.anchor_(); - } + if ( id != null ) + { + sink.anchor( id.toString(), attribs ); } } Modified: maven/doxia/doxia/trunk/doxia-modules/doxia-module-docbook-simple/src/test/java/org/apache/maven/doxia/module/docbook/DocBookParserTest.java URL: http://svn.apache.org/viewvc/maven/doxia/doxia/trunk/doxia-modules/doxia-module-docbook-simple/src/test/java/org/apache/maven/doxia/module/docbook/DocBookParserTest.java?rev=782653&r1=782652&r2=782653&view=diff ============================================================================== --- maven/doxia/doxia/trunk/doxia-modules/doxia-module-docbook-simple/src/test/java/org/apache/maven/doxia/module/docbook/DocBookParserTest.java (original) +++ maven/doxia/doxia/trunk/doxia-modules/doxia-module-docbook-simple/src/test/java/org/apache/maven/doxia/module/docbook/DocBookParserTest.java Mon Jun 8 14:39:34 2009 @@ -155,33 +155,22 @@ parser.parse( text, sink ); Iterator it = sink.getEventList().iterator(); - // FIXME: anchors should be removed - SinkEventElement event = (SinkEventElement) it.next(); assertEquals( "head", event.getName() ); assertEquals( " id=article", event.getArgs()[0].toString() ); assertEquals( "head_", ( (SinkEventElement) it.next() ).getName() ); assertEquals( "body", ( (SinkEventElement) it.next() ).getName() ); - assertEquals( "anchor", ( (SinkEventElement) it.next() ).getName() ); - assertEquals( "anchor_", ( (SinkEventElement) it.next() ).getName() ); - event = (SinkEventElement) it.next(); assertEquals( "section1", event.getName() ); assertEquals( " id=section", event.getArgs()[0].toString() ); - assertEquals( "anchor", ( (SinkEventElement) it.next() ).getName() ); - assertEquals( "anchor_", ( (SinkEventElement) it.next() ).getName() ); - event = (SinkEventElement) it.next(); assertEquals( "sectionTitle1", event.getName() ); assertEquals( " id=title", event.getArgs()[0].toString() ); assertEquals( "text", ( (SinkEventElement) it.next() ).getName() ); assertEquals( "sectionTitle1_", ( (SinkEventElement) it.next() ).getName() ); - assertEquals( "anchor", ( (SinkEventElement) it.next() ).getName() ); - assertEquals( "anchor_", ( (SinkEventElement) it.next() ).getName() ); - event = (SinkEventElement) it.next(); assertEquals( "paragraph", event.getName() ); assertEquals( " id=para", event.getArgs()[0].toString() );