From ef22fa8bf2e5d9bd48578590a041ce7f07191c54 Mon Sep 17 00:00:00 2001 From: low012 Date: Sun, 22 Jan 2006 14:20:38 +0000 Subject: [PATCH] *) beautifying code and a little comment git-svn-id: https://svn.berlios.de/svnroot/repos/yacy/trunk@1401 6c8d7289-2bf4-0310-a012-ef5d649a1542 --- source/de/anomic/data/wikiCode.java | 469 ++++++++++++++-------------- 1 file changed, 231 insertions(+), 238 deletions(-) diff --git a/source/de/anomic/data/wikiCode.java b/source/de/anomic/data/wikiCode.java index 041485c12..2ee50412f 100644 --- a/source/de/anomic/data/wikiCode.java +++ b/source/de/anomic/data/wikiCode.java @@ -131,7 +131,7 @@ public class wikiCode { //This array contains codes (see http://mindprod.com/jgloss/unicode.html for details) and //patterns that will be replaced. To add new codes or patterns, just put them at the end - //of the list. + //of the list. Codes or patterns in this list can not be escaped with [= or
     public static String[] htmlentities={
         // Ampersands _have_ to be replaced first. If they were replaced later,
         // other replaced characters containing ampersands would get messed up.
@@ -276,176 +276,176 @@ public class wikiCode {
                     tail = tail + "";
                     result = result.substring(1);
                 }
-            result = head + result + tail;
-        }
-        // end contrib [MN]	
+                result = head + result + tail;
+            }
+            // end contrib [MN]	
 
-        // format headers
-        if ((p0 = result.indexOf("====")) >= 0) {
+            // format headers
+            if ((p0 = result.indexOf("====")) >= 0) {
             p1 = result.indexOf("====", p0 + 4);
             if (p1 >= 0) result = result.substring(0, p0) + "

" + result.substring(p0 + 4, p1) + "

" + result.substring(p1 + 4); - } - if ((p0 = result.indexOf("===")) >= 0) { - p1 = result.indexOf("===", p0 + 3); - if (p1 >= 0) result = result.substring(0, p0) + "

" + - result.substring(p0 + 3, p1) + "

" + - result.substring(p1 + 3); - } - if ((p0 = result.indexOf("==")) >= 0) { - p1 = result.indexOf("==", p0 + 2); - if (p1 >= 0) result = result.substring(0, p0) + "

" + - result.substring(p0 + 2, p1) + "

" + - result.substring(p1 + 2); - } - - if ((p0 = result.indexOf("'''''")) >= 0) { - p1 = result.indexOf("'''''", p0 + 5); - if (p1 >= 0) result = result.substring(0, p0) + "" + - result.substring(p0 + 5, p1) + "" + - result.substring(p1 + 5); - } - if ((p0 = result.indexOf("'''")) >= 0) { - p1 = result.indexOf("'''", p0 + 3); - if (p1 >= 0) result = result.substring(0, p0) + "" + - result.substring(p0 + 3, p1) + "" + - result.substring(p1 + 3); - } - if ((p0 = result.indexOf("''")) >= 0) { - p1 = result.indexOf("''", p0 + 2); - if (p1 >= 0) result = result.substring(0, p0) + "" + - result.substring(p0 + 2, p1) + "" + - result.substring(p1 + 2); - } + } + if ((p0 = result.indexOf("===")) >= 0) { + p1 = result.indexOf("===", p0 + 3); + if (p1 >= 0) result = result.substring(0, p0) + "

" + + result.substring(p0 + 3, p1) + "

" + + result.substring(p1 + 3); + } + if ((p0 = result.indexOf("==")) >= 0) { + p1 = result.indexOf("==", p0 + 2); + if (p1 >= 0) result = result.substring(0, p0) + "

" + + result.substring(p0 + 2, p1) + "

" + + result.substring(p1 + 2); + } - //* unorderd Lists contributed by [AS] - //** Sublist - if(result.startsWith(ListLevel + "*")){ //more stars - p0 = result.indexOf(ListLevel); - p1 = result.length(); - result = ""; - i--; + if ((p0 = result.indexOf("'''''")) >= 0) { + p1 = result.indexOf("'''''", p0 + 5); + if (p1 >= 0) result = result.substring(0, p0) + "" + + result.substring(p0 + 5, p1) + "" + + result.substring(p1 + 5); + } + if ((p0 = result.indexOf("'''")) >= 0) { + p1 = result.indexOf("'''", p0 + 3); + if (p1 >= 0) result = result.substring(0, p0) + "" + + result.substring(p0 + 3, p1) + "" + + result.substring(p1 + 3); + } + if ((p0 = result.indexOf("''")) >= 0) { + p1 = result.indexOf("''", p0 + 2); + if (p1 >= 0) result = result.substring(0, p0) + "" + + result.substring(p0 + 2, p1) + "" + + result.substring(p1 + 2); } - ListLevel = ListLevel.substring(0,i); - p0 = ListLevel.length(); - p1 = result.length(); - if(ListLevel.length() > 0){ - result = tmp + + //* unorderd Lists contributed by [AS] + //** Sublist + if(result.startsWith(ListLevel + "*")){ //more stars + p0 = result.indexOf(ListLevel); + p1 = result.length(); + result = ""; + i--; + } + ListLevel = ListLevel.substring(0,i); + p0 = ListLevel.length(); + p1 = result.length(); + + if(ListLevel.length() > 0){ + result = tmp + + "
  • " + + result.substring(p0, p1) + + "
  • "; + }else{ + result = tmp + result.substring(p0, p1); + } } - } - //# sorted Lists contributed by [AS] - //## Sublist - if(result.startsWith(numListLevel + "#")){ //more # - p0 = result.indexOf(numListLevel); - p1 = result.length(); - result = "
      " + serverCore.crlfString + - "
    1. " + - result.substring(numListLevel.length() + 1, p1) + - "
    2. "; - numListLevel += "#"; - }else if(numListLevel.length() > 0 && result.startsWith(numListLevel)){ //equal number of # - p0 = result.indexOf(numListLevel); - p1 = result.length(); - result = "
    3. " + - result.substring(numListLevel.length(), p1) + - "
    4. "; - }else if(numListLevel.length() > 0){ //less # - int i = numListLevel.length(); - String tmp = ""; - - while(! result.startsWith(numListLevel.substring(0,i)) ){ - tmp += "
    "; - i--; - } - numListLevel = numListLevel.substring(0,i); - p0 = numListLevel.length(); - p1 = result.length(); - - if(numListLevel.length() > 0){ - result = tmp + - "
  • " + - result.substring(p0, p1) + - "
  • "; - }else{ - result = tmp + result.substring(p0, p1); - } - } - // end contrib [AS] - - //* definition Lists contributed by [MN] based on unordered list code by [AS] - if(result.startsWith(defListLevel + ";")){ //more semicolons - String dt = ""; - String dd = ""; - p0 = result.indexOf(defListLevel); - p1 = result.length(); - String resultCopy = result.substring(defListLevel.length() + 1, p1); - if((p0 = resultCopy.indexOf(":")) > 0){ - dt = resultCopy.substring(0,p0); - dd = resultCopy.substring(p0+1); - result = "
    " + "
    " + dt + "
    " + "
    " + dd; - defList = true; - } - defListLevel += ";"; - }else if(defListLevel.length() > 0 && result.startsWith(defListLevel)){ //equal number of semicolons - String dt = ""; - String dd = ""; - p0 = result.indexOf(defListLevel); - p1 = result.length(); - String resultCopy = result.substring(defListLevel.length(), p1); - if((p0 = resultCopy.indexOf(":")) > 0){ - dt = resultCopy.substring(0,p0); - dd = resultCopy.substring(p0+1); - result = "
    " + dt + "
    " + "
    " + dd; - defList = true; - } - }else if(defListLevel.length() > 0){ //less semicolons - String dt = ""; - String dd = ""; - int i = defListLevel.length(); - String tmp = ""; - while(! result.startsWith(defListLevel.substring(0,i)) ){ - tmp += "
    "; - i--; + //# sorted Lists contributed by [AS] + //## Sublist + if(result.startsWith(numListLevel + "#")){ //more # + p0 = result.indexOf(numListLevel); + p1 = result.length(); + result = "
      " + serverCore.crlfString + + "
    1. " + + result.substring(numListLevel.length() + 1, p1) + + "
    2. "; + numListLevel += "#"; + }else if(numListLevel.length() > 0 && result.startsWith(numListLevel)){ //equal number of # + p0 = result.indexOf(numListLevel); + p1 = result.length(); + result = "
    3. " + + result.substring(numListLevel.length(), p1) + + "
    4. "; + }else if(numListLevel.length() > 0){ //less # + int i = numListLevel.length(); + String tmp = ""; + + while(! result.startsWith(numListLevel.substring(0,i)) ){ + tmp += "
    "; + i--; + } + numListLevel = numListLevel.substring(0,i); + p0 = numListLevel.length(); + p1 = result.length(); + + if(numListLevel.length() > 0){ + result = tmp + + "
  • " + + result.substring(p0, p1) + + "
  • "; + }else{ + result = tmp + result.substring(p0, p1); + } } - defListLevel = defListLevel.substring(0,i); - p0 = defListLevel.length(); - p1 = result.length(); - if(defListLevel.length() > 0){ - String resultCopy = result.substring(p0, p1); + // end contrib [AS] + + //* definition Lists contributed by [MN] based on unordered list code by [AS] + if(result.startsWith(defListLevel + ";")){ //more semicolons + String dt = ""; + String dd = ""; + p0 = result.indexOf(defListLevel); + p1 = result.length(); + String resultCopy = result.substring(defListLevel.length() + 1, p1); if((p0 = resultCopy.indexOf(":")) > 0){ dt = resultCopy.substring(0,p0); dd = resultCopy.substring(p0+1); - result = tmp + "
    " + dt + "
    " + "
    " + dd; + result = "
    " + "
    " + dt + "
    " + "
    " + dd; defList = true; } + defListLevel += ";"; + }else if(defListLevel.length() > 0 && result.startsWith(defListLevel)){ //equal number of semicolons + String dt = ""; + String dd = ""; + p0 = result.indexOf(defListLevel); + p1 = result.length(); + String resultCopy = result.substring(defListLevel.length(), p1); + if((p0 = resultCopy.indexOf(":")) > 0){ + dt = resultCopy.substring(0,p0); + dd = resultCopy.substring(p0+1); + result = "
    " + dt + "
    " + "
    " + dd; + defList = true; + } + }else if(defListLevel.length() > 0){ //less semicolons + String dt = ""; + String dd = ""; + int i = defListLevel.length(); + String tmp = ""; + while(! result.startsWith(defListLevel.substring(0,i)) ){ + tmp += "
    "; + i--; + } + defListLevel = defListLevel.substring(0,i); + p0 = defListLevel.length(); + p1 = result.length(); + if(defListLevel.length() > 0){ + String resultCopy = result.substring(p0, p1); + if((p0 = resultCopy.indexOf(":")) > 0){ + dt = resultCopy.substring(0,p0); + dd = resultCopy.substring(p0+1); + result = tmp + "
    " + dt + "
    " + "
    " + dd; + defList = true; + } }else{ - result = tmp + result.substring(p0, p1); + result = tmp + result.substring(p0, p1); } } // end contrib [MN] @@ -537,109 +537,102 @@ public class wikiCode { } } - //escape code ([=...=]) contributed by [MN] - //both [= and =] in the same line - else if(((p0 = result.indexOf("[="))>=0)&&((p1 = result.indexOf("=]"))>0)&&(!(preformatted))){ - //if(p0 < p1){ - String escapeText = result.substring(p0+2,p1); - - //BUGS TO BE FIXED: [=[=text=]=] does not work properly: - //[=[= undx=]x=] should resolve as [= undx=]x, but resolves as [= undxx=] - //ALSO [=[= und =]=] [= und =] leads to an exception - // - //handlicg cases where the text inside [= and =] also contains - //[= and =]. Example: [=[=...=]=] - //if(escapeText) - - //else{ + //escape code ([=...=]) contributed by [MN] + //both [= and =] in the same line + else if(((p0 = result.indexOf("[="))>=0)&&((p1 = result.indexOf("=]"))>0)&&(!(preformatted))){ + String escapeText = result.substring(p0+2,p1); + + //BUGS TO BE FIXED: [=[=text=]=] does not work properly: + //[=[= undx=]x=] should resolve as [= undx=]x, but resolves as [= undxx=] + //ALSO [=[= und =]=] [= und =] leads to an exception + // + //handlicg cases where the text inside [= and =] also contains + //[= and =]. Example: [=[=...=]=] + result = transformLine(result.substring(0,p0).replaceAll("!esc!", "!esc!!")+"!esc!txt!"+result.substring(p1+2).replaceAll("!esc!", "!esc!!"), switchboard); result = result.replaceAll("!esc!txt!", escapeText); - result = result.replaceAll("!esc!!", "!esc!"); - //} - //} - } + result = result.replaceAll("!esc!!", "!esc!"); + } - //start [= - else if(((p0 = result.indexOf("[="))>=0)&&(!escapeSpan)&&(!preformatted)){ - escape = true; //prevent surplus line breaks - escaped = true; //prevents
     being parsed
    -        String bq = "";   //gets filled with 
    s as needed - String escapeText = result.substring(p0+2); - //taking care of indented lines - while(result.substring(escindented,p0).startsWith(":")){ - escindented++; - bq = bq + "
    "; + //start [= + else if(((p0 = result.indexOf("[="))>=0)&&(!escapeSpan)&&(!preformatted)){ + escape = true; //prevent surplus line breaks + escaped = true; //prevents
     being parsed
    +            String bq = "";   //gets filled with 
    s as needed + String escapeText = result.substring(p0+2); + //taking care of indented lines + while(result.substring(escindented,p0).startsWith(":")){ + escindented++; + bq = bq + "
    "; + } + result = transformLine(result.substring(escindented,p0).replaceAll("!esc!", "!esc!!")+"!esc!txt!", switchboard); + result = bq + result.replaceAll("!esc!txt!", escapeText); + escape = false; + escapeSpan = true; } - result = transformLine(result.substring(escindented,p0).replaceAll("!esc!", "!esc!!")+"!esc!txt!", switchboard); - result = bq + result.replaceAll("!esc!txt!", escapeText); - escape = false; - escapeSpan = true; - } - //end =] - else if(((p0 = result.indexOf("=]"))>=0)&&(escapeSpan)&&(!preformatted)){ - escapeSpan = false; - String bq = ""; //gets filled with
    s as neede - String escapeText = result.substring(0,p0); - //taking care of indented lines - while(escindented > 0){ - bq = bq + "
    "; - escindented--; + //end =] + else if(((p0 = result.indexOf("=]"))>=0)&&(escapeSpan)&&(!preformatted)){ + escapeSpan = false; + String bq = ""; //gets filled with
    s as neede + String escapeText = result.substring(0,p0); + //taking care of indented lines + while(escindented > 0){ + bq = bq + "
    "; + escindented--; + } + result = transformLine("!esc!txt!"+result.substring(p0+2).replaceAll("!esc!", "!esc!!"), switchboard); + result = result.replaceAll("!esc!txt!", escapeText) + bq; + escaped = false; } - result = transformLine("!esc!txt!"+result.substring(p0+2).replaceAll("!esc!", "!esc!!"), switchboard); - result = result.replaceAll("!esc!txt!", escapeText) + bq; - escaped = false; - } - //end contrib [MN] + //end contrib [MN] - //preformatted code (
    ...
    ) contributed by [MN] - //implementation very similar to escape code (see above) - //both
     and 
    in the same line - else if(((p0 = result.indexOf("<pre>"))>=0)&&((p1 = result.indexOf("</pre>"))>0)&&(!(escaped))){ - //if(p0 < p1){ + //preformatted code (
    ...
    ) contributed by [MN] + //implementation very similar to escape code (see above) + //both
     and 
    in the same line + else if(((p0 = result.indexOf("<pre>"))>=0)&&((p1 = result.indexOf("</pre>"))>0)&&(!(escaped))){ String preformattedText = "
    "+result.substring(p0+11,p1)+"
    "; result = transformLine(result.substring(0,p0).replaceAll("!pre!", "!pre!!")+"!pre!txt!"+result.substring(p1+12).replaceAll("!pre!", "!pre!!"), switchboard); result = result.replaceAll("!pre!txt!", preformattedText); - result = result.replaceAll("!pre!!", "!pre!"); - //} - } - - //start
    -    else if(((p0 = result.indexOf("<pre>"))>=0)&&(!preformattedSpan)&&(!escaped)){
    -        preformatted = true;    //prevent surplus line breaks
    -        String bq ="";  //gets filled with 
    s as needed - String preformattedText = "
    "+result.substring(p0+11);
    -        //taking care of indented lines
    -        while(result.substring(preindented,p0).startsWith(":")){
    -            preindented++;
    -            bq = bq + "
    "; + result = result.replaceAll("!pre!!", "!pre!"); } - result = transformLine(result.substring(preindented,p0).replaceAll("!pre!", "!pre!!")+"!pre!txt!", switchboard); - result = bq + result.replaceAll("!pre!txt!", preformattedText); - result = result.replaceAll("!pre!!", "!pre!"); - preformattedSpan = true; - } - //end
    - else if(((p0 = result.indexOf("</pre>"))>=0)&&(preformattedSpan)&&(!escaped)){ - preformattedSpan = false; - String bq = ""; //gets filled with
    s as needed - String preformattedText = result.substring(0,p0)+"
    "; + //start
    +        else if(((p0 = result.indexOf("<pre>"))>=0)&&(!preformattedSpan)&&(!escaped)){
    +            preformatted = true;    //prevent surplus line breaks
    +            String bq ="";  //gets filled with 
    s as needed + String preformattedText = "
    "+result.substring(p0+11);
                 //taking care of indented lines
    -        while (preindented > 0){
    -            bq = bq + "
    "; - preindented--; + while(result.substring(preindented,p0).startsWith(":")){ + preindented++; + bq = bq + "
    "; + } + result = transformLine(result.substring(preindented,p0).replaceAll("!pre!", "!pre!!")+"!pre!txt!", switchboard); + result = bq + result.replaceAll("!pre!txt!", preformattedText); + result = result.replaceAll("!pre!!", "!pre!"); + preformattedSpan = true; } - result = transformLine("!pre!txt!"+result.substring(p0+12).replaceAll("!pre!", "!pre!!"), switchboard); - result = result.replaceAll("!pre!txt!", preformattedText) + bq; - result = result.replaceAll("!pre!!", "!pre!"); - preformatted = false; - } - //end contrib [MN] - replaced = false; - if ((result.endsWith(""))||(defList)||(escape)||(preformatted)) return result; - return result + "
    "; + //end
    + else if(((p0 = result.indexOf("</pre>"))>=0)&&(preformattedSpan)&&(!escaped)){ + preformattedSpan = false; + String bq = ""; //gets filled with s as needed + String preformattedText = result.substring(0,p0)+"
    "; + //taking care of indented lines + while (preindented > 0){ + bq = bq + ""; + preindented--; + } + result = transformLine("!pre!txt!"+result.substring(p0+12).replaceAll("!pre!", "!pre!!"), switchboard); + result = result.replaceAll("!pre!txt!", preformattedText) + bq; + result = result.replaceAll("!pre!!", "!pre!"); + preformatted = false; + } + //end contrib [MN] + + replaced = false; + if ((result.endsWith(""))||(defList)||(escape)||(preformatted)) return result; + return result + "
    "; } /*