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("%s>\n", WikiTokenizer.getListTag(prefixChar)));
+ builder.append(String.format("%s>\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 {