Add link parser to text

This commit is contained in:
Florian Schroedl
2022-01-20 17:00:00 +01:00
parent e99c7352b6
commit d786225bac

View File

@@ -6,6 +6,7 @@ import results
import fusion/matching import fusion/matching
import ./org_types import ./org_types
import ./org_builder import ./org_builder
import ./org_text_link
import ../utils/fp import ../utils/fp
import ../parser/parser_internals import ../parser/parser_internals
import ../parser/parser_types import ../parser/parser_types
@@ -26,6 +27,8 @@ let verbatimTokenizer* = textTokenizer(orgVerbatimText)
let codeTokenizer* = textTokenizer(orgCodeText) let codeTokenizer* = textTokenizer(orgCodeText)
let strikeThroughTokenizer* = textTokenizer(orgStrikeThroughText) let strikeThroughTokenizer* = textTokenizer(orgStrikeThroughText)
let tok = linkTokenizerSeq
let orgStyledTextBuilders = @[ let orgStyledTextBuilders = @[
(boldParser, boldTokenizer), (boldParser, boldTokenizer),
(italicParser, italicTokenizer), (italicParser, italicTokenizer),
@@ -33,6 +36,7 @@ let orgStyledTextBuilders = @[
(verbatimParser, verbatimTokenizer), (verbatimParser, verbatimTokenizer),
(codeParser, codeTokenizer), (codeParser, codeTokenizer),
(strikeThroughParser, strikeThroughTokenizer), (strikeThroughParser, strikeThroughTokenizer),
(linkParser, linkTokenizerSeq),
] ]
proc makeRawTokenOrEmpty(tokens: seq[ParserToken]): seq[OrgBuilderT] = proc makeRawTokenOrEmpty(tokens: seq[ParserToken]): seq[OrgBuilderT] =
@@ -44,7 +48,7 @@ proc makeRawTokenOrEmpty(tokens: seq[ParserToken]): seq[OrgBuilderT] =
when isMainModule: when isMainModule:
let test = initOrgBuilder( let test = initOrgBuilder(
"Regular *bold* /italic/ _underline_ =verbatim= ~code~ +strikethrough+" "Regular *bold* [[https://some.url]] /italic/ _underline_ =verbatim= ~code~ +strikethrough+ [[https://some.url][title]]"
) )
.flatMap((builder: OrgBuilder) => tryParseBuild( .flatMap((builder: OrgBuilder) => tryParseBuild(
builder = builder, builder = builder,