Index: src/test/java/org/apache/maven/doxia/module/confluence/ConfluenceParserTest.java =================================================================== --- src/test/java/org/apache/maven/doxia/module/confluence/ConfluenceParserTest.java (revision 754510) +++ src/test/java/org/apache/maven/doxia/module/confluence/ConfluenceParserTest.java (working copy) @@ -134,10 +134,11 @@ for ( int i = 1; i <= 5; i++ ) { assertContainsLines( "Could not locate section " + i + " title", result, "sectionTitle" + i + - "\ntext: Section" + i ); + "\nbegin:paragraph\ntext: Section" + i ); } + assertContainsLines( "Section title has leading space", result, "sectionTitle1\nbegin:paragraph\ntext: TitleWithLeadingSpace" ); - assertContainsLines( "Section title has leading space", result, "sectionTitle1\ntext: TitleWithLeadingSpace" ); + assertContainsLines( "Section title has leading space", result, "sectionTitle1\nbegin:paragraph\ntext: TitleWithLeadingSpace" ); } /** @throws Exception */ @@ -284,7 +285,7 @@ String result = locateAndParseTestSourceFile( "paragraph-header" ); assertContainsLines( result, "begin:paragraph\ntext: A paragraph\nend:paragraph\n" ); - assertContainsLines( result, "begin:section2\nbegin:sectionTitle2\ntext: A header\nend:sectionTitle2" ); + assertContainsLines( result, "begin:section2\nbegin:sectionTitle2\nbegin:paragraph\ntext: A header with a header" ); // 3 paragraphs in the input... assertEquals( 4, result.split( "end:paragraph\n" ).length ); // 1 header in the input... Index: src/main/java/org/apache/maven/doxia/module/confluence/parser/SectionBlock.java =================================================================== --- src/main/java/org/apache/maven/doxia/module/confluence/parser/SectionBlock.java (revision 754510) +++ src/main/java/org/apache/maven/doxia/module/confluence/parser/SectionBlock.java (working copy) @@ -28,13 +28,13 @@ class SectionBlock implements Block { - private String title; + private Block text; private int level; - SectionBlock( String title, int level ) + SectionBlock( Block text, int level ) { - this.title = title; + this.text = text; this.level = level; } @@ -67,7 +67,7 @@ sink.sectionTitle5(); } - sink.text( title ); + this.text.traverse(sink); if ( level == Sink.SECTION_LEVEL_1 ) { Index: src/main/java/org/apache/maven/doxia/module/confluence/parser/SectionBlockParser.java =================================================================== --- src/main/java/org/apache/maven/doxia/module/confluence/parser/SectionBlockParser.java (revision 754510) +++ src/main/java/org/apache/maven/doxia/module/confluence/parser/SectionBlockParser.java (working copy) @@ -66,6 +66,9 @@ String title = line.substring( 3 ).trim(); - return new SectionBlock( title, level ); + BlockParser headingParser = new SectionBlockParser(); + BlockParser figureParser = new FigureBlockParser(); + BlockParser[] subparsers = new BlockParser[] { headingParser, figureParser }; + return new SectionBlock(new ParagraphBlockParser(subparsers).visit(title, source), level); } }