X-Git-Url: http://git.phpeclipse.com diff --git a/archive/org.plog4u.wiki/src/org/plog4u/wiki/filter/WikipediaParser.java b/archive/org.plog4u.wiki/src/org/plog4u/wiki/filter/WikipediaParser.java index 08a0e3b..0662a87 100644 --- a/archive/org.plog4u.wiki/src/org/plog4u/wiki/filter/WikipediaParser.java +++ b/archive/org.plog4u.wiki/src/org/plog4u/wiki/filter/WikipediaParser.java @@ -1,14 +1,10 @@ package org.plog4u.wiki.filter; -import java.io.IOException; -import java.io.Writer; import java.util.ArrayList; import java.util.NoSuchElementException; import java.util.Stack; import java.util.StringTokenizer; -//import org.apache.commons.logging.Log; -//import org.apache.commons.logging.LogFactory; import org.plog4u.wiki.filter.WikipediaFilter.InvalidInputException; import org.plog4u.wiki.filter.tags.AbstractTag; import org.plog4u.wiki.filter.tags.CloseTagToken; @@ -20,11 +16,9 @@ import org.radeox.api.engine.IncludeRenderEngine; import org.radeox.api.engine.RenderEngine; import org.radeox.api.engine.WikiRenderEngine; import org.radeox.filter.context.FilterContext; -import org.radeox.filter.interwiki.InterWiki; import org.radeox.macro.Macro; import org.radeox.macro.MacroRepository; import org.radeox.macro.parameter.MacroParameter; -import org.radeox.util.Encoder; import org.radeox.util.StringBufferWriter; /** @@ -199,7 +193,7 @@ public class WikipediaParser { } else { lastIndex++; } - fResultBuffer.append("&"); + fResultBuffer.append("&"); break; case '\'': // special html escape character if (lastIndex < (currentIndex - 1)) { @@ -217,7 +211,7 @@ public class WikipediaParser { } else { lastIndex++; } - fResultBuffer.append("""); + fResultBuffer.append("""); break; } } @@ -242,7 +236,7 @@ public class WikipediaParser { fResultBuffer.append(text.substring(lastIndex, currentIndex - 1)); lastIndex = currentIndex; } - fResultBuffer.append("<"); + fResultBuffer.append("<"); break; case '>': // special html escape character if (lastIndex < (currentIndex - 1)) { @@ -251,7 +245,7 @@ public class WikipediaParser { } else { lastIndex++; } - fResultBuffer.append(">"); + fResultBuffer.append(">"); break; case '&': // special html escape character if (lastIndex < (currentIndex - 1)) { @@ -260,7 +254,7 @@ public class WikipediaParser { } else { lastIndex++; } - fResultBuffer.append("&"); + fResultBuffer.append("&"); break; case '\'': // special html escape character if (lastIndex < (currentIndex - 1)) { @@ -278,7 +272,7 @@ public class WikipediaParser { } else { lastIndex++; } - fResultBuffer.append("""); + fResultBuffer.append("""); break; } } @@ -700,7 +694,7 @@ public class WikipediaParser { copyWhite(fWhiteStart, fWhiteStartPosition, 1); fWhiteStart = false; - int startHeadPosition = fCurrentPosition-1; + int startHeadPosition = fCurrentPosition - 1; if (readUntilEOL()) { // TODO not correct - improve this String head = new String(fSource, startHeadPosition, fCurrentPosition - startHeadPosition); @@ -837,7 +831,7 @@ public class WikipediaParser { if (foundUrl) { String urlString = new String(fSource, urlStartPosition - 1, fCurrentPosition - urlStartPosition); fCurrentPosition--; - WikipediaFilter.createExternalLink(fResultBuffer, fWikiEngine, urlString); + createExternalLink(urlString); continue; } break; @@ -912,17 +906,17 @@ public class WikipediaParser { // table // syntax continue; -// } else { -// SnipSnap / Radeox Macro Syntax -// if (readUntilChar('}')) { -// String macroStartTag; -// -// macroStartTag = new String(fSource, startMacroPosition, fCurrentPosition - startMacroPosition - 1); -// if (macroStartTag != null) { -// createMacro(startMacroPosition, macroStartTag); -// continue; -// } -// } + // } else { + // SnipSnap / Radeox Macro Syntax + // if (readUntilChar('}')) { + // String macroStartTag; + // + // macroStartTag = new String(fSource, startMacroPosition, fCurrentPosition - startMacroPosition - 1); + // if (macroStartTag != null) { + // createMacro(startMacroPosition, macroStartTag); + // continue; + // } + // } } break; case '<': @@ -1341,9 +1335,11 @@ public class WikipediaParser { } fResultBuffer.append(""); fResultBuffer.append(""); - fResultBuffer.append(Encoder.toEntity(alias.charAt(0)) + alias.substring(1)); +// fResultBuffer.append(Encoder.toEntity(alias.charAt(0)) + alias.substring(1)); + copyWhite(alias); fResultBuffer.append(""); } // else { @@ -1796,6 +1792,21 @@ public class WikipediaParser { // fCurrentPosition = temp - 1; // return false; // } + public void createExternalLink(String urlString) { + // Does our engine know images? + if (fWikiEngine instanceof ImageRenderEngine) { + fResultBuffer.append(((ImageRenderEngine) fWikiEngine).getExternalImageLink()); + } + fResultBuffer.append(""); + fResultBuffer.append(""); +// fResultBuffer.append(Encoder.escape(urlString)); + copyWhite(urlString); + fResultBuffer.append(""); + } + private void handleWikipediaLink(String linkText, String suffix) { String name = linkText; if (name != null) { @@ -1803,7 +1814,7 @@ public class WikipediaParser { // Configuration probably wrote [http://radeox.org] instead of // http://radeox.org if (index != -1) { - WikipediaFilter.createExternalLink(fResultBuffer, fWikiEngine, name.substring(index)); + createExternalLink(name.substring(index)); // show error // fResult.append("
Do not surround URLs // with [...].
"); @@ -1833,31 +1844,32 @@ public class WikipediaParser { // name = name.substring(colonIndex + 1); // } - int atIndex = name.lastIndexOf('@'); +// int atIndex = name.lastIndexOf('@'); // InterWiki link ? - if (-1 != atIndex) { - String extSpace = name.substring(atIndex + 1); - // known extarnal space ? - InterWiki interWiki = InterWiki.getInstance(); - if (interWiki.contains(extSpace)) { - name = name.substring(0, atIndex); - Writer writer = new StringBufferWriter(fResultBuffer); - try { - if (-1 != hashIndex) { - interWiki.expand(writer, extSpace, name, hash); - } else { - interWiki.expand(writer, extSpace, name, ""); - } - } catch (IOException e) { - // log.debug("InterWiki " + extSpace + " not found."); - } - } else { - fResultBuffer.append("["); - fResultBuffer.append(name); - fResultBuffer.append("?]"); - } - } else { +// if (-1 != atIndex) { +// String extSpace = name.substring(atIndex + 1); +// // known extarnal space ? +// InterWiki interWiki = InterWiki.getInstance(); +// if (interWiki.contains(extSpace)) { +// name = name.substring(0, atIndex); +// Writer writer = new StringBufferWriter(fResultBuffer); +// try { +// if (-1 != hashIndex) { +// interWiki.expand(writer, extSpace, name, hash); +// } else { +// interWiki.expand(writer, extSpace, name, ""); +// } +// } catch (IOException e) { +// // log.debug("InterWiki " + extSpace + " not found."); +// } +// } else { +// fResultBuffer.append("["); +// fResultBuffer.append(name); +// fResultBuffer.append("?]"); +// } +// } else { // internal link + name = Encoder.escape(name); if (name.startsWith("Image:") && (fWikiEngine instanceof ImageRenderEngine)) { // server part of rendering images ImageRenderEngine imageEngine = (ImageRenderEngine) fWikiEngine; @@ -1898,7 +1910,7 @@ public class WikipediaParser { // cannot display/create wiki, so just display the text fResultBuffer.append(name); } - } +// } } } }