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