class markdown::ParserBuilder
sys::Obj markdown::ParserBuilder
@Js
Builder for customizing the behavior of the common mark parser
- build
-
Parser build()
Get the configured
Parser
- customBlockParserFactory
-
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.
- customDelimiterProcessor
-
This customDelimiterProcessor(DelimiterProcessor delimiterProcessor)
- customInlineContentParserFactory
-
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. - extensions
-
This extensions(MarkdownExt[] exts)
Configure the given extensions on this parser.
- linkMarker
-
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 theLinkProcessor
will have itsLinkInfo.marker
set. A link processor should check theText.literal
and then do any processing, and will probably want to useLinkResult.includeMarker
. - linkProcessor
-
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.
- postProcessorFactory
-
This postProcessorFactory(|->PostProcessor| factory)
- withEnabledBlockTypes
-
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#])