Package info.bliki.html.jspwiki

Source Code of info.bliki.html.jspwiki.ToJSPWiki

package info.bliki.html.jspwiki;

import info.bliki.html.googlecode.ListGCTag;
import info.bliki.html.googlecode.TableGCTag;
import info.bliki.html.wikipedia.ATag;
import info.bliki.html.wikipedia.AbstractHTMLToWiki;
import info.bliki.html.wikipedia.HTMLTag;
import info.bliki.html.wikipedia.IHTMLToWiki;
import info.bliki.html.wikipedia.NoOutputTag;
import info.bliki.html.wikipedia.OpenCloseTag;
import info.bliki.htmlcleaner.BaseToken;
import info.bliki.htmlcleaner.EndTagToken;

import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;


/**
* Convert HTML text to Google Code wiki syntax
*
*/
public class ToJSPWiki extends AbstractHTMLToWiki implements IHTMLToWiki {
  static private final Map<String, HTMLTag> TAG_MAP = new HashMap<String, HTMLTag>();
  static {
    TAG_MAP.put("a", new ATag("[", "]"));
    TAG_MAP.put("b", new OpenCloseTag("__", "__"));
    TAG_MAP.put("strong", new OpenCloseTag("__", "__"));
    TAG_MAP.put("i", new OpenCloseTag("''", "''"));
    TAG_MAP.put("em", new OpenCloseTag("''", "''"));
    TAG_MAP.put("table", new TableGCTag());
    // TAG_MAP.put("caption", new CaptionTag());
    TAG_MAP.put("tr", new TrJSPWikiTag());
    TAG_MAP.put("td", new TdJSPWikiTag());
    TAG_MAP.put("th", new ThJSPWikiTag());
    // TAG_MAP.put("img", new ImgTag());
    TAG_MAP.put("p", new OpenCloseTag("\n", "\n\n"));
    // TAG_MAP.put("code", new OpenCloseTag("{{{", "}}}"));
    // TAG_MAP.put("blockquote", new OpenCloseTag("<blockquote>",
    // "</blockquote>"));
    // TAG_MAP.put("u", new OpenCloseTag("<u>", "</u>"));
    // TAG_MAP.put("del", new OpenCloseTag("~~", "~~"));
    // TAG_MAP.put("s", new OpenCloseTag("~~", "~~"));
    // TAG_MAP.put("sub", new OpenCloseTag(",,", ",,"));
    // TAG_MAP.put("sup", new OpenCloseTag("^", "^"));
    // TAG_MAP.put("div", new OpenCloseHTMLTag("\n<div", "\n</div>"));
    // TAG_MAP.put("font", new OpenCloseHTMLTag("<font", "</font>"));
    TAG_MAP.put("pre", new OpenCloseTag("\n{{\n", "\n}}\n"));
    TAG_MAP.put("h1", new OpenCloseTag("\n!!!", "\n", true));
    TAG_MAP.put("h2", new OpenCloseTag("\n!!!", "\n", true));
    TAG_MAP.put("h3", new OpenCloseTag("\n!!", "\n", true));
    TAG_MAP.put("h4", new OpenCloseTag("\n!", "\n", true));
    TAG_MAP.put("h5", new OpenCloseTag("\n!", "\n", true));
    TAG_MAP.put("h6", new OpenCloseTag("\n!", "\n", true));
    TAG_MAP.put("ul", new ListGCTag("*", "*", "#"));
    TAG_MAP.put("ol", new ListGCTag("#", "*", "#"));
    TAG_MAP.put("script", new NoOutputTag());
  }

  public ToJSPWiki(boolean noDiv, boolean noFont) {
    super(TAG_MAP, noDiv, noFont);
  }

  public ToJSPWiki() {
    this(false, false);
  }

  @Override
  public void nodesToText(List nodes, StringBuilder resultBuffer) {
    if (nodes != null && !nodes.isEmpty()) {
      Iterator childrenIt = nodes.iterator();
      while (childrenIt.hasNext()) {
        Object item = childrenIt.next();
        if (item != null) {
          if (item instanceof List) {
            nodesToText((List) item, resultBuffer);
          } else if (item instanceof EndTagToken) {
            EndTagToken node = (EndTagToken) item;
            if (node.getName().equals("br")) {
              resultBuffer.append("\\\\\n");
            } else if (node.getName().equals("hr")) {
              resultBuffer.append("\n----\n");
            }
          } else if (item instanceof BaseToken) {
            nodeToWiki((BaseToken) item, resultBuffer);
          }
        }
      }
    }
  }
}
TOP

Related Classes of info.bliki.html.jspwiki.ToJSPWiki

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.