npm 包 remark-outline 使用教程

阅读时长 7 分钟读完

前言

在前端开发中,常常需要写文档或者笔记,而 markdown 是一种简洁、清晰、易于书写和阅读的文本格式,因此在编写文档或笔记时广泛应用。同时,由于 markdown 的结构相对简单,它很容易被转换成其他格式的文档,例如 HTML 或 PDF。因此,很多时候我们需要将 markdown 转换成其他格式的文档,这就需要涉及到 markdown 解析器。

在前端领域,有很多优秀的 markdown 解析器,例如 markedmarkdown-it 等,它们都非常强大,但在某些情况下,我们可能需要一些更加特殊化的功能。本文要介绍的 npm 包 remark-outline 就是一个这样的 npm 包,它可以帮助我们将 markdown 文档中的标题提取出来,生成一个文档大纲。

安装

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

使用

基本使用

remark-outline 的使用非常简单,它只提供了一个 Unified 插件,我们只需要在 markdown 解析过程中启用这个插件就可以了。

先看一个基本的示例:

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

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

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

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

输出:

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

可以看到,remark-outline 提取出了 markdown 文档中所有的标题,并生成了一个标题树形结构,其中每个标题都包括一个标题文本值(value)和标题层级(depth),同时每个标题还包括若干个子标题,其下标的层级比当前标题的层级深 1 级。

配置选项

remark-outline 提供了几个可选配置选项,可以根据实际需求来调整生成的大纲的效果。

maxDepth

指定大纲中标题的最大层级。默认为 6,即只提取出 1~6 级的标题。

输出:

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

可以看到,这里只提取出了 1~3 级的标题。

slug

指定是否在大纲中包含标题的 slug。默认为 false,即不包含 slug。

输出:

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

可以看到,在包含了 slug 之后,标题对象多了一个 slug 属性,值为标题的 slug 值。

prefix

指定大纲中标题的前缀。默认为空字符串 ''

输出:

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

可以看到,在添加了 prefix 之后,大纲中的每个标题都是以 prefix 拼接上原标题文本值得到的。

clean

指定大纲中标题文本是否需要去掉 Markdown 内联代码和链接中的内容。默认为 false,即标题文本会保留内联代码和链接中的内容。

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

- ---
-

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

输出:

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

可以看到,这里的大纲中标题文本中包含了链接和内联代码。

输出:

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

在添加了 clean: true 之后,大纲中的标题文本已经去掉了内联代码和链接中的内容。

总结

remark-outline 是一个非常实用的 npm 包,在前端开发中,用它生成文档大纲可以大大提高我们编写文档的效率,同时还能使整个文档结构更加清晰易懂。本文通过实际的代码示例介绍了 remark-outline 的安装和使用方法,同时也介绍了一些可选的配置选项,供读者调整生成的大纲的效果。希望本文对读者有所启发和帮助。

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

纠错
反馈