You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@servicemix.apache.org by gn...@apache.org on 2010/06/15 10:43:08 UTC

svn commit: r954753 - in /servicemix/maven-plugins/docs-maven-plugin/trunk/src: main/java/org/apache/servicemix/docs/confluence/ test/java/org/apache/servicemix/docs/confluence/ test/resources/org/apache/servicemix/docs/confluence/

Author: gnodet
Date: Tue Jun 15 08:43:08 2010
New Revision: 954753

URL: http://svn.apache.org/viewvc?rev=954753&view=rev
Log:
Add support for bold text, use regexp instead of code for all replacements, try to better support escape

Modified:
    servicemix/maven-plugins/docs-maven-plugin/trunk/src/main/java/org/apache/servicemix/docs/confluence/ConfluenceConverter.java
    servicemix/maven-plugins/docs-maven-plugin/trunk/src/test/java/org/apache/servicemix/docs/confluence/ConfluenceDocumentTest.java
    servicemix/maven-plugins/docs-maven-plugin/trunk/src/test/resources/org/apache/servicemix/docs/confluence/links.wiki
    servicemix/maven-plugins/docs-maven-plugin/trunk/src/test/resources/org/apache/servicemix/docs/confluence/links.xml

Modified: servicemix/maven-plugins/docs-maven-plugin/trunk/src/main/java/org/apache/servicemix/docs/confluence/ConfluenceConverter.java
URL: http://svn.apache.org/viewvc/servicemix/maven-plugins/docs-maven-plugin/trunk/src/main/java/org/apache/servicemix/docs/confluence/ConfluenceConverter.java?rev=954753&r1=954752&r2=954753&view=diff
==============================================================================
--- servicemix/maven-plugins/docs-maven-plugin/trunk/src/main/java/org/apache/servicemix/docs/confluence/ConfluenceConverter.java (original)
+++ servicemix/maven-plugins/docs-maven-plugin/trunk/src/main/java/org/apache/servicemix/docs/confluence/ConfluenceConverter.java Tue Jun 15 08:43:08 2010
@@ -23,6 +23,7 @@ import java.io.PrintWriter;
 import java.io.Reader;
 import java.io.Writer;
 import java.util.HashMap;
+import java.util.LinkedHashMap;
 import java.util.Map;
 import java.util.Stack;
 import java.util.regex.Matcher;
@@ -60,13 +61,14 @@ public class ConfluenceConverter {
         String line = null;
 
         while ((line = reader.readLine()) != null) {
+            String trimmed = line.trim();
             if (CHAPTER_OR_SECTION.matcher(line).matches()) {
                 writeChapterOrSection(line);
-            } else if (line.trim().startsWith("!") && line.trim().endsWith("!")) {
+            } else if (trimmed.startsWith("!") && trimmed.endsWith("!")) {
                 writeImage(line);
-            } else if (line.trim().startsWith("||") && line.trim().endsWith("||")) {
+            } else if (trimmed.startsWith("||") && trimmed.endsWith("||")) {
                 writeTableHeader(line);
-            } else if (line.trim().startsWith("|") && line.trim().endsWith("|")) {
+            } else if (trimmed.startsWith("|") && trimmed.endsWith("|")) {
                 writeTableBody(line);
             } else if (line.startsWith("*")) {
                 writeBulletList(line);
@@ -74,7 +76,7 @@ public class ConfluenceConverter {
                 writeNumberedList(line);
             } else if (line.startsWith("-")) {
                 writeGlossaryList(line);
-            } else if (line.trim().startsWith("{code")) {
+            } else if (trimmed.startsWith("{code")) {
                 writeProgramListing(line);
             } else {
                 writePara(line);
@@ -187,17 +189,27 @@ public class ConfluenceConverter {
     }
 
     private String filter(String line) {
-        String filtered = line.replaceAll("&", "&amp;").replaceAll("<", "&lt;").replaceAll(">", "&gt;");
-        while (filtered.indexOf("[") >= 0 && filtered.indexOf("]") > 0 && filtered.indexOf("[") < filtered.indexOf("]")) {
-            int begin = filtered.indexOf("[");
-            int end = filtered.indexOf("]");
-            String confluence = filtered.substring(begin, end  + 1);
-            String[] parts = filtered.substring(begin + 1, end).split("\\|");
-            String docbook = String.format("<ulink url=\"%s\">%s</ulink>",
-                                           parts.length == 2 ? parts[1] : parts[0], parts[0]);
-            filtered = filtered.replace(confluence, docbook);
+        Map<String,String> replacements = new LinkedHashMap<String,String>();
+        replacements.put("&", "&amp;");
+        replacements.put("<", "&lt;");
+        replacements.put(">", "&gt;");
+        replacements.put("\\{\\{(.*)\\}\\}", "<code>$1</code>");
+
+        replacements.put("\\*([^*]*)\\*", "<emphasis role=\\\"bold\\\">$1</emphasis>");
+
+        replacements.put("([^\\\\])\\[([^\\|\\]]*)\\|([^\\]]*)\\]", "$1<ulink url=\\\"$3\\\">$2</ulink>");
+        replacements.put("^\\[([^\\|\\]]*)\\|([^\\]]*)\\]", "<ulink url=\\\"$2\\\">$1</ulink>");
+        replacements.put("([^\\\\])\\[([^\\|\\]]*)\\]", "$1<ulink url=\\\"$2\\\">$2</ulink>");
+        replacements.put("^\\[([^\\|\\]]*)\\]", "<ulink url=\\\"$1\\\">$1</ulink>");
+
+        replacements.put("\\\\\\[", "[");
+        replacements.put("\\\\\\]", "]");
+
+        String filtered = line;
+        for (String key : replacements.keySet()) {
+            filtered = filtered.replaceAll(key, replacements.get(key));
         }
-        filtered = filtered.replaceAll("[\\{]{2}", "<code>").replaceAll("[\\}]{2}", "</code>");
+
         return filtered;
     }
 

Modified: servicemix/maven-plugins/docs-maven-plugin/trunk/src/test/java/org/apache/servicemix/docs/confluence/ConfluenceDocumentTest.java
URL: http://svn.apache.org/viewvc/servicemix/maven-plugins/docs-maven-plugin/trunk/src/test/java/org/apache/servicemix/docs/confluence/ConfluenceDocumentTest.java?rev=954753&r1=954752&r2=954753&view=diff
==============================================================================
--- servicemix/maven-plugins/docs-maven-plugin/trunk/src/test/java/org/apache/servicemix/docs/confluence/ConfluenceDocumentTest.java (original)
+++ servicemix/maven-plugins/docs-maven-plugin/trunk/src/test/java/org/apache/servicemix/docs/confluence/ConfluenceDocumentTest.java Tue Jun 15 08:43:08 2010
@@ -21,7 +21,6 @@ import java.io.StringWriter;
 import java.util.List;
 
 import org.apache.commons.io.IOUtils;
-import org.junit.Test;
 
 import static junit.framework.Assert.assertEquals;
 
@@ -60,6 +59,7 @@ public class ConfluenceDocumentTest {
         assertDocBook("links");
     }
 
+
     @org.junit.Test
     public void generateTables() throws Exception {
         assertDocBook("tables");

Modified: servicemix/maven-plugins/docs-maven-plugin/trunk/src/test/resources/org/apache/servicemix/docs/confluence/links.wiki
URL: http://svn.apache.org/viewvc/servicemix/maven-plugins/docs-maven-plugin/trunk/src/test/resources/org/apache/servicemix/docs/confluence/links.wiki?rev=954753&r1=954752&r2=954753&view=diff
==============================================================================
--- servicemix/maven-plugins/docs-maven-plugin/trunk/src/test/resources/org/apache/servicemix/docs/confluence/links.wiki (original)
+++ servicemix/maven-plugins/docs-maven-plugin/trunk/src/test/resources/org/apache/servicemix/docs/confluence/links.wiki Tue Jun 15 08:43:08 2010
@@ -8,4 +8,10 @@ Click [here|http://www.google.be] to fol
 
 h2. Section 3
 Links in a variable list
-- search provider :: [Google|http://www.google.be] is often used for searching the web 
\ No newline at end of file
+- search provider :: [Google|http://www.google.be] is often used for searching the web
+
+h2. Section 4
+[Google|http://www.google.be]
+
+h2. Section 5
+[http://www.google.be]

Modified: servicemix/maven-plugins/docs-maven-plugin/trunk/src/test/resources/org/apache/servicemix/docs/confluence/links.xml
URL: http://svn.apache.org/viewvc/servicemix/maven-plugins/docs-maven-plugin/trunk/src/test/resources/org/apache/servicemix/docs/confluence/links.xml?rev=954753&r1=954752&r2=954753&view=diff
==============================================================================
--- servicemix/maven-plugins/docs-maven-plugin/trunk/src/test/resources/org/apache/servicemix/docs/confluence/links.xml (original)
+++ servicemix/maven-plugins/docs-maven-plugin/trunk/src/test/resources/org/apache/servicemix/docs/confluence/links.xml Tue Jun 15 08:43:08 2010
@@ -26,4 +26,16 @@
       </variablelist>
     </para>
   </section>    
+    <section>
+      <title>Section 4</title>
+      <para>
+        <ulink url="http://www.google.be">Google</ulink>
+      </para>
+    </section>
+    <section>
+      <title>Section 5</title>
+      <para>
+        <ulink url="http://www.google.be">http://www.google.be</ulink>
+      </para>
+    </section>
 </chapter>
\ No newline at end of file