什么是 mdast-2
mdast-2 是一个用于解析和转换 markdown 文本的 npm 包。它使用 AST(抽象语法树)作为中间过程,可以将 markdown 文本转换成具有层次结构的对象。
如何安装 mdast-2
可以使用 npm 进行安装:
npm install mdast-2
如何使用 mdast-2
解析 markdown 文本
首先,我们需要将 markdown 文本解析为 AST。可以使用 parse 函数来完成:
const mdast = require('mdast-2'); const ast = mdast.parse('# Hello world!'); console.log(ast);
输出结果为:
-- -------------------- ---- ------- - ----- ------- --------- - - ----- ---------- ------ -- --------- - - ----- ------- ------ ------ -------- --------- - ------ - ----- -- ------- -- ------- - -- ---- - ----- -- ------- --- ------- -- -- ------- -- - - -- --------- - ------ - ----- -- ------- -- ------- - -- --- - - -- --------- - ------ - ----- -- ------- -- ------- - -- --- - -
转换 AST
我们可以使用一个转换器(transformer)来将 AST 转换成指定格式的文本。
比如,现在我们需要将 markdown 转换成 HTML:
const toHtml = require('mdast-2/to-html'); const html = toHtml(ast); console.log(html);
输出结果为:
<h1>Hello world!</h1>
修改 AST
有时候,我们需要对 AST 进行修改,比如删除标题中的某些字符:
const visit = require('unist-util-visit'); visit(ast, 'heading', node => { node.children[0].value = node.children[0].value.replace(/^#+\s+/, ''); }); console.log(toHtml(ast));
输出结果为:
<h1>Hello world!</h1>
转换扩展语法
mdast-2 还支持一些扩展的 markdown 语法,比如表格、任务列表等。
我们可以使用对应的 plugin 将这些语法转换成 AST:
-- -------------------- ---- ------- ----- ----------- - ------------------------ ----- --------- - ---------------------- ----- ------------- - ------------------------- ----- --------------- - ---------------------------- ----- --------- - ------------------------------------------------------------------------------ ----- -- - - - --- ---- - - - - ---- - - ---- - --- - - ---- - --- - - --- - -- - - ---- - -- - -- ----- ---- - ------------------------------------- ------------------
输出结果为:
-- -------------------- ---- ------- ---- ---- ------ --------------- ----------- ---------- -- ---- - ----- ---- ------ --------------- ----------- -- ---- - ----- ----- ------- ------- ---- ------------- ------------ ----- -------- ------- ---- ------------ ----------- ----- ---- ------------- ----------- ----- -------- --------
总结
使用 mdast-2 可以方便地解析和转换 markdown 文本,还支持一些扩展语法。同时,我们可以通过转换器和插件扩展 mdast-2 的功能。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60055b7f81e8991b448d90b4