Author: olamy Date: Thu Feb 21 22:26:52 2013 New Revision: 1448836 URL: http://svn.apache.org/r1448836 Log: [DOXIA-466] confluence: can't create links to non-html resources (like .pdf of .xls files) because ".html" is always appended. Submitted by Valters Vingolds.
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 maven/doxia/doxia/trunk/doxia-modules/doxia-module-confluence/src/test/resources/link.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=1448836&r1=1448835&r2=1448836&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 Feb 21 22:26:52 2013 @@ -123,6 +123,13 @@ public class ChildBlocksBuilder if ( link.contains( "|" ) ) { String[] pieces = StringUtils.split( text.toString(), "|" ); + + if ( pieces[1].startsWith("^") ) + { + // use the "file attachment" ^ syntax to force verbatim link: needed to allow actually linking to some non-html resources + pieces[1] = pieces[1].substring(1); // now just get rid of the lead ^ + addHTMLSuffix = false; // force verbatim link to support attaching files/resources (not just .html files) + } if ( addHTMLSuffix ) { @@ -150,6 +157,13 @@ public class ChildBlocksBuilder { value = link.substring( 1 ); } + else if ( link.startsWith( "^" ) ) + { + link = link.substring( 1 ); // chop off the lead ^ from link and from value + value = link; + addHTMLSuffix = + false; // force verbatim link to support attaching files/resources (not just .html files) + } if ( addHTMLSuffix ) { 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=1448836&r1=1448835&r2=1448836&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 Feb 21 22:26:52 2013 @@ -272,10 +272,12 @@ public class ConfluenceParserTest 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 ); - // 5 links in the input... - assertEquals( 6, result.split( "end:link\n" ).length ); + assertContainsLines( result, "begin:link, name: resource.pdf\ntext: resource.pdf\nend:link" ); + assertContainsLines( result, "begin:link, name: resource.pdf\ntext: alias pdf\nend:link" ); + // 5 paragraphs in the input... + assertEquals( 5, result.split( "end:paragraph\n" ).length ); + // 8 links in the input... + assertEquals( 8, result.split( "end:link\n" ).length ); } /** @throws Exception */ Modified: maven/doxia/doxia/trunk/doxia-modules/doxia-module-confluence/src/test/resources/link.confluence URL: http://svn.apache.org/viewvc/maven/doxia/doxia/trunk/doxia-modules/doxia-module-confluence/src/test/resources/link.confluence?rev=1448836&r1=1448835&r2=1448836&view=diff ============================================================================== --- maven/doxia/doxia/trunk/doxia-modules/doxia-module-confluence/src/test/resources/link.confluence (original) +++ maven/doxia/doxia/trunk/doxia-modules/doxia-module-confluence/src/test/resources/link.confluence Thu Feb 21 22:26:52 2013 @@ -2,4 +2,6 @@ Line with [middle] link Line with link at the [end] -Line with [link#anchor] and [#simple] anchor and [alias|link] \ No newline at end of file +Line with [link#anchor] and [#simple] anchor and [alias|link] + +Line with [^resource.pdf] file and with [alias pdf|^resource.pdf]