Author: ltheussl Date: Mon Oct 29 12:53:59 2007 New Revision: 589828 URL: http://svn.apache.org/viewvc?rev=589828&view=rev Log: [DOXIA-171] add confluence code macro support Submitted by: Dave Syer
Added: maven/doxia/doxia/trunk/doxia-modules/doxia-module-confluence/src/test/resources/code.confluence Modified: maven/doxia/doxia/trunk/doxia-modules/doxia-module-confluence/src/main/java/org/apache/maven/doxia/module/confluence/parser/ChildBlocksBuilder.java maven/doxia/doxia/trunk/doxia-modules/doxia-module-confluence/src/main/java/org/apache/maven/doxia/module/confluence/parser/VerbatimBlockParser.java maven/doxia/doxia/trunk/doxia-modules/doxia-module-confluence/src/test/java/org/apache/maven/doxia/module/confluence/ConfluenceParserTest.java maven/doxia/doxia/trunk/doxia-modules/doxia-module-confluence/src/test/resources/anchor.confluence Modified: maven/doxia/doxia/trunk/doxia-modules/doxia-module-confluence/src/main/java/org/apache/maven/doxia/module/confluence/parser/ChildBlocksBuilder.java URL: http://svn.apache.org/viewvc/maven/doxia/doxia/trunk/doxia-modules/doxia-module-confluence/src/main/java/org/apache/maven/doxia/module/confluence/parser/ChildBlocksBuilder.java?rev=589828&r1=589827&r2=589828&view=diff ============================================================================== --- maven/doxia/doxia/trunk/doxia-modules/doxia-module-confluence/src/main/java/org/apache/maven/doxia/module/confluence/parser/ChildBlocksBuilder.java (original) +++ maven/doxia/doxia/trunk/doxia-modules/doxia-module-confluence/src/main/java/org/apache/maven/doxia/module/confluence/parser/ChildBlocksBuilder.java Mon Oct 29 12:53:59 2007 @@ -122,7 +122,7 @@ // System.out.println( "line = " + line ); - if ( input.charAt( i + 1 ) == '}' ) + if ( input.length() > i + 1 && input.charAt( i + 1 ) == '}' ) { i++; TextBlock tb = new TextBlock( text.toString() ); Modified: maven/doxia/doxia/trunk/doxia-modules/doxia-module-confluence/src/main/java/org/apache/maven/doxia/module/confluence/parser/VerbatimBlockParser.java URL: http://svn.apache.org/viewvc/maven/doxia/doxia/trunk/doxia-modules/doxia-module-confluence/src/main/java/org/apache/maven/doxia/module/confluence/parser/VerbatimBlockParser.java?rev=589828&r1=589827&r2=589828&view=diff ============================================================================== --- maven/doxia/doxia/trunk/doxia-modules/doxia-module-confluence/src/main/java/org/apache/maven/doxia/module/confluence/parser/VerbatimBlockParser.java (original) +++ maven/doxia/doxia/trunk/doxia-modules/doxia-module-confluence/src/main/java/org/apache/maven/doxia/module/confluence/parser/VerbatimBlockParser.java Mon Oct 29 12:53:59 2007 @@ -33,7 +33,7 @@ public boolean accept( String line, ByLineSource source ) { - if ( line.startsWith( "{code}" ) || line.startsWith( "{noformat}" ) ) + if ( line.startsWith( "{code" ) || line.startsWith( "{noformat}" ) ) { return true; } Modified: maven/doxia/doxia/trunk/doxia-modules/doxia-module-confluence/src/test/java/org/apache/maven/doxia/module/confluence/ConfluenceParserTest.java URL: http://svn.apache.org/viewvc/maven/doxia/doxia/trunk/doxia-modules/doxia-module-confluence/src/test/java/org/apache/maven/doxia/module/confluence/ConfluenceParserTest.java?rev=589828&r1=589827&r2=589828&view=diff ============================================================================== --- maven/doxia/doxia/trunk/doxia-modules/doxia-module-confluence/src/test/java/org/apache/maven/doxia/module/confluence/ConfluenceParserTest.java (original) +++ maven/doxia/doxia/trunk/doxia-modules/doxia-module-confluence/src/test/java/org/apache/maven/doxia/module/confluence/ConfluenceParserTest.java Mon Oct 29 12:53:59 2007 @@ -146,7 +146,8 @@ { String result = locateAndParseTestSourceFile( "nested-list" ); - assertContainsLines( "Nested list not found", result, "begin:listItem\ntext: A top level list item\nbegin:list" ); + assertContainsLines( "Nested list not found", result, + "begin:listItem\ntext: A top level list item\nbegin:list" ); // two lists in the input... assertEquals( 3, result.split( "end:list\n" ).length ); // ...and 4 list items @@ -158,7 +159,7 @@ throws Exception { String result = locateAndParseTestSourceFile( "simple-list" ); - + assertContainsLines( result, "begin:bold\ntext: bold\n" ); assertContainsLines( result, "begin:italic\ntext: italic\n" ); assertContainsLines( result, "begin:monospaced\ntext: monospaced\n" ); @@ -176,11 +177,11 @@ throws Exception { String result = locateAndParseTestSourceFile( "anchor" ); - + assertContainsLines( result, "begin:paragraph\nbegin:anchor, name: start\nend:anchor" ); assertContainsLines( result, "begin:anchor, name: middle\nend:anchor" ); assertContainsLines( result, "begin:paragraph\ntext: Simple paragraph\nbegin:anchor, name: end\nend:anchor" ); - // 3 anchors in the input... + // 3 anchors in the input... assertEquals( 4, result.split( "end:anchor\n" ).length ); } @@ -189,9 +190,22 @@ throws Exception { String result = locateAndParseTestSourceFile( "unknown-macro" ); - + assertContainsLines( result, "begin:paragraph\ntext: {unknown:start}" ); - } + } + + /** @throws Exception */ + public void testCodeMacro() + throws Exception + { + String result = locateAndParseTestSourceFile( "code" ); + + assertContainsLines( result, "begin:verbatim, boxed: true\ntext: public class Cat {" ); + // 3 paragraphs in the input... + assertEquals( 4, result.split( "end:paragraph\n" ).length ); + // 1 verbatim in the input... + assertEquals( 2, result.split( "end:verbatim\n" ).length ); + } private void assertContainsLines( String message, String result, String lines ) { Modified: maven/doxia/doxia/trunk/doxia-modules/doxia-module-confluence/src/test/resources/anchor.confluence URL: http://svn.apache.org/viewvc/maven/doxia/doxia/trunk/doxia-modules/doxia-module-confluence/src/test/resources/anchor.confluence?rev=589828&r1=589827&r2=589828&view=diff ============================================================================== --- maven/doxia/doxia/trunk/doxia-modules/doxia-module-confluence/src/test/resources/anchor.confluence (original) +++ maven/doxia/doxia/trunk/doxia-modules/doxia-module-confluence/src/test/resources/anchor.confluence Mon Oct 29 12:53:59 2007 @@ -2,6 +2,6 @@ {anchor:start}Simple paragraph. -Simple paragraph{anchor:end}. +Simple paragraph{anchor:end} Simple {anchor:middle} paragraph. Added: maven/doxia/doxia/trunk/doxia-modules/doxia-module-confluence/src/test/resources/code.confluence URL: http://svn.apache.org/viewvc/maven/doxia/doxia/trunk/doxia-modules/doxia-module-confluence/src/test/resources/code.confluence?rev=589828&view=auto ============================================================================== --- maven/doxia/doxia/trunk/doxia-modules/doxia-module-confluence/src/test/resources/code.confluence (added) +++ maven/doxia/doxia/trunk/doxia-modules/doxia-module-confluence/src/test/resources/code.confluence Mon Oct 29 12:53:59 2007 @@ -0,0 +1,21 @@ +Simple paragraph. + +{code:title=Cat.java} +public class Cat { + public void sitOn(Mat mat) { + // ... code here <angle brackets> + } +} +{code} + +Another paragraph (the title of the code block is ignored). + +Simple paragraph with embedded code +{code} +public class Cat { + public void sitOn(Mat mat) { + // ... code here <angle brackets> + } +} +{code} +in the same paragraph (this doesn't work right now DOXIA-181). \ No newline at end of file