Convert link to option
This commit is contained in:
@@ -9,7 +9,10 @@ import
|
||||
import sequtils
|
||||
import options
|
||||
import strformat
|
||||
import fp/maybe
|
||||
import fp/[
|
||||
maybe,
|
||||
option,
|
||||
]
|
||||
import ../../org/org_block_heading
|
||||
import ../../org/org_builder
|
||||
import ../../org/org_types
|
||||
|
||||
@@ -3,7 +3,10 @@ import std/sugar
|
||||
import std/collections/sequtils
|
||||
import results
|
||||
import fusion/matching
|
||||
import fp/maybe
|
||||
import fp/[
|
||||
maybe,
|
||||
option,
|
||||
]
|
||||
import ./org_builder
|
||||
import ./org_types
|
||||
import ../utils/fp
|
||||
@@ -36,7 +39,7 @@ let linkParser* = proc(parser: Parser): ParserResult {.closure.} =
|
||||
else:
|
||||
linkValue
|
||||
|
||||
proc linkStringifier*(linkUrl: string, linkDescription: Maybe[string]): string =
|
||||
proc linkStringifier*(linkUrl: string, linkDescription: Option[string]): string =
|
||||
case (linkUrl, linkDescription):
|
||||
of (@linkUrl, Some(@linkDescription)):
|
||||
return &"[[{linkUrl}][{linkDescription}]]"
|
||||
@@ -45,7 +48,7 @@ proc linkStringifier*(linkUrl: string, linkDescription: Maybe[string]): string =
|
||||
|
||||
func linkTokenizer*(parserTokens: seq[ParserToken]): OrgInlineBuilderT =
|
||||
[@linkUrl, @linkDescription] := parserTokens.map(tokenStringValue)
|
||||
let maybeLinkDescription = linkDescription.just().notEmpty()
|
||||
let maybeLinkDescription = linkDescription.some().notEmpty()
|
||||
return OrgInlineBuilderT(
|
||||
kind: orgLink,
|
||||
content: linkStringifier(linkUrl, maybeLinkDescription),
|
||||
|
||||
@@ -1,12 +1,11 @@
|
||||
import std/[
|
||||
options,
|
||||
sequtils,
|
||||
strformat,
|
||||
strutils,
|
||||
sugar,
|
||||
]
|
||||
import fp/[
|
||||
maybe,
|
||||
option,
|
||||
]
|
||||
import ../utils/printers
|
||||
|
||||
@@ -47,7 +46,7 @@ type
|
||||
# Links
|
||||
of orgLink:
|
||||
linkUrl*: string
|
||||
linkDescription*: Maybe[string]
|
||||
linkDescription*: Option[string]
|
||||
|
||||
## OrgInlineBlock.PrettyPrinters
|
||||
|
||||
@@ -168,7 +167,7 @@ when isMainModule:
|
||||
OrgInlineBlock(
|
||||
kind: orgLink,
|
||||
linkUrl: "https://placeholder.com",
|
||||
linkDescription: "Placeholder".just(),
|
||||
linkDescription: "Placeholder".some(),
|
||||
),
|
||||
],
|
||||
),
|
||||
|
||||
Reference in New Issue
Block a user