Fix types for builder seq
This commit is contained in:
@@ -36,7 +36,7 @@ let linkParser* = proc(parser: Parser): ParserResult {.closure.} =
|
|||||||
else:
|
else:
|
||||||
linkValue
|
linkValue
|
||||||
|
|
||||||
func linkStringifier*(linkUrl: string, linkDescription: Maybe[string]): string =
|
proc linkStringifier*(linkUrl: string, linkDescription: Maybe[string]): string =
|
||||||
case (linkUrl, linkDescription):
|
case (linkUrl, linkDescription):
|
||||||
of (@linkUrl, Some(@linkDescription)):
|
of (@linkUrl, Some(@linkDescription)):
|
||||||
return &"[[{linkUrl}][{linkDescription}]]"
|
return &"[[{linkUrl}][{linkDescription}]]"
|
||||||
@@ -46,19 +46,21 @@ func linkStringifier*(linkUrl: string, linkDescription: Maybe[string]): string =
|
|||||||
func linkTokenizer*(parserTokens: seq[ParserToken]): OrgBuilderT =
|
func linkTokenizer*(parserTokens: seq[ParserToken]): OrgBuilderT =
|
||||||
[@linkUrl, @linkDescription] := parserTokens.map(tokenStringValue)
|
[@linkUrl, @linkDescription] := parserTokens.map(tokenStringValue)
|
||||||
let maybeLinkDescription = linkDescription.just().notEmpty()
|
let maybeLinkDescription = linkDescription.just().notEmpty()
|
||||||
OrgBuilderT(
|
return OrgBuilderT(
|
||||||
kind: orgLink,
|
kind: orgLink,
|
||||||
content: linkStringifier(linkUrl, maybeLinkDescription),
|
content: linkStringifier(linkUrl, maybeLinkDescription),
|
||||||
linkUrl: linkUrl,
|
linkUrl: linkUrl,
|
||||||
linkDescription: maybeLinkDescription,
|
linkDescription: maybeLinkDescription,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
let linkTokenizerSeq* = proc(parserTokens: seq[ParserToken]): seq[OrgBuilderT] {.closure.} =
|
||||||
|
return @[linkTokenizer(parserTokens)]
|
||||||
|
|
||||||
when isMainModule:
|
when isMainModule:
|
||||||
# echo initParser("[[https://florianschroedl.com]]").linkParser()
|
# echo initParser("[[https://florianschroedl.com]]").linkParser()
|
||||||
echo initParser("[[https://florianschroedl.com][My blog]]")
|
echo initParser("[[https://florianschroedl.com][My blog]]")
|
||||||
.linkParser()
|
.linkParser()
|
||||||
.foldTokens(
|
.foldTokens(
|
||||||
onError = (x) => nothing(OrgBuilderT),
|
onError = (x) => newSeq[OrgBuilderT](),
|
||||||
onSuccess = xs => just(linkTokenizer(xs)),
|
onSuccess = proc(xs: seq[ParserToken]): seq[OrgBuilderT] = linkTokenizerSeq(xs),
|
||||||
)
|
)
|
||||||
|
|||||||
Reference in New Issue
Block a user