Convert link to option

This commit is contained in:
Florian Schroedl
2022-05-04 17:00:00 +02:00
parent 4d496d5598
commit 6be167fa9c
3 changed files with 13 additions and 8 deletions

View File

@@ -9,7 +9,10 @@ import
import sequtils import sequtils
import options import options
import strformat import strformat
import fp/maybe import fp/[
maybe,
option,
]
import ../../org/org_block_heading import ../../org/org_block_heading
import ../../org/org_builder import ../../org/org_builder
import ../../org/org_types import ../../org/org_types

View File

@@ -3,7 +3,10 @@ import std/sugar
import std/collections/sequtils import std/collections/sequtils
import results import results
import fusion/matching import fusion/matching
import fp/maybe import fp/[
maybe,
option,
]
import ./org_builder import ./org_builder
import ./org_types import ./org_types
import ../utils/fp import ../utils/fp
@@ -36,7 +39,7 @@ let linkParser* = proc(parser: Parser): ParserResult {.closure.} =
else: else:
linkValue linkValue
proc linkStringifier*(linkUrl: string, linkDescription: Maybe[string]): string = proc linkStringifier*(linkUrl: string, linkDescription: Option[string]): string =
case (linkUrl, linkDescription): case (linkUrl, linkDescription):
of (@linkUrl, Some(@linkDescription)): of (@linkUrl, Some(@linkDescription)):
return &"[[{linkUrl}][{linkDescription}]]" return &"[[{linkUrl}][{linkDescription}]]"
@@ -45,7 +48,7 @@ proc linkStringifier*(linkUrl: string, linkDescription: Maybe[string]): string =
func linkTokenizer*(parserTokens: seq[ParserToken]): OrgInlineBuilderT = func linkTokenizer*(parserTokens: seq[ParserToken]): OrgInlineBuilderT =
[@linkUrl, @linkDescription] := parserTokens.map(tokenStringValue) [@linkUrl, @linkDescription] := parserTokens.map(tokenStringValue)
let maybeLinkDescription = linkDescription.just().notEmpty() let maybeLinkDescription = linkDescription.some().notEmpty()
return OrgInlineBuilderT( return OrgInlineBuilderT(
kind: orgLink, kind: orgLink,
content: linkStringifier(linkUrl, maybeLinkDescription), content: linkStringifier(linkUrl, maybeLinkDescription),

View File

@@ -1,12 +1,11 @@
import std/[ import std/[
options,
sequtils, sequtils,
strformat, strformat,
strutils, strutils,
sugar, sugar,
] ]
import fp/[ import fp/[
maybe, option,
] ]
import ../utils/printers import ../utils/printers
@@ -47,7 +46,7 @@ type
# Links # Links
of orgLink: of orgLink:
linkUrl*: string linkUrl*: string
linkDescription*: Maybe[string] linkDescription*: Option[string]
## OrgInlineBlock.PrettyPrinters ## OrgInlineBlock.PrettyPrinters
@@ -168,7 +167,7 @@ when isMainModule:
OrgInlineBlock( OrgInlineBlock(
kind: orgLink, kind: orgLink,
linkUrl: "https://placeholder.com", linkUrl: "https://placeholder.com",
linkDescription: "Placeholder".just(), linkDescription: "Placeholder".some(),
), ),
], ],
), ),