@braindb/mdast-util-wiki-link (英语)
叉数 https://github.com/landakram/mdast-util-wiki-link (中文(简体) )
延长时间: mdast-util-from-markdown 财务报告和审定财务报表
mdast-util-to-markdown 支助 [[Wiki Links]]。 。 。 .
- 解析 wiki 风格的链接并使其成为锚
- 通过给解析器一个已存在的永久链接列表来区分"新"和"已存在的"维基链接
- 解析别名维基链接 :
[[Real Page|Page Alias]]
使用 评论您也许想要使用
@braindb/remark-wiki-link 而不是直接使用此软件包.
使用量
标记到 AST
import fromMarkdown from "mdast-util-from-markdown";
import { syntax } from "@braindb/micromark-extension-wiki-link";
import * as wikiLink from "@braindb/mdast-util-wiki-link";
let ast = fromMarkdown("[[Test Page]]", {
extensions: [syntax()],
mdastExtensions: [wikiLink.fromMarkdown()],
});
AST节点会是这样的:
{
value: 'Test Page',
data: {
alias: 'Test Page',
permalink: 'Test Page',
hName: 'a',
hProperties: {
href: 'Test Page',
},
hChildren: [{
type: 'text',
value: 'Test Page'
}]
}
}
value: 页面的 switdata.alias: 此链接的显示名称data.permalink: 本页的通路. 此永久链接是从node.value使用options.linkResolver,可以在初始化插件时通过.data.hProperties.href数字 :href提供的值a这个href使用options.hrefTemplate。 。 。 .
这个 hName 其他项目 h 字段提供兼容性 rehype。 。 。 .
AST 到 马克下
采取 ast 从前面的例子来看,让我们回到下调:
import { fromMarkdown } from "mdast-util-from-markdown";
import * as wikiLink from "@braindb/mdast-util-wiki-link";
let markdownString = toMarkdown(ast, {
extensions: [wikiLink.toMarkdown()],
}).trim();
console.log(markdownString);
// [[Wiki Link]]
配置选项
两者 fromMarkdown 财务报告和审定财务报表 toMarkdown 接受配置为对象.
例如,人们可能配置 fromMarkdown 像这样:
let ast = fromMarkdown("[[Test Page]]", {
extensions: [syntax()],
mdastExtensions: [
wikiLink.fromMarkdown({
linkResolver: (x) => name.replace(/ /g, "_").toLowerCase(),
}),
], // <--
});
fromMarkdown
-
options.linkResolver (pageName: string) -> string: 将页面名称映射到一系列可能的永久链接的函数。 这些可能的永久链接与options.permalinks以确定是否有页面。 如果一页不存在,则数组的第一个元素被认为是permalink.默认
linkResolver为:(name) => name; -
options.linkTemplate ({ slug: string, permalink: string, alias: string | null }) -> HAST: 生成链接"HAST"的函数.默认
linkTemplate为:function defaultLinkTemplate({ slug, permalink, alias }) { return { hName: "a", hProperties: { href: permalink == null ? slug : permalink }, hChildren: [{ type: "text", value: alias == null ? slug : alias }], }; }
toMarkdown
options.aliasDivider string:作为别名分词的字符串. 见下文关于 异形页面默认为"|"。 。 。 .
异形页面
异名页面以下列标记下语法支持:
[[Real Page|Page Alias]]
并在渲染时生成此 HTML :
<a href="Real Page">Page Alias</a>