Convert link to option
This commit is contained in:
@@ -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
|
||||||
|
|||||||
@@ -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),
|
||||||
|
|||||||
@@ -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(),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
|
|||||||
Reference in New Issue
Block a user