Refine search
/** * Add extension(s) to the extension list * * @param options mutable options holding existing extensions * @param extensions extension to add * @return mutable options */ public static MutableDataHolder addExtensions(MutableDataHolder options, Extension... extensions) { Iterable<Extension> extensionIterable = options.get(Parser.EXTENSIONS); ArrayList<Extension> extensionList = new ArrayList<Extension>(); extensionList.addAll(Arrays.asList(extensions)); for (Extension extension : extensionIterable) { extensionList.add(extension); } options.set(Parser.EXTENSIONS, extensionList); return options; }
@Override public void rendererOptions(final MutableDataHolder options) { // set header id options if not already set if (!options.contains(HtmlRenderer.GENERATE_HEADER_ID)) { options.set(HtmlRenderer.GENERATE_HEADER_ID, true); } if (!options.contains(HtmlRenderer.RENDER_HEADER_ID)) { options.set(HtmlRenderer.RENDER_HEADER_ID, true); } }
@Override public MutableDataHolder setIn(final MutableDataHolder dataHolder) { dataHolder.setAll(this); return dataHolder; }
@Override public MutableDataHolder setIn(final MutableDataHolder dataHolder) { dataHolder.set(FlexmarkHtmlParser.LIST_CONTENT_INDENT, listContentIndent); dataHolder.set(FlexmarkHtmlParser.SETEXT_HEADINGS, setextHeadings); dataHolder.set(FlexmarkHtmlParser.OUTPUT_UNKNOWN_TAGS, outputUnknownTags); dataHolder.set(FlexmarkHtmlParser.TYPOGRAPHIC_QUOTES, typographicQuotes); dataHolder.set(FlexmarkHtmlParser.TYPOGRAPHIC_SMARTS, typographicSmarts); dataHolder.set(FlexmarkHtmlParser.OUTPUT_ATTRIBUTES_ID, outputAttributesIdAttr); dataHolder.set(FlexmarkHtmlParser.WRAP_AUTO_LINKS, wrapAutoLinks); dataHolder.set(FlexmarkHtmlParser.EXTRACT_AUTO_LINKS, extractAutoLinks); dataHolder.set(FlexmarkHtmlParser.RENDER_COMMENTS, renderComments); dataHolder.set(FlexmarkHtmlParser.DOT_ONLY_NUMERIC_LISTS, dotOnlyNumericLists); dataHolder.set(FlexmarkHtmlParser.PRE_CODE_PRESERVE_EMPHASIS, preCodePreserveEmphasis); dataHolder.set(FlexmarkHtmlParser.LISTS_END_ON_DOUBLE_BLANK, listsEndOnDoubleBlank); dataHolder.set(FlexmarkHtmlParser.DIV_AS_PARAGRAPH, divAsParagraph); dataHolder.set(FlexmarkHtmlParser.BR_AS_PARA_BREAKS, brAsParaBreaks); dataHolder.set(FlexmarkHtmlParser.BR_AS_EXTRA_BLANK_LINES, brAsExtraBlankLines); dataHolder.set(FlexmarkHtmlParser.IGNORE_TABLE_HEADING_AFTER_ROWS, ignoreTableHeadingAfterRows); dataHolder.set(FlexmarkHtmlParser.ADD_TRAILING_EOL, addTrailingEol); dataHolder.set(FlexmarkHtmlParser.SKIP_INLINE_STRONG, skipInlineStrong); dataHolder.set(FlexmarkHtmlParser.SKIP_INLINE_EMPHASIS, skipInlineEmphasis); dataHolder.set(FlexmarkHtmlParser.SKIP_INLINE_CODE, skipInlineCode); dataHolder.set(FlexmarkHtmlParser.SKIP_INLINE_DEL, skipInlineDel); dataHolder.set(FlexmarkHtmlParser.SKIP_INLINE_INS, skipInlineIns); dataHolder.set(FlexmarkHtmlParser.SKIP_INLINE_SUB, skipInlineSub); dataHolder.set(FlexmarkHtmlParser.SKIP_INLINE_SUP, skipInlineSup); dataHolder.set(FlexmarkHtmlParser.SKIP_HEADING_1, skipHeading1); dataHolder.set(FlexmarkHtmlParser.SKIP_HEADING_2, skipHeading2); dataHolder.set(FlexmarkHtmlParser.SKIP_HEADING_3, skipHeading3); dataHolder.set(FlexmarkHtmlParser.SKIP_HEADING_4, skipHeading4);
@Override public boolean canContain(ParserState state, BlockParser blockParser, Block block) { // Issue 66, fenced code can only be contained in GitHub Doc mode if it is indented more than list item if (block instanceof FencedCodeBlock) { // see if it indented more than our marker if (state.getProperties().get(PARSER_EMULATION_PROFILE) == GITHUB_DOC) { // Issue #66, if we are in a list item and our indent == list indent then we interrupt the list FencedCodeBlockParser parser = (FencedCodeBlockParser)blockParser; return myListData.markerIndent < parser.getFenceMarkerIndent(); } } return true; }
@Override public MutableDataHolder setIn(final MutableDataHolder dataHolder) { dataHolder.set(AttributesExtension.ASSIGN_TEXT_ATTRIBUTES, assignTextAttributes); dataHolder.set(AttributesExtension.WRAP_NON_ATTRIBUTE_TEXT, wrapNonAttributeText); dataHolder.set(AttributesExtension.USE_EMPTY_IMPLICIT_AS_SPAN_DELIMITER, useEmptyImplicitAsSpanDelimiter); return dataHolder; } }
@Override public void closeBlock(ParserState state) { if (state.getProperties().get(TRACK_DOCUMENT_LINES)) { document.setContent(state.getLineSegments()); } } }
@Override public void accept(final String s) { myTranslationStore.get(UNWRAPPED_AUTO_LINKS_MAP).add(s); } });
@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 void closeBlock(ParserState state) { block.setCharsFromContent(); if (!state.getProperties().get(Parser.BLANK_LINES_IN_AST)) { removeBlankLines(); } }
@Override public MutableDataHolder setIn(final MutableDataHolder dataHolder) { dataHolder.set(MacrosExtension.SOURCE_WRAP_MACRO_REFERENCES, sourceWrapMacroReferences); return dataHolder; } }
@Override public void closeBlock(ParserState state) { if (state.getProperties().get(TRACK_DOCUMENT_LINES)) { document.setContent(state.getLineSegments()); } } }
public static String getEncodedIdAttribute(String category, String categoryId, NodeFormatterContext context, MarkdownWriter markdown) { Map<String, String> attributeTranslationMap = context.getTranslationStore().get(ATTRIBUTE_TRANSLATION_MAP); Map<String, String> attributeTranslatedMap = context.getTranslationStore().get(ATTRIBUTE_TRANSLATED_MAP); return getEncodedIdAttribute(category, categoryId, context, markdown, attributeTranslationMap, attributeTranslatedMap); }
@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; }
/** * Remove extension(s) of given class from the extension list * * @param options mutable options holding existing extensions * @param extensions extension classes to remove * @return mutable options */ public static MutableDataHolder removeExtensions(MutableDataHolder options, Class... extensions) { Iterable<Extension> extensionIterable = options.get(Parser.EXTENSIONS); HashSet<Extension> extensionList = new HashSet<Extension>(); for (Extension extension : extensionIterable) { boolean keep = true; for (Class clazz : extensions) { if (clazz.isInstance(extension)) { keep = false; break; } } if (keep) { extensionList.add(extension); } } options.set(Parser.EXTENSIONS, extensionList); return options; } }
@Override public void closeBlock(ParserState state) { block.setCharsFromContent(); if (!state.getProperties().get(Parser.BLANK_LINES_IN_AST)) { removeBlankLines(); } }
@Override public void rendererOptions(final MutableDataHolder options) { // set header id options if not already set if (!options.contains(HtmlRenderer.GENERATE_HEADER_ID)) { options.set(HtmlRenderer.GENERATE_HEADER_ID, true); } if (!options.contains(HtmlRenderer.RENDER_HEADER_ID)) { options.set(HtmlRenderer.RENDER_HEADER_ID, true); } }
@Override public void accept(final String s) { myTranslationStore.get(UNWRAPPED_AUTO_LINKS_MAP).add(s); } });
@Override public boolean transferReferences(final MutableDataHolder document, final DataHolder included) { if (document.contains(FOOTNOTES) && included.contains(FOOTNOTES)) { return Parser.transferReferences(FOOTNOTES.getFrom(document), FOOTNOTES.getFrom(included), FOOTNOTES_KEEP.getFrom(document) == KeepType.FIRST); } return false; }