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("