Extact builders
This commit is contained in:
@@ -26,6 +26,15 @@ let verbatimTokenizer* = makeOrgBuilderToken(orgVerbatimText)
|
||||
let codeTokenizer* = makeOrgBuilderToken(orgCodeText)
|
||||
let strikeThroughTokenizer* = makeOrgBuilderToken(orgStrikeThroughText)
|
||||
|
||||
let orgStyledTextBuilders = @[
|
||||
(boldParser, mergeOrgTokens(boldTokenizer)),
|
||||
(italicParser, mergeOrgTokens(italicTokenizer)),
|
||||
(underlineParser, mergeOrgTokens(underlineTokenizer)),
|
||||
(verbatimParser, mergeOrgTokens(verbatimTokenizer)),
|
||||
(codeParser, mergeOrgTokens(codeTokenizer)),
|
||||
(strikeThroughParser, mergeOrgTokens(strikeThroughTokenizer)),
|
||||
]
|
||||
|
||||
proc makeRawTokenOrEmpty(tokens: seq[ParserToken]): seq[OrgBuilderT] =
|
||||
## Merge all parser `tokens` into a string to tokenize for the builder.
|
||||
## Unless the string is empty, in this case return an empty list.
|
||||
@@ -40,14 +49,7 @@ when isMainModule:
|
||||
)))
|
||||
.flatMap((builder: OrgBuilder) => tryParseBuild(
|
||||
builder = builder,
|
||||
builderFns = @[
|
||||
(boldParser, mergeOrgTokens(boldTokenizer)),
|
||||
(italicParser, mergeOrgTokens(italicTokenizer)),
|
||||
(underlineParser, mergeOrgTokens(underlineTokenizer)),
|
||||
(verbatimParser, mergeOrgTokens(verbatimTokenizer)),
|
||||
(codeParser, mergeOrgTokens(codeTokenizer)),
|
||||
(strikeThroughParser, mergeOrgTokens(strikeThroughTokenizer)),
|
||||
],
|
||||
builderFns = orgStyledTextBuilders,
|
||||
defaultBuilderFn = makeRawTokenOrEmpty,
|
||||
))
|
||||
|
||||
|
||||
Reference in New Issue
Block a user