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]


Reply via email to