npm 包 js-slate-markdown-anchor-serializer 使用教程

阅读时长 6 分钟读完

简介

在前端开发中,我们经常需要将 Markdown 格式的文本渲染到网页中。一个 Markdown 格式的文档中,经常需要给标题添加锚点,以便用户可以方便的通过链接跳转到文档的某个部分。本文介绍一款 npm 包 js-slate-markdown-anchor-serializer,帮助更快速、更方便地在 Markdown 格式的文档中添加标题锚点。

安装

在项目中安装 js-slate-markdown-anchor-serializer

使用方法

整体使用

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

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

-- ---
-----

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

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

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

fromMarkdown 方法可以将 Markdown 字符串转换为对象,对象的结构如下:

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

转换后的对象包含了标题的层级、标题名称、标题 id 等信息,便于后续生成锚点链接。

单独使用

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

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

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

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

fromSlate 方法可以将 slate 对象转换为 html 片段:

该方法接收一个 slate 对象,返回对应的标题 html 片段,data.id 作为 a 标签的 href 属性值。为保证标题 id 的一致性,建议使用 fromMarkdown 方法转换整个 markdown 文章。

实际使用示例

在文章生成目录

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

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

-- ---
-----

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

----- --- - --

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

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

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

fromMarkdown 方法转换得到的 slate 对象中包含了每个标题的 id、名称和深度,可以使用这些信息生成文章的目录。

为每个标题添加锚点

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

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

-- ---
-----

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

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

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

使用 fromMarkdown 方法转换得到的 slate 对象,包含了标题的 id 信息,可以使用 stringifySlate 方法将其转换成包含锚点的 html 片段:

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

通过这种方法,可以为每个标题自动生成锚点,方便用户通过链接跳转到对应位置。

总结

js-slate-markdown-anchor-serializer 包提供了一种方便快捷的方式为 Markdown 格式的文章添加锚点。使用该包,我们可以轻松实现目录自动生成、为正文添加锚点等场景。希望本文对于前端开发工作有帮助。

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

纠错
反馈