Hi, I have some random fixes for the twiki parser (table related) and for the rest of the Sinks.
juanpatches.diff is the whole diff, and the juanpatches.tar.gz has the incrementals patches with a comment. Regards, Juan. ------------------------------------------------------------------------ r2 | juan | 2006-08-20 22:16:12 -0300 (Sun, 20 Aug 2006) | 4 lines Changed paths: M /branches/433103/doxia-core/src/main/java/org/apache/maven/doxia/module/latex/LatexSink.java document start should be the first thing in a \latex file. (if not it triggers ! LaTeX Error: \usepackage before \documentclass.) ------------------------------------------------------------------------ r3 | juan | 2006-08-20 22:18:55 -0300 (Sun, 20 Aug 2006) | 5 lines Changed paths: M /branches/433103/doxia-modules/doxia-module-twiki/src/main/java/org/apache/maven/doxia/module/twiki/parser/SectionBlock.java twiki parser generated sectionTitle events in all the sections. The only Sink that supports that behavior is xdoc. Now it generates sectionTitle1, sectionTitle2, ... ------------------------------------------------------------------------ r6 | juan | 2006-08-21 00:49:33 -0300 (Mon, 21 Aug 2006) | 1 line Changed paths: M /branches/433103/doxia-modules/doxia-module-twiki/src/main/java/org/apache/maven/doxia/module/twiki/parser/TableBlock.java Sink#tableRows must be called after Sink#table and before Sink#tableRow ------------------------------------------------------------------------ r7 | juan | 2006-08-21 00:50:02 -0300 (Mon, 21 Aug 2006) | 1 line Changed paths: M /branches/433103/doxia-core/src/main/java/org/apache/maven/doxia/validation/AdvicedSink.java dupe ------------------------------------------------------------------------ r8 | juan | 2006-08-21 01:03:09 -0300 (Mon, 21 Aug 2006) | 1 line Changed paths: M /branches/433103/doxia-core/src/main/java/org/apache/maven/doxia/module/latex/LatexSink.java implement tableCell and tableCell_ ------------------------------------------------------------------------ r9 | juan | 2006-08-21 01:15:30 -0300 (Mon, 21 Aug 2006) | 1 line Changed paths: M /branches/433103/doxia-core/src/main/java/org/apache/maven/doxia/module/rtf/RtfSink.java implement tableHeaderCell and tableHeaderCell_ to avoid NPE ------------------------------------------------------------------------ r10 | juan | 2006-08-21 01:33:30 -0300 (Mon, 21 Aug 2006) | 1 line Changed paths: M /branches/433103/doxia-modules/doxia-module-twiki/src/main/java/org/apache/maven/doxia/module/twiki/parser/TableBlock.java something was wrong in rev6. ------------------------------------------------------------------------ r11 | juan | 2006-08-21 01:41:12 -0300 (Mon, 21 Aug 2006) | 1 line Changed paths: M /branches/433103/doxia-modules/doxia-module-confluence/src/main/java/org/apache/maven/doxia/module/confluence/parser/table/TableBlock.java port revisions 6 and 10 to confluence. ------------------------------------------------------------------------
juanpatches.tar.gz
Description: GNU Zip compressed data
Index: doxia-core/src/main/java/org/apache/maven/doxia/module/rtf/RtfSink.java =================================================================== --- doxia-core/src/main/java/org/apache/maven/doxia/module/rtf/RtfSink.java (revision 433332) +++ doxia-core/src/main/java/org/apache/maven/doxia/module/rtf/RtfSink.java (working copy) @@ -854,6 +854,16 @@ table.add( row ); } + public void tableHeaderCell() + { + tableCell(); + } + + public void tableHeaderCell_() + { + tableCell_(); + } + public void tableCell() { cell = new Cell(); Index: doxia-core/src/main/java/org/apache/maven/doxia/module/latex/LatexSink.java =================================================================== --- doxia-core/src/main/java/org/apache/maven/doxia/module/latex/LatexSink.java (revision 433332) +++ doxia-core/src/main/java/org/apache/maven/doxia/module/latex/LatexSink.java (working copy) @@ -130,12 +130,12 @@ if ( !fragmentDocument ) { + markup( getDocumentStart() ); + markup( sinkCommands ); markup( preamble ); - markup( getDocumentStart() ); - markup( getDocumentBegin() ); } } @@ -432,11 +432,12 @@ public void tableRow_() { markup( "\\\\" + EOL ); - if ( gridFlag ) + if ( gridFlag || lastCellWasHeader ) { markup( "\\hline" + EOL ); } cellCount = 0; + lastCellWasHeader = false; } public void title() @@ -576,6 +577,30 @@ public void tableCell() { + tableCell( false ); + } + + public void tableCell_() + { + tableCell_( false ); + } + + public void tableHeaderCell() + { + tableCell( true ); + } + + public void tableHeaderCell_() + { + tableCell_( true ); + } + + private boolean lastCellWasHeader = false; + + public void tableCell( boolean header ) + { + lastCellWasHeader = header; + if ( cellCount > 0 ) { markup( " &" + EOL ); @@ -598,7 +623,7 @@ markup( "\\begin{pcell}{" + justif + "}" ); } - public void tableCell_() + public void tableCell_( boolean header ) { markup( "\\end{pcell}" ); ++cellCount; Index: doxia-core/src/main/java/org/apache/maven/doxia/validation/AdvicedSink.java =================================================================== --- doxia-core/src/main/java/org/apache/maven/doxia/validation/AdvicedSink.java (revision 433332) +++ doxia-core/src/main/java/org/apache/maven/doxia/validation/AdvicedSink.java (working copy) @@ -987,7 +987,6 @@ M_FIGURECAPTION = CLASS.getMethod( "figureCaption", null ); M_FIGURECAPTION_ = CLASS.getMethod( "figureCaption_", null ); M_TABLECELL = CLASS.getMethod( "tableCell", null ); - M_TABLECELL = CLASS.getMethod( "tableCell", null ); M_TABLECELL_ = CLASS.getMethod( "tableCell_", null ); M_TABLEHEADERCELL = CLASS.getMethod( "tableHeaderCell", null ); M_TABLEHEADERCELL = CLASS.getMethod( "tableHeaderCell", null ); Index: doxia-modules/doxia-module-confluence/src/main/java/org/apache/maven/doxia/module/confluence/parser/table/TableBlock.java =================================================================== --- doxia-modules/doxia-module-confluence/src/main/java/org/apache/maven/doxia/module/confluence/parser/table/TableBlock.java (revision 433332) +++ doxia-modules/doxia-module-confluence/src/main/java/org/apache/maven/doxia/module/confluence/parser/table/TableBlock.java (working copy) @@ -16,6 +16,7 @@ * limitations under the License. */ +import org.apache.maven.doxia.module.apt.AptParser; import org.apache.maven.doxia.module.confluence.parser.AbstractFatherBlock; import org.apache.maven.doxia.sink.Sink; @@ -33,10 +34,24 @@ public void before( Sink sink ) { sink.table(); + sink.tableRows( getJustification(), false ); } public void after( Sink sink ) { + sink.tableRows_(); sink.table_(); } + + private final int [] getJustification() { + final AbstractFatherBlock b = + ((AbstractFatherBlock)getBlocks().get( 0 )); + int[] justification = new int[b.getBlocks().size()]; + for ( int i = 0; i < justification.length; i++ ) + { + justification[i] = AptParser.JUSTIFY_CENTER; + } + + return justification; + } } Index: doxia-modules/doxia-module-twiki/src/main/java/org/apache/maven/doxia/module/twiki/parser/TableBlock.java =================================================================== --- doxia-modules/doxia-module-twiki/src/main/java/org/apache/maven/doxia/module/twiki/parser/TableBlock.java (revision 433332) +++ doxia-modules/doxia-module-twiki/src/main/java/org/apache/maven/doxia/module/twiki/parser/TableBlock.java (working copy) @@ -15,6 +15,7 @@ */ package org.apache.maven.doxia.module.twiki.parser; +import org.apache.maven.doxia.module.apt.AptParser; import org.apache.maven.doxia.sink.Sink; @@ -45,6 +46,7 @@ public final void before( final Sink sink ) { sink.table(); + sink.tableRows( getJustification(), false ); } /** @@ -53,6 +55,19 @@ public final void after( final Sink sink ) { + sink.tableRows_(); sink.table_(); } + + + private final int [] getJustification() { + int[] justification = new int[((AbstractFatherBlock)getBlocks()[0]). + getBlocks().length]; + for ( int i = 0; i < justification.length; i++ ) + { + justification[i] = AptParser.JUSTIFY_CENTER; + } + + return justification; + } } Index: doxia-modules/doxia-module-twiki/src/main/java/org/apache/maven/doxia/module/twiki/parser/SectionBlock.java =================================================================== --- doxia-modules/doxia-module-twiki/src/main/java/org/apache/maven/doxia/module/twiki/parser/SectionBlock.java (revision 433332) +++ doxia-modules/doxia-module-twiki/src/main/java/org/apache/maven/doxia/module/twiki/parser/SectionBlock.java (working copy) @@ -73,9 +73,9 @@ public final void before( final Sink sink ) { sectionStart( sink ); - sink.sectionTitle(); + sectionTitle( sink ); sink.text( title ); - sink.sectionTitle_(); + sectionTitle_( sink ); } @@ -178,4 +178,15 @@ return sb.toString(); } + /** @param sink */ + private void sectionTitle( final Sink sink ) + { + invokeVoidVoid( sink, "sectionTitle" + level ); + } + + /** @param sink */ + private void sectionTitle_( final Sink sink ) + { + invokeVoidVoid( sink, "sectionTitle" + level + "_" ); + } }
pgpZzElaa1wIN.pgp
Description: PGP signature