Author: ltheussl Date: Thu May 7 07:14:46 2009 New Revision: 772527 URL: http://svn.apache.org/viewvc?rev=772527&view=rev Log: [DOXIA-298] Problem with relative links Submitted by: Kornel
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/test/java/org/apache/maven/doxia/module/confluence/ConfluenceParserTest.java 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=772527&r1=772526&r2=772527&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 Thu May 7 07:14:46 2009 @@ -109,11 +109,26 @@ case ']': if ( insideLink ) { + boolean addHTMLSuffix = false; String link = text.toString(); + if (!link.endsWith(".html")) + if (!link.contains("http")) + addHTMLSuffix = true; if ( link.indexOf( "|" ) > 0 ) { String[] pieces = StringUtils.split( text.toString(), "|" ); + if (addHTMLSuffix) { + if (!pieces[1].contains("#")) + pieces[1] = pieces[1].concat(".html"); + else { + if (!pieces[1].startsWith("#")) + { + String[] temp = pieces[1].split("#"); + pieces[1] = temp[0] + ".html#" + temp[1]; + } + } + } blocks.add( new LinkBlock( pieces[1], pieces[0] ) ); } @@ -126,6 +141,17 @@ value = link.substring( 1 ); } + if (addHTMLSuffix) { + if (!link.contains("#")) + link = link.concat(".html"); + else { + if (!link.startsWith("#")) + { + String[] temp = link.split("#"); + link = temp[0] + ".html#" + temp[1]; + } + } + } blocks.add( new LinkBlock( link, value ) ); } 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=772527&r1=772526&r2=772527&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 Thu May 7 07:14:46 2009 @@ -240,10 +240,10 @@ { String result = locateAndParseTestSourceFile( "link" ); - assertContainsLines( result, "begin:link, name: middle\ntext: middle\nend:link" ); - assertContainsLines( result, "begin:link, name: end\ntext: end\nend:link" ); - assertContainsLines( result, "begin:link, name: link\ntext: alias\nend:link" ); - assertContainsLines( result, "begin:link, name: link#anchor\ntext: link#anchor\nend:link" ); + assertContainsLines( result, "begin:link, name: middle.html\ntext: middle\nend:link" ); + assertContainsLines( result, "begin:link, name: end.html\ntext: end\nend:link" ); + assertContainsLines( result, "begin:link, name: link.html\ntext: alias\nend:link" ); + assertContainsLines( result, "begin:link, name: link.html#anchor\ntext: link#anchor\nend:link" ); assertContainsLines( result, "begin:link, name: #simple\ntext: simple\nend:link" ); // 3 paragraphs in the input... assertEquals( 4, result.split( "end:paragraph\n" ).length );