npm 包 remark-rehype 使用教程

阅读时长 5 分钟读完

介绍

remark-rehype 是一个 npm 包,它可以将 Markdown 文档转换成 HTML 文档。它使用了 unifiedrehype 这两个强大的工具来实现这个功能。

在本文中,我们将深入探讨如何使用 remark-rehype 来转换 Markdown 文档到 HTML 。我们将从安装 remark-rehype 开始,然后编写一些示例代码来演示如何使用它。

安装与配置

首先,我们需要在项目中安装 remark-rehype

接着,我们需要创建一个 .md 文件,例如 example.md,内容如下:

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

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

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

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

要将此 Markdown 文件转换为 HTML,我们需要编写一些 JavaScript 代码。我们可以使用以下代码:

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

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

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

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

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

在这段代码中,我们使用 unifiedremark-rehype 来将 Markdown 解析并转换为 HTML。然后,我们使用 rehype-stringify 将转换后的 HTML 输出。

现在运行此脚本,会输出以下 HTML:

高级用法

除了简单的转换外,remark-rehype 还提供了许多高级用法,例如设置属性、自定义解析器等。

设置属性

要为转换后的 HTML 元素设置属性,你可以使用 rehype-attr 插件。首先,你需要安装它:

接着,在 JavaScript 代码中添加如下代码:

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

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

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

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

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

在这段代码中,我们使用 rehype-attr 插件为转换后的 HTML 元素设置了一个类名。

自定义解析器

如果你想更改 Markdown 解析器的行为,你可以编写自己的插件。例如,如果你想将所有标题标签改为 h2 标签,你可以使用以下代码:

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

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

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

- ----------------------------------------------------------- --------
----------------------------------------------------------------------------------
纠错
反馈