diff --git a/src/org/org_text_delimiter.nim b/src/org/org_text_delimiter.nim index f07072e..3c2736f 100644 --- a/src/org/org_text_delimiter.nim +++ b/src/org/org_text_delimiter.nim @@ -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, ))