use of org.jamwiki.parser.ParserInput in project OpenOLAT by OpenOLAT.
the class WikiPageDocument method getContent.
private static String getContent(WikiPage wikiPage) {
try {
ParserInput input = new ParserInput();
input.setWikiUser(null);
input.setAllowSectionEdit(false);
input.setDepth(2);
input.setContext("");
input.setLocale(Locale.ENGLISH);
input.setTopicName("dummy");
input.setUserIpAddress("0.0.0.0");
input.setDataHandler(DUMMY_DATA_HANDLER);
input.setVirtualWiki("/olat");
AbstractParser parser = new JFlexParser(input);
ParserDocument parsedDoc = parser.parseHTML(wikiPage.getContent());
String parsedContent = parsedDoc.getContent();
String filteredContent = FilterFactory.getHtmlTagAndDescapingFilter().filter(parsedContent);
return filteredContent;
} catch (Exception e) {
log.error("", e);
return wikiPage.getContent();
}
}
use of org.jamwiki.parser.ParserInput in project OpenOLAT by OpenOLAT.
the class WikiMarkupRenderer method render.
/**
* @see org.olat.core.gui.components.ComponentRenderer#render(org.olat.core.gui.render.Renderer,
* org.olat.core.gui.render.StringOutput,
* org.olat.core.gui.components.Component,
* org.olat.core.gui.render.URLBuilder,
* org.olat.core.gui.translator.Translator,
* org.olat.core.gui.render.RenderResult, java.lang.String[])
*/
@Override
public void render(Renderer renderer, StringOutput sb, Component source, URLBuilder ubu, Translator translator, RenderResult renderResult, String[] args) {
WikiMarkupComponent wikiComp = (WikiMarkupComponent) source;
AJAXFlags flags = renderer.getGlobalSettings().getAjaxFlags();
boolean iframePostEnabled = flags.isIframePostEnabled();
ParserInput input = new ParserInput();
input.setWikiUser(null);
input.setAllowSectionEdit(false);
input.setDepth(10);
input.setContext("");
// input.setTableOfContents(null);
input.setLocale(new Locale("en"));
// input.setVirtualWiki(Long.toString(wikiComp.getOres().getResourceableId()));
input.setTopicName("dummy");
input.setUserIpAddress("0.0.0.0");
OlatWikiDataHandler dataHandler = new OlatWikiDataHandler(wikiComp.getOres(), wikiComp.getImageBaseUri());
input.setDataHandler(dataHandler);
StringOutput out = new StringOutput(100);
ubu.buildURI(out, null, null, iframePostEnabled ? AJAXFlags.MODE_TOBGIFRAME : AJAXFlags.MODE_NORMAL);
String uri = out.toString();
ParserDocument parsedDoc = null;
String uniqueId = "o_wiki".concat(wikiComp.getDispatchID());
try {
uri = URLDecoder.decode(uri, "utf-8");
input.setVirtualWiki(uri.substring(1, uri.length() - 1));
if (iframePostEnabled) {
String targetUrl = " onclick=\"o_XHREvent(jQuery(this).attr('href'),false,true); return false;\"";
input.setURLTarget(targetUrl);
}
sb.append("<div style=\"min-height:" + wikiComp.getMinHeight() + "px\" id=\"");
sb.append(uniqueId);
sb.append("\">");
JFlexParser parser = new JFlexParser(input);
parsedDoc = parser.parseHTML(wikiComp.getWikiContent());
} catch (UnsupportedEncodingException e) {
// encoding utf-8 should be ok
} catch (Exception e) {
throw new OLATRuntimeException(this.getClass(), "error while rendering wiki page with content:" + wikiComp.getWikiContent(), e);
}
// Use global js math formatter for latex formulas
sb.append(Formatter.formatLatexFormulas(parsedDoc.getContent()));
sb.append("</div>");
// set targets of media, image and external links to target "_blank"
sb.append("<script type=\"text/javascript\">/* <![CDATA[ */ ");
String instanceUrl = Settings.getServerContextPathURI();
sb.append("changeAnchorTargets('").append(uniqueId).append("','").append(instanceUrl).append("');");
sb.append("/* ]]> */</script>");
}
use of org.jamwiki.parser.ParserInput in project openolat by klemens.
the class WikiPageDocument method getContent.
private static String getContent(WikiPage wikiPage) {
try {
ParserInput input = new ParserInput();
input.setWikiUser(null);
input.setAllowSectionEdit(false);
input.setDepth(2);
input.setContext("");
input.setLocale(Locale.ENGLISH);
input.setTopicName("dummy");
input.setUserIpAddress("0.0.0.0");
input.setDataHandler(DUMMY_DATA_HANDLER);
input.setVirtualWiki("/olat");
AbstractParser parser = new JFlexParser(input);
ParserDocument parsedDoc = parser.parseHTML(wikiPage.getContent());
String parsedContent = parsedDoc.getContent();
String filteredContent = FilterFactory.getHtmlTagAndDescapingFilter().filter(parsedContent);
return filteredContent;
} catch (Exception e) {
log.error("", e);
return wikiPage.getContent();
}
}
use of org.jamwiki.parser.ParserInput in project openolat by klemens.
the class WikiMarkupRenderer method render.
/**
* @see org.olat.core.gui.components.ComponentRenderer#render(org.olat.core.gui.render.Renderer,
* org.olat.core.gui.render.StringOutput,
* org.olat.core.gui.components.Component,
* org.olat.core.gui.render.URLBuilder,
* org.olat.core.gui.translator.Translator,
* org.olat.core.gui.render.RenderResult, java.lang.String[])
*/
@Override
public void render(Renderer renderer, StringOutput sb, Component source, URLBuilder ubu, Translator translator, RenderResult renderResult, String[] args) {
WikiMarkupComponent wikiComp = (WikiMarkupComponent) source;
AJAXFlags flags = renderer.getGlobalSettings().getAjaxFlags();
boolean iframePostEnabled = flags.isIframePostEnabled();
ParserInput input = new ParserInput();
input.setWikiUser(null);
input.setAllowSectionEdit(false);
input.setDepth(10);
input.setContext("");
// input.setTableOfContents(null);
input.setLocale(new Locale("en"));
// input.setVirtualWiki(Long.toString(wikiComp.getOres().getResourceableId()));
input.setTopicName("dummy");
input.setUserIpAddress("0.0.0.0");
OlatWikiDataHandler dataHandler = new OlatWikiDataHandler(wikiComp.getOres(), wikiComp.getImageBaseUri());
input.setDataHandler(dataHandler);
StringOutput out = new StringOutput(100);
ubu.buildURI(out, null, null, iframePostEnabled ? AJAXFlags.MODE_TOBGIFRAME : AJAXFlags.MODE_NORMAL);
String uri = out.toString();
ParserDocument parsedDoc = null;
String uniqueId = "o_wiki".concat(wikiComp.getDispatchID());
try {
uri = URLDecoder.decode(uri, "utf-8");
input.setVirtualWiki(uri.substring(1, uri.length() - 1));
if (iframePostEnabled) {
String targetUrl = " onclick=\"o_XHREvent(jQuery(this).attr('href'),false,true); return false;\"";
input.setURLTarget(targetUrl);
}
sb.append("<div style=\"min-height:" + wikiComp.getMinHeight() + "px\" id=\"");
sb.append(uniqueId);
sb.append("\">");
JFlexParser parser = new JFlexParser(input);
parsedDoc = parser.parseHTML(wikiComp.getWikiContent());
} catch (UnsupportedEncodingException e) {
// encoding utf-8 should be ok
} catch (Exception e) {
throw new OLATRuntimeException(this.getClass(), "error while rendering wiki page with content:" + wikiComp.getWikiContent(), e);
}
// Use global js math formatter for latex formulas
sb.append(Formatter.formatLatexFormulas(parsedDoc.getContent()));
sb.append("</div>");
// set targets of media, image and external links to target "_blank"
sb.append("<script type=\"text/javascript\">/* <![CDATA[ */ ");
String instanceUrl = Settings.getServerContextPathURI();
sb.append("changeAnchorTargets('").append(uniqueId).append("','").append(instanceUrl).append("');");
sb.append("/* ]]> */</script>");
}
use of org.jamwiki.parser.ParserInput in project openolat by klemens.
the class WikiPageMediaController method getContent.
private static String getContent(String content) {
try {
ParserInput input = new ParserInput();
input.setWikiUser(null);
input.setAllowSectionEdit(false);
input.setDepth(2);
input.setContext("");
input.setLocale(Locale.ENGLISH);
input.setTopicName("dummy");
input.setUserIpAddress("0.0.0.0");
input.setDataHandler(new DummyDataHandler());
input.setVirtualWiki("/olat");
AbstractParser parser = new JFlexParser(input);
ParserDocument parsedDoc = parser.parseHTML(content);
String parsedContent = parsedDoc.getContent();
return FilterFactory.getHtmlTagAndDescapingFilter().filter(parsedContent);
} catch (Exception e) {
log.error("", e);
return content;
}
}
Aggregations