Author: ltheussl Date: Fri Apr 3 08:38:09 2009 New Revision: 761569 URL: http://svn.apache.org/viewvc?rev=761569&view=rev Log: [DOXIA-302] {code} tag is not interpreted correctly if there is no empty line before it Submitted by: Kornel
Modified: maven/doxia/doxia/trunk/doxia-modules/doxia-module-confluence/src/main/java/org/apache/maven/doxia/module/confluence/ConfluenceParser.java maven/doxia/doxia/trunk/doxia-modules/doxia-module-confluence/src/main/java/org/apache/maven/doxia/module/confluence/parser/ParagraphBlock.java maven/doxia/doxia/trunk/doxia-modules/doxia-module-confluence/src/main/java/org/apache/maven/doxia/module/confluence/parser/ParagraphBlockParser.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/code.confluence Modified: maven/doxia/doxia/trunk/doxia-modules/doxia-module-confluence/src/main/java/org/apache/maven/doxia/module/confluence/ConfluenceParser.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/ConfluenceParser.java?rev=761569&r1=761568&r2=761569&view=diff ============================================================================== --- maven/doxia/doxia/trunk/doxia-modules/doxia-module-confluence/src/main/java/org/apache/maven/doxia/module/confluence/ConfluenceParser.java (original) +++ maven/doxia/doxia/trunk/doxia-modules/doxia-module-confluence/src/main/java/org/apache/maven/doxia/module/confluence/ConfluenceParser.java Fri Apr 3 08:38:09 2009 @@ -67,7 +67,8 @@ BlockParser listParser = new ListBlockParser(); BlockParser tableParser = new TableBlockParser(); - BlockParser[] subparsers = new BlockParser[] { headingParser, figureParser, listParser, tableParser }; + BlockParser[] subparsers = + new BlockParser[] { headingParser, figureParser, listParser, tableParser, verbatimParser }; BlockParser paragraphParser = new ParagraphBlockParser( subparsers ); parsers = Modified: maven/doxia/doxia/trunk/doxia-modules/doxia-module-confluence/src/main/java/org/apache/maven/doxia/module/confluence/parser/ParagraphBlock.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/ParagraphBlock.java?rev=761569&r1=761568&r2=761569&view=diff ============================================================================== --- maven/doxia/doxia/trunk/doxia-modules/doxia-module-confluence/src/main/java/org/apache/maven/doxia/module/confluence/parser/ParagraphBlock.java (original) +++ maven/doxia/doxia/trunk/doxia-modules/doxia-module-confluence/src/main/java/org/apache/maven/doxia/module/confluence/parser/ParagraphBlock.java Fri Apr 3 08:38:09 2009 @@ -30,21 +30,35 @@ class ParagraphBlock extends AbstractFatherBlock { + + private boolean generateParagraphTags = true; + ParagraphBlock( List blocks ) - throws IllegalArgumentException { super( blocks ); } + ParagraphBlock( List blocks, boolean generateParagraphTags ) + { + super( blocks ); + this.generateParagraphTags = generateParagraphTags; + } + /** {...@inheritdoc} */ public void before( Sink sink ) { - sink.paragraph(); + if ( this.generateParagraphTags ) + { + sink.paragraph(); + } } /** {...@inheritdoc} */ public void after( Sink sink ) { - sink.paragraph_(); + if ( this.generateParagraphTags ) + { + sink.paragraph_(); + } } } Modified: maven/doxia/doxia/trunk/doxia-modules/doxia-module-confluence/src/main/java/org/apache/maven/doxia/module/confluence/parser/ParagraphBlockParser.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/ParagraphBlockParser.java?rev=761569&r1=761568&r2=761569&view=diff ============================================================================== --- maven/doxia/doxia/trunk/doxia-modules/doxia-module-confluence/src/main/java/org/apache/maven/doxia/module/confluence/parser/ParagraphBlockParser.java (original) +++ maven/doxia/doxia/trunk/doxia-modules/doxia-module-confluence/src/main/java/org/apache/maven/doxia/module/confluence/parser/ParagraphBlockParser.java Fri Apr 3 08:38:09 2009 @@ -35,7 +35,7 @@ /** * <p>Constructor for ParagraphBlockParser.</p> * - * @param parsers + * @param parsers the parsers. */ public ParagraphBlockParser( BlockParser[] parsers ) { @@ -49,6 +49,30 @@ return true; } + /** + * Visit the Block. + * + * @param line the line to visit. + * @param source the source. + * @param generateParagraphTags whether to generate a paragraph. + * @return the visited Block. + * + * @throws org.apache.maven.doxia.parser.ParseException if any + */ + public Block visit(String line, ByLineSource source, boolean generateParagraphTags) + throws ParseException + { + if ( generateParagraphTags ) + { + return this.visit( line, source ); + } + else + { + ChildBlocksBuilder builder = new ChildBlocksBuilder( appendUntilEmptyLine( line, source ) ); + return new ParagraphBlock( builder.getBlocks(), generateParagraphTags ); + } + } + /** {...@inheritdoc} */ public Block visit( String line, ByLineSource source ) throws ParseException 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=761569&r1=761568&r2=761569&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 Fri Apr 3 08:38:09 2009 @@ -202,10 +202,10 @@ 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 ); + // 5 paragraphs in the input... + assertEquals( 5, result.split( "end:paragraph\n" ).length ); + // 3 verbatim in the input... + assertEquals( 3, result.split( "end:verbatim\n" ).length ); } /** @throws Exception */ Modified: 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=761569&r1=761568&r2=761569&view=diff ============================================================================== --- maven/doxia/doxia/trunk/doxia-modules/doxia-module-confluence/src/test/resources/code.confluence (original) +++ maven/doxia/doxia/trunk/doxia-modules/doxia-module-confluence/src/test/resources/code.confluence Fri Apr 3 08:38:09 2009 @@ -18,4 +18,4 @@ } } {code} -in the same paragraph (this didn't work until DOXIA-181). \ No newline at end of file +in the same paragraph (this didn't work until DOXIA-181). See also DOXIA-302. \ No newline at end of file