Class MarkdownParser

    • Field Detail

      • METADATA_SECTION_PATTERN

        private static final java.util.regex.Pattern METADATA_SECTION_PATTERN
        Regex that identifies a multimarkdown-style metadata section at the start of the document In order to ensure that we have minimal risk of false positives when slurping metadata sections, the first key in the metadata section must be one of these standard keys or else the entire metadata section is ignored.
        See Also:
        Multimarkdown Metadata
      • METADATA_ENTRY_PATTERN

        private static final java.util.regex.Pattern METADATA_ENTRY_PATTERN
        Regex that captures the key and value of a multimarkdown-style metadata entry. Group 1 captures the key, group 2 captures the value. Multivalues are not supported in the syntax! Multiline values need to be normalized
        See Also:
        Multimarkdown Metadata
      • FLEXMARK_PARSER

        private static final com.vladsch.flexmark.parser.Parser FLEXMARK_PARSER
        Flexmark's Markdown parser (one static instance fits all)
      • FLEXMARK_METADATA_PARSER

        private static final com.vladsch.flexmark.parser.Parser FLEXMARK_METADATA_PARSER
        Flexmark's Markdown Metadata parser
      • FLEXMARK_HTML_RENDERER

        private static final com.vladsch.flexmark.html.HtmlRenderer FLEXMARK_HTML_RENDERER
        Flexmark's HTML renderer (its output will be re-parsed and converted to Sink events)
    • Constructor Detail

      • MarkdownParser

        public MarkdownParser()
    • Method Detail

      • parse

        public void parse​(java.io.Reader source,
                          Sink sink,
                          java.lang.String reference)
                   throws ParseException
        Parses the given source model and emits Doxia events into the given sink.
        Specified by:
        parse in interface Parser
        Parameters:
        source - not null reader that provides the source document. You could use newReader methods from ReaderFactory.
        sink - A sink that consumes the Doxia events.
        reference - a string identifying the source (for file based documents the source file path)
        Throws:
        ParseException - if the model could not be parsed.
      • processMetadataForHtml

        private boolean processMetadataForHtml​(java.lang.StringBuilder html,
                                               java.lang.StringBuilder source)
      • normalizeMultilineValue

        static java.lang.String normalizeMultilineValue​(java.lang.String value)
      • writeHtmlMetadata

        private boolean writeHtmlMetadata​(java.lang.StringBuilder html,
                                          java.util.Map<java.lang.String,​java.util.List<java.lang.String>> data)
      • writeHtmlMetadata

        private boolean writeHtmlMetadata​(java.lang.StringBuilder html,
                                          java.lang.String key,
                                          java.util.List<java.lang.String> values)
      • toHtml

        java.lang.String toHtml​(java.io.Reader source)
                         throws java.io.IOException
        uses flexmark-java library to parse content and generate HTML output.
        Parameters:
        source - the Markdown source
        Returns:
        HTML content generated by flexmark-java
        Throws:
        java.io.IOException - passed through