package org.oelerich.BBCodeParser;
public class SimpleParser extends BBCodeParser {
public static String allNodes = "string, b, u, s, i, mod, spoiler, "
+ "code, php, html, img, quote, url, list, table, size, "
+ "color, left, center, right, intend, plain, font";
// TODO:
// email, user, media
// Better spoilers
public SimpleParser() {
super();
BBCodeTag b;
b = new BBCodeTag();
b.mTag = "b";
b.mDescription = "Bold";
b.allow(allNodes);
b.html("<b>{0}</b>");
b.mInvalidStartRecovery = BBCodeTag.RECOVERY_CLOSE;
b.mInvalidEndRecovery = BBCodeTag.RECOVERY_REOPEN;
registerTag(b);
b = new BBCodeTag();
b.mTag = "u";
b.mDescription = "Underline";
b.allow(allNodes);
b.html("<u>{0}</u>");
b.mInvalidStartRecovery = BBCodeTag.RECOVERY_CLOSE;
b.mInvalidEndRecovery = BBCodeTag.RECOVERY_REOPEN;
registerTag(b);
b = new BBCodeTag();
b.mTag = "s";
b.mDescription = "Strike";
b.allow(allNodes);
b.html("<strike>{0}</strike>");
b.mInvalidStartRecovery = BBCodeTag.RECOVERY_CLOSE;
b.mInvalidEndRecovery = BBCodeTag.RECOVERY_REOPEN;
registerTag(b);
b = new BBCodeTag();
b.mTag = "i";
b.mDescription = "Italic";
b.allow(allNodes);
b.html("<i>{0}</i>");
b.mInvalidStartRecovery = BBCodeTag.RECOVERY_CLOSE;
b.mInvalidEndRecovery = BBCodeTag.RECOVERY_REOPEN;
registerTag(b);
b = new BBCodeTag();
b.mTag = "spoiler";
b.mDescription = "Spoiler";
b.allow(allNodes);
b.html("<pre>{0}<pre>");
b.mInvalidStartRecovery = BBCodeTag.RECOVERY_CLOSE;
b.mInvalidEndRecovery = BBCodeTag.RECOVERY_REOPEN;
registerTag(b);
b = new BBCodeTag();
b.mTag = "code";
b.mDescription = "Code";
b.allow(allNodes);
b.html("<pre style='background:#85D4FF;'>{0}</pre>");
b.mInvalidStartRecovery = BBCodeTag.RECOVERY_CLOSE;
b.mInvalidEndRecovery = BBCodeTag.RECOVERY_REOPEN;
registerTag(b);
b = new BBCodeTag();
b.mTag = "html";
b.mDescription = "HTML Code";
b.allow(allNodes);
b.html("<pre>{0}</pre>");
b.mInvalidStartRecovery = BBCodeTag.RECOVERY_CLOSE;
b.mInvalidEndRecovery = BBCodeTag.RECOVERY_REOPEN;
registerTag(b);
b = new BBCodeTag();
b.mTag = "php";
b.mDescription = "PHP Code";
b.allow(allNodes);
b.html("<pre>{0}</pre>");
b.mInvalidStartRecovery = BBCodeTag.RECOVERY_CLOSE;
b.mInvalidEndRecovery = BBCodeTag.RECOVERY_REOPEN;
registerTag(b);
b = new BBCodeTag();
b.mTag = "mod";
b.mDescription = "Highlight";
b.allow(allNodes);
b.html("<font color=\"red\">{0}</font>");
b.mInvalidStartRecovery = BBCodeTag.RECOVERY_CLOSE;
b.mInvalidEndRecovery = BBCodeTag.RECOVERY_REOPEN;
registerTag(b);
b = new BBCodeTag();
b.mTag = "list";
b.mDescription = "List";
b.allow("*");
b.html(0, "{0}");
b.html(1, "{0}");
b.mInvalidRecoveryAddTag = "*";
b.mInvalidStartRecovery = BBCodeTag.RECOVERY_ADD;
b.mInvalidStringRecovery = BBCodeTag.RECOVERY_ADD;
b.mInvalidEndRecovery = BBCodeTag.RECOVERY_CLOSE;
registerTag(b);
b = new BBCodeTag();
b.mTag = "quote";
b.mDescription = "Quote";
b.allow(allNodes);
b.html(0, "<pre style='background:#00A6FF'>{0}</pre>");
// b.html(3, "<pre style='background:#00A6FF'><b>{3}</b><br/>{0}");
b.mInvalidStartRecovery = BBCodeTag.RECOVERY_CLOSE;
b.mInvalidEndRecovery = BBCodeTag.RECOVERY_REOPEN;
registerTag(b);
b = new BBCodeTag();
b.mTag = "*";
b.mDescription = "Listitem";
b.allow(allNodes);
b.html(" * {0}");
b.mInvalidStartRecovery = BBCodeTag.RECOVERY_CLOSE;
b.mInvalidEndRecovery = BBCodeTag.RECOVERY_CLOSE;
registerTag(b);
b = new BBCodeTag();
b.mTag = "url";
b.mDescription = "Link";
b.allow(allNodes);
b.html(0, "<a href={0}>{0}</a>");
b.html(1, "<a href={1}>{0}</a>");
b.mInvalidStartRecovery = BBCodeTag.RECOVERY_STRING;
b.mInvalidEndRecovery = BBCodeTag.RECOVERY_STRING;
registerTag(b);
b = new BBCodeTag();
b.mTag = "img";
b.mDescription = "Image";
b.allow("string");
b.html("<img src={0} />");
b.mInvalidStartRecovery = BBCodeTag.RECOVERY_CLOSE;
b.mInvalidEndRecovery = BBCodeTag.RECOVERY_REOPEN;
registerTag(b);
b = new BBCodeTag();
b.mTag = "table";
b.mDescription = "Table";
b.allow("--");
b.html("<table></table>");
b.mInvalidRecoveryAddTag = "--";
b.mInvalidStartRecovery = BBCodeTag.RECOVERY_ADD;
b.mInvalidStringRecovery = BBCodeTag.RECOVERY_ADD;
b.mInvalidEndRecovery = BBCodeTag.RECOVERY_CLOSE;
registerTag(b);
b = new BBCodeTag();
b.mTag = "--";
b.mDescription = "TableRow";
b.allow("||");
b.html("<tr></tr>");
b.mInvalidRecoveryAddTag = "||";
b.mInvalidStartRecovery = BBCodeTag.RECOVERY_ADD;
b.mInvalidStringRecovery = BBCodeTag.RECOVERY_ADD;
b.mInvalidEndRecovery = BBCodeTag.RECOVERY_CLOSE;
registerTag(b);
b = new BBCodeTag();
b.mTag = "||";
b.mDescription = "TableCol";
b.allow(allNodes);
b.html("<td></td>");
b.mInvalidStartRecovery = BBCodeTag.RECOVERY_CLOSE;
b.mInvalidEndRecovery = BBCodeTag.RECOVERY_CLOSE;
registerTag(b);
b = new SizeTag();
registerTag(b);
b = new BBCodeTag();
b.mTag = "font";
b.mDescription = "Font";
b.allow(allNodes);
b.html(1, "<font color=\"{1}\">{0}</font>");
b.mInvalidStartRecovery = BBCodeTag.RECOVERY_CLOSE;
b.mInvalidEndRecovery = BBCodeTag.RECOVERY_REOPEN;
registerTag(b);
b = new BBCodeTag();
b.mTag = "color";
b.mDescription = "Color";
b.allow(allNodes);
b.html(1, "<span style=\"color:{1}\">{0}</span>");
// b.html(3, "<span style=\"color:{1},{2},{3}\">{0}</span>");
b.mInvalidStartRecovery = BBCodeTag.RECOVERY_CLOSE;
b.mInvalidEndRecovery = BBCodeTag.RECOVERY_REOPEN;
registerTag(b);
b = new BBCodeTag();
b.mTag = "left";
b.mDescription = "Left";
b.allow(allNodes);
b.html("<div style=\"text-align:left\">{0}</div>");
b.mInvalidStartRecovery = BBCodeTag.RECOVERY_CLOSE;
b.mInvalidEndRecovery = BBCodeTag.RECOVERY_REOPEN;
registerTag(b);
b = new BBCodeTag();
b.mTag = "center";
b.mDescription = "Center";
b.allow(allNodes);
b.html("<div style=\"text-align:center\">{0}</div>");
b.mInvalidStartRecovery = BBCodeTag.RECOVERY_CLOSE;
b.mInvalidEndRecovery = BBCodeTag.RECOVERY_REOPEN;
registerTag(b);
b = new BBCodeTag();
b.mTag = "right";
b.mDescription = "Right";
b.allow(allNodes);
b.html("<div style=\"text-align:right\">{0}</div>");
b.mInvalidStartRecovery = BBCodeTag.RECOVERY_CLOSE;
b.mInvalidEndRecovery = BBCodeTag.RECOVERY_REOPEN;
registerTag(b);
b = new BBCodeTag();
b.mTag = "indent";
b.mDescription = "Indent";
b.allow(allNodes);
b.html("<div style=\"padding-left:30px;\">{0}</div>");
b.mInvalidStartRecovery = BBCodeTag.RECOVERY_CLOSE;
b.mInvalidEndRecovery = BBCodeTag.RECOVERY_REOPEN;
registerTag(b);
b = new BBCodeTag();
b.mTag = "plain";
b.mDescription = "Plain text";
b.allow("");
b.html("");
b.mInvalidStartRecovery = BBCodeTag.RECOVERY_CLOSE;
b.mInvalidEndRecovery = BBCodeTag.RECOVERY_REOPEN;
registerTag(b);
}
public static class SizeTag extends BBCodeTag {
public SizeTag() {
mTag = "size";
mDescription = "Size";
allow(allNodes);
html(1, "<span style=\"font-size:{1}\">{0}</span>");
mInvalidStartRecovery = BBCodeTag.RECOVERY_CLOSE;
mInvalidEndRecovery = BBCodeTag.RECOVERY_REOPEN;
}
@Override
public String replaceArgument(int id, String what) {
if (id == 1) {
if (what.equals("1")) {
return "9px";
} else if (what.equals("2")) {
return "10px";
} else if (what.equals("3")) {
return "12px";
} else if (what.equals("4")) {
return "15px";
} else if (what.equals("5")) {
return "18px";
} else if (what.equals("6")) {
return "22px";
} else if (what.equals("7")) {
return "26px";
}
}
return super.replaceArgument(id, what);
}
}
}