npm 包 mdast-2 使用教程

阅读时长 5 分钟读完

什么是 mdast-2

mdast-2 是一个用于解析和转换 markdown 文本的 npm 包。它使用 AST(抽象语法树)作为中间过程,可以将 markdown 文本转换成具有层次结构的对象。

如何安装 mdast-2

可以使用 npm 进行安装:

如何使用 mdast-2

解析 markdown 文本

首先,我们需要将 markdown 文本解析为 AST。可以使用 parse 函数来完成:

输出结果为:

-- -------------------- ---- -------
-
  ----- -------
  --------- -
    -
      ----- ----------
      ------ --
      --------- -
        -
          ----- -------
          ------ ------ --------
          --------- -
            ------ - ----- -- ------- -- ------- - --
            ---- - ----- -- ------- --- ------- -- --
            ------- --
          -
        -
      --
      --------- -
        ------ - ----- -- ------- -- ------- - --
        ---
      -
    -
  --
  --------- - ------ - ----- -- ------- -- ------- - -- --- -
-

转换 AST

我们可以使用一个转换器(transformer)来将 AST 转换成指定格式的文本。

比如,现在我们需要将 markdown 转换成 HTML:

输出结果为:

修改 AST

有时候,我们需要对 AST 进行修改,比如删除标题中的某些字符:

输出结果为:

转换扩展语法

mdast-2 还支持一些扩展的 markdown 语法,比如表格、任务列表等。

我们可以使用对应的 plugin 将这些语法转换成 AST:

-- -------------------- ---- -------
----- ----------- - ------------------------
----- --------- - ----------------------
----- ------------- - -------------------------
----- --------------- - ----------------------------

----- --------- - ------------------------------------------------------------------------------

----- -- - -
- --- ---- -
- - - ---- -

- ---- - --- -
- ---- - --- -
- ---  -  -- -
- ---- -  -- -
--

----- ---- - -------------------------------------
------------------

输出结果为:

-- -------------------- ---- -------
----
  ----
    ------ --------------- ----------- ---------- -- ---- -
  -----
  ----
    ------ --------------- ----------- -- ---- -
  -----
-----
-------
  -------
    ----
      -------------
      ------------
    -----
  --------
  -------
    ----
      ------------
      -----------
    -----
    ----
      -------------
      -----------
    -----
  --------
--------

总结

使用 mdast-2 可以方便地解析和转换 markdown 文本,还支持一些扩展语法。同时,我们可以通过转换器和插件扩展 mdast-2 的功能。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60055b7f81e8991b448d90b4

纠错
反馈