package org.qrone.r7.format; import java.io.StringWriter; import java.io.Writer; import org.eclipse.mylyn.wikitext.core.parser.MarkupParser; import org.eclipse.mylyn.wikitext.core.parser.builder.HtmlDocumentBuilder; import org.eclipse.mylyn.wikitext.textile.core.TextileLanguage; import org.qrone.r7.resolver.URIResolver; public class Textile extends XFormat<String>{ private static MarkupParser parser; public Textile(URIResolver resolver) { super(resolver); } public static MarkupParser getParser(Writer writer) { if(parser == null){ HtmlDocumentBuilder builder = new HtmlDocumentBuilder(writer); builder.setEmitAsDocument(false); parser = new MarkupParser(new TextileLanguage()); parser.setBuilder(builder); } return parser; } @Override public String decode(String data) { StringWriter writer = new StringWriter(); getParser(writer).parse(data); return writer.toString(); } @Override public String encode(String data) { throw new UnsupportedOperationException(); } }