This lib turns Obsidian-style wiki-links to mdast-links. It uses
remark-wiki-link internally to
parse wiki-links from markdown, and then
visits each wiki-link node in
the mdast and transforms it based on toLink
.
const toLink = (wikiLink) => ({
value: wikiLink.value,
uri: `/${wikiLink.value}`,
})
unified().use(remarkParse).use(remarkObsidianLink, { toLink })
The purpose of this library is to create a simplified abstraction/wrapper around
remark-wiki-link
for the simple use case of turning the mdast wiki link into
either mdast-text or mdast-link. Text is for when that link is not public, and
so should be rendered as mere text. Links are for when that linked page is
public and then toLink
is intended to encapsulate the logic of what that link
should be (e.g., your website URL and path).
toLink
is an option that allows you to customize the transformation from wiki
link to link.
The input is WikiLink
, typed in TypeScript as { value: string, alias?: string }
.
The output is either string
or Link
, typed in TypeScript as { value: string, uri: string, title?: string }
. If the return is of type string
, then
the wiki link will be replaced by that string as mdast-text. If it returns a
Link
it will be replaced by an mdast-link with the appropriate values from
Link
.
By default toLink
returns a string of wikiLink.alias
if available, and
wikiLink.value
otherwise. This will effectively remove all wiki-links.