public MutableDataSet getNativeOptions() { MutableDataSet dataSet = new MutableDataSet(); dataSet.set(Parser.EXTENSIONS, parserExtensions); for (Entry<DataKey, Object> entry : options.getAll().entrySet()) { dataSet.set(entry.getKey(), entry.getValue()); } return dataSet; }
@Signature public PMarkdownOptions setRenderHardBreak(String value) { options.set(HtmlRenderer.HARD_BREAK, hardBreak); return this; }
private BlockFactory(DataHolder options) { super(options); myHtmlCommentBlocksInterruptParagraph = Parser.HTML_COMMENT_BLOCKS_INTERRUPT_PARAGRAPH.getFrom(options); this.myHtmlBlockDeepParser = options.get(Parser.HTML_BLOCK_DEEP_PARSER); this.myHtmlBlockDeepParseNonBlock = options.get(Parser.HTML_BLOCK_DEEP_PARSE_NON_BLOCK); this.myHtmlBlockDeepParseFirstOpenTagOnOneLine = options.get(Parser.HTML_BLOCK_DEEP_PARSE_FIRST_OPEN_TAG_ON_ONE_LINE); this.myHtmlBlockCommentOnlyFullLine = options.get(Parser.HTML_BLOCK_COMMENT_ONLY_FULL_LINE); this.myHtmlBlockStartOnlyOnBlockTags = options.get(Parser.HTML_BLOCK_START_ONLY_ON_BLOCK_TAGS); }
@Override public boolean transferReferences(final MutableDataHolder document, final DataHolder included) { if (document.contains(ENUMERATED_REFERENCES) && included.contains(ENUMERATED_REFERENCES)) { return Parser.transferReferences(ENUMERATED_REFERENCES.getFrom(document), ENUMERATED_REFERENCES.getFrom(included), ENUMERATED_REFERENCES_KEEP.getFrom(document) == KeepType.FIRST); } return false; }
@Override public String renderToHtml(String content) { MutableDataSet options = new MutableDataSet(); options.set(Parser.EXTENSIONS, Arrays.asList(TablesExtension.create(), AutolinkExtension.create(), StrikethroughExtension.create())); // uncomment to convert soft-breaks to hard breaks //options.set(HtmlRenderer.SOFT_BREAK, "<br />\n"); Parser parser = Parser.builder(options).build(); HtmlRenderer renderer = HtmlRenderer.builder(options).build(); // You can re-use parser and renderer instances Node document = parser.parse(content); return renderer.render(document); } }
@Override public <T> T get(DataKey<T> key) { return getOrCompute(key, key.getFactory()); }
@Override public boolean transferReferences(final MutableDataHolder document, final DataHolder included) { if (document.contains(ZZZZZZS) && included.contains(ZZZZZZS)) { return Parser.transferReferences(ZZZZZZS.getFrom(document), ZZZZZZS.getFrom(included), ZZZZZZS_KEEP.getFrom(document) == KeepType.FIRST); } return false; }
@Signature public PMarkdownOptions setRenderEscapeHtml(boolean value) { options.set(HtmlRenderer.ESCAPE_HTML, value); return this; }
@Signature public PMarkdownOptions setRenderSoftBreak(String value) { options.set(HtmlRenderer.SOFT_BREAK, softBreak); return this; }
@Signature public PMarkdownOptions setRenderIndentSize(int value) { options.set(HtmlRenderer.INDENT_SIZE, value); return this; }
@Signature public PMarkdownOptions setRenderSuppressHtml(boolean value) { options.set(HtmlRenderer.SUPPRESS_HTML, value); return this; }
@Signature public PMarkdownOptions addSuperscriptExtension(@Arg(type = HintType.ARRAY) @Optional("null") Memory options) { parserExtensions.add(SuperscriptExtension.create()); Memory htmlOpen = options.valueOfIndex("htmlOpen"); if (htmlOpen.isNotNull()) { this.options.set(SuperscriptExtension.SUPERSCRIPT_STYLE_HTML_OPEN, htmlOpen.toString()); } Memory htmlClose = options.valueOfIndex("htmlClose"); if (htmlOpen.isNotNull()) { this.options.set(SuperscriptExtension.SUPERSCRIPT_STYLE_HTML_CLOSE, htmlClose.toString()); } return this; }
@Signature public PMarkdownOptions addSubscriptExtension(@Arg(type = HintType.ARRAY) @Optional("null") Memory options) { parserExtensions.add(SubscriptExtension.create()); Memory htmlOpen = options.valueOfIndex("htmlOpen"); if (htmlOpen.isNotNull()) { this.options.set(SubscriptExtension.SUBSCRIPT_STYLE_HTML_OPEN, htmlOpen.toString()); } Memory htmlClose = options.valueOfIndex("htmlClose"); if (htmlOpen.isNotNull()) { this.options.set(SubscriptExtension.SUBSCRIPT_STYLE_HTML_CLOSE, htmlClose.toString()); } return this; }
this.options.set(WikiLinkExtension.LINK_PREFIX, linkPrefix.toString()); this.options.set(WikiLinkExtension.LINK_PREFIX_ABSOLUTE, linkPrefixAbsolute.toString()); this.options.set(WikiLinkExtension.IMAGE_PREFIX, imagePrefix.toString()); this.options.set(WikiLinkExtension.IMAGE_PREFIX_ABSOLUTE, imagePrefixAbsolute.toString()); this.options.set(WikiLinkExtension.IMAGE_FILE_EXTENSION, imageFileExtension.toString()); this.options.set(WikiLinkExtension.IMAGE_LINKS, imageLinks.toBoolean()); this.options.set(WikiLinkExtension.DISABLE_RENDERING, disableRendering.toBoolean()); this.options.set(WikiLinkExtension.ALLOW_ANCHORS, allowAnchors.toBoolean()); this.options.set(WikiLinkExtension.ALLOW_INLINES, allowInlines.toBoolean());
@Signature public PMarkdownOptions addEmojiExtension(@Arg(type = HintType.ARRAY) @Optional("null") Memory options) { parserExtensions.add(EmojiExtension.create()); Memory imageType = options.valueOfIndex("imageType"); if (!imageType.isNull()) { this.options.set(EmojiExtension.USE_IMAGE_TYPE, EmojiImageType.valueOf(imageType.toString())); } Memory shortcutType = options.valueOfIndex("shortcutType"); if (!shortcutType.isNull()) { this.options.set(EmojiExtension.USE_SHORTCUT_TYPE, EmojiShortcutType.valueOf(shortcutType.toString())); } Memory imagePath = options.valueOfIndex("imagePath"); if (!shortcutType.isNull()) { this.options.set(EmojiExtension.ROOT_IMAGE_PATH, imagePath.toString()); } Memory imageClass = options.valueOfIndex("imageClass"); if (!shortcutType.isNull()) { this.options.set(EmojiExtension.ATTR_IMAGE_CLASS, imageClass.toString()); } Memory imageSize = options.valueOfIndex("imageSize"); if (!shortcutType.isNull()) { this.options.set(EmojiExtension.ATTR_IMAGE_SIZE, imageSize.toString()); } return this; }