ParserBuilder
@Js
class ParserBuilder : Obj
Builder for customizing the behavior of the common mark parser
Configure the given extensions on this parser
Add a custom link/image processor for inline parsing
Get the configured Parser
Describe the list of markdown features the parser will recognize and parse
Add a factory for a custom inline content parser, for extending inline parsing or overriding built-in parsing
Add a custom block parser factory
Add a custom link marker for link processing
Parser build()
Get the configured Parser
This customBlockParserFactory(BlockParserFactory factory)
Add a custom block parser factory.
Note that custom factories are applied before the built-in factories. This is so that extensions can change how some syntax is parsed that would otherwise be handled by built-in factories.
This customDelimiterProcessor(DelimiterProcessor delimiterProcessor)
This customInlineContentParserFactory(InlineContentParserFactory factory)
Add a factory for a custom inline content parser, for extending inline parsing or overriding built-in parsing.
Note that parsers are triggered based on a special character as specified by InlineContentParserFactory.triggerChars. It is possible to register multiple parsers for the same character, or even for some built-in special character such as `. The custom parsers are tried first in the order in which they are registered, and then the built-in ones.
This extensions(MarkdownExt[] exts)
Configure the given extensions on this parser.
This linkMarker(Int marker)
Add a custom link marker for link processing. A link marker is a character like ! which, if it appears before the [ of a link, changes the meaning of the link.
If a link marker followed by a valid link is parsed, the LinkInfo that is passed to the LinkProcessor will have its LinkInfo.marker set. A link processor should check the Text.literal and then do any processing, and will probably want to use LinkResult.includeMarker.
This linkProcessor(LinkProcessor linkProcessor)
Add a custom link/image processor for inline parsing.
Multiple link processors can be added, and will be tried in the order in which they were added. If no processor applies, the normal behavior applies. That means these can override built-in link parsing.
This postProcessorFactory(|->PostProcessor| factory)
This withEnabledBlockTypes(Type[] enabledBlockTypes)
Describe the list of markdown features the parser will recognize and parse.
By default, we will recognize and parse the following set of "block" elements:
- Heading (
#) - HtmlBlock (
<html></html>) - ThematicBreak (Horizontal Rule) (
---) - FencedCode (
```) - IndentedCode
- BlockQuote (
>) - ListBlock (Ordered/Unordered List) (
1. / *)
To parse only a subset of the features listed above, pass a lsit of each feature's associated Block type.
Example: to parse only headings and lists:
Parser.builder.withEnabledBlockTypes([Heading#, ListBlock#])