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 );


Reply via email to