void onHtml(WikiTokenizer wikiTokenizer);
}
+ public static class DoNothingCallback implements Callback {
+
+ @Override
+ public void onPlainText(String text) {
+ }
+
+ @Override
+ public void onMarkup(WikiTokenizer wikiTokenizer) {
+ }
+
+ @Override
+ public void onWikiLink(WikiTokenizer wikiTokenizer) {
+ }
+
+ @Override
+ public void onNewline(WikiTokenizer wikiTokenizer) {
+ }
+
+ @Override
+ public void onFunction(WikiTokenizer tokenizer, String functionName,
+ List<String> functionPositionArgs, Map<String, String> functionNamedArgs) {
+ }
+
+ @Override
+ public void onHeading(WikiTokenizer wikiTokenizer) {
+ }
+
+ @Override
+ public void onListItem(WikiTokenizer wikiTokenizer) {
+ }
+
+ @Override
+ public void onComment(WikiTokenizer wikiTokenizer) {
+ }
+
+ @Override
+ public void onHtml(WikiTokenizer wikiTokenizer) {
+ }
+ }
+
//private static final Pattern wikiTokenEvent = Pattern.compile("($)", Pattern.MULTILINE);
private static final Pattern wikiTokenEvent = Pattern.compile("(" +
"\\{\\{|\\}\\}|" +
}
public WikiTokenizer(final String wikiText, final boolean isNewline) {
- this.wikiText = wikiText;
+ this.wikiText = wikiText.replaceAll("\u2028", "\n");
this.matcher = wikiTokenEvent.matcher(wikiText);
justReturnedNewline = isNewline;
}
}
}
+ public List<String> errors() {
+ return errors;
+ }
+
public boolean isNewline() {
return justReturnedNewline;
}
assert isWikiLink();
// "[[.."
if (lastUnescapedPipePos != -1) {
- return wikiText.substring(lastUnescapedPipePos + 1, end - 2);
+ return trimNewlines(wikiText.substring(lastUnescapedPipePos + 1, end - 2));
}
assert start + 2 < wikiText.length() && end >= 2: wikiText;
- return wikiText.substring(start + 2, end - 2);
+ return trimNewlines(wikiText.substring(start + 2, end - 2));
}
public String wikiLinkDest() {
assert isWikiLink();
// "[[.."
if (firstUnescapedPipePos != -1) {
- return wikiText.substring(start + 2, firstUnescapedPipePos);
+ return trimNewlines(wikiText.substring(start + 2, firstUnescapedPipePos));
}
return null;
}
assert matcher.end() > end || matchText.length() == 0: "Group=" + matcher.group();
if (matchText.length() == 0) {
- assert matchStart == wikiText.length() || wikiText.charAt(matchStart) == '\n';
+ assert matchStart == wikiText.length() || wikiText.charAt(matchStart) == '\n' : wikiText + ", " + matchStart;
if (firstNewline == -1) {
firstNewline = matcher.end();
}