diff --git a/src/org/org_text_link.nim b/src/org/org_text_link.nim index 1247945..3062e9e 100644 --- a/src/org/org_text_link.nim +++ b/src/org/org_text_link.nim @@ -36,7 +36,7 @@ let linkParser* = proc(parser: Parser): ParserResult {.closure.} = else: linkValue -func linkStringifier*(linkUrl: string, linkDescription: Maybe[string]): string = +proc linkStringifier*(linkUrl: string, linkDescription: Maybe[string]): string = case (linkUrl, linkDescription): of (@linkUrl, Some(@linkDescription)): return &"[[{linkUrl}][{linkDescription}]]" @@ -46,19 +46,21 @@ func linkStringifier*(linkUrl: string, linkDescription: Maybe[string]): string = func linkTokenizer*(parserTokens: seq[ParserToken]): OrgBuilderT = [@linkUrl, @linkDescription] := parserTokens.map(tokenStringValue) let maybeLinkDescription = linkDescription.just().notEmpty() - OrgBuilderT( + return OrgBuilderT( kind: orgLink, content: linkStringifier(linkUrl, maybeLinkDescription), linkUrl: linkUrl, linkDescription: maybeLinkDescription, ) +let linkTokenizerSeq* = proc(parserTokens: seq[ParserToken]): seq[OrgBuilderT] {.closure.} = + return @[linkTokenizer(parserTokens)] when isMainModule: # echo initParser("[[https://florianschroedl.com]]").linkParser() echo initParser("[[https://florianschroedl.com][My blog]]") .linkParser() .foldTokens( - onError = (x) => nothing(OrgBuilderT), - onSuccess = xs => just(linkTokenizer(xs)), + onError = (x) => newSeq[OrgBuilderT](), + onSuccess = proc(xs: seq[ParserToken]): seq[OrgBuilderT] = linkTokenizerSeq(xs), )