Author: vsiveton Date: Mon Jul 27 22:02:53 2009 New Revision: 798303 URL: http://svn.apache.org/viewvc?rev=798303&view=rev Log: DOXIA-338: Section numbering and links
o fix it as described Modified: maven/doxia/doxia/trunk/doxia-modules/doxia-module-itext/src/main/java/org/apache/maven/doxia/module/itext/ITextSink.java Modified: maven/doxia/doxia/trunk/doxia-modules/doxia-module-itext/src/main/java/org/apache/maven/doxia/module/itext/ITextSink.java URL: http://svn.apache.org/viewvc/maven/doxia/doxia/trunk/doxia-modules/doxia-module-itext/src/main/java/org/apache/maven/doxia/module/itext/ITextSink.java?rev=798303&r1=798302&r2=798303&view=diff ============================================================================== --- maven/doxia/doxia/trunk/doxia-modules/doxia-module-itext/src/main/java/org/apache/maven/doxia/module/itext/ITextSink.java (original) +++ maven/doxia/doxia/trunk/doxia-modules/doxia-module-itext/src/main/java/org/apache/maven/doxia/module/itext/ITextSink.java Mon Jul 27 22:02:53 2009 @@ -69,7 +69,7 @@ * @author <a href="mailto:vincent.sive...@gmail.com">Vincent Siveton</a> * @version $Id$ */ -public final class ITextSink +public class ITextSink extends SinkAdapter { /** This is the place where the iText DTD is located. IMPORTANT: this DTD is not uptodate! */ @@ -104,7 +104,7 @@ /** The font object */ private ITextFont font; - private int numberDepth = 0; + private int numberDepth = 1; private int depth = 0; @@ -1320,6 +1320,10 @@ font.addUnderlined(); writeStartElement( ElementTags.ANCHOR ); + if ( StringUtils.isNotEmpty( name )&& name.startsWith( "#" ) && StringUtils.isNotEmpty( header.getTitle() )) + { + name = "#" + DoxiaUtils.encodeId( header.getTitle(), true ) + "_" + name.substring( 1 ); + } writeAddAttribute( ElementTags.REFERENCE, HtmlTools.escapeHTML( name ) ); writeAddAttribute( ElementTags.FONT, font.getFontName() ); writeAddAttribute( ElementTags.SIZE, font.getFontSize() ); @@ -1359,6 +1363,10 @@ throw new NullPointerException( "Anchor name cannot be null!" ); } + if ( StringUtils.isNotEmpty( header.getTitle() ) ) + { + name = header.getTitle() + "_" + name; + } String id = name; if ( !DoxiaUtils.isValidId( id ) )