X-Git-Url: http://gitweb.fperrin.net/?a=blobdiff_plain;f=src%2Fcom%2Fhughes%2Fandroid%2Fdictionary%2Fparser%2Fwiktionary%2FWholeSectionToHtmlParser.java;h=f38b5503086a5c27b988dcdaa93cab06525ba6c3;hb=b371830273946c376e3e1ef4650a4b7215471a89;hp=d0a4908f10ccad4962dc5ce47ebcb2af5b10daa3;hpb=de4cc4f014fac5377bb202ca766b22ff63c4100d;p=DictionaryPC.git diff --git a/src/com/hughes/android/dictionary/parser/wiktionary/WholeSectionToHtmlParser.java b/src/com/hughes/android/dictionary/parser/wiktionary/WholeSectionToHtmlParser.java index d0a4908..f38b550 100644 --- a/src/com/hughes/android/dictionary/parser/wiktionary/WholeSectionToHtmlParser.java +++ b/src/com/hughes/android/dictionary/parser/wiktionary/WholeSectionToHtmlParser.java @@ -5,6 +5,8 @@ import java.util.List; import java.util.Map; import java.util.regex.Pattern; +import org.apache.commons.lang3.StringEscapeUtils; + import com.hughes.android.dictionary.engine.EntryTypeName; import com.hughes.android.dictionary.engine.HtmlEntry; import com.hughes.android.dictionary.engine.IndexBuilder; @@ -48,7 +50,7 @@ public class WholeSectionToHtmlParser extends AbstractWiktionaryParser { @Override public void onPlainText(String plainText) { - super.onPlainText(plainText); + super.onPlainText(StringEscapeUtils.escapeHtml3(plainText)); } @Override @@ -84,9 +86,9 @@ public class WholeSectionToHtmlParser extends AbstractWiktionaryParser { } return; } - onPlainText(String.format("\n", depth)); + builder.append(String.format("\n", depth)); dispatch(headingText, null); - onPlainText(String.format("\n", depth)); + builder.append(String.format("\n", depth)); } final List listPrefixStack = new ArrayList(); @@ -97,12 +99,12 @@ public class WholeSectionToHtmlParser extends AbstractWiktionaryParser { } final String prefix = wikiTokenizer.listItemPrefix(); while (listPrefixStack.size() < prefix.length()) { - onPlainText(String.format("<%s>", WikiTokenizer.getListTag(prefix.charAt(listPrefixStack.size())))); + builder.append(String.format("<%s>", WikiTokenizer.getListTag(prefix.charAt(listPrefixStack.size())))); listPrefixStack.add(prefix.charAt(listPrefixStack.size())); } - onPlainText("
  • "); + builder.append("
  • "); dispatch(wikiTokenizer.listItemWikiText(), null); - onPlainText("
  • \n"); + builder.append("\n"); WikiTokenizer nextToken = wikiTokenizer.nextToken(); boolean returnToLineStart = false; @@ -121,7 +123,7 @@ public class WholeSectionToHtmlParser extends AbstractWiktionaryParser { } while (listPrefixStack.size() > nextListHeader.length()) { final char prefixChar = listPrefixStack.remove(listPrefixStack.size() - 1); - onPlainText(String.format("\n", WikiTokenizer.getListTag(prefixChar))); + builder.append(String.format("\n", WikiTokenizer.getListTag(prefixChar))); } } @@ -131,16 +133,16 @@ public class WholeSectionToHtmlParser extends AbstractWiktionaryParser { public void onMarkup(WikiTokenizer wikiTokenizer) { if ("'''".equals(wikiTokenizer.token())) { if (!boldOn) { - onPlainText(""); + builder.append(""); } else { - onPlainText(""); + builder.append(""); } boldOn = !boldOn; } else if ("''".equals(wikiTokenizer.token())) { if (!italicOn) { - onPlainText(""); + builder.append(""); } else { - onPlainText(""); + builder.append(""); } italicOn = !italicOn; } else {