npm 包 @barraponto/markdown-to-json 使用教程

阅读时长 5 分钟读完

简介

@barraponto/markdown-to-json 是一个 Node.js 的 npm 包,它可以将 Markdown 格式的文本转化为 JSON 格式,方便在前端项目中使用。该包引用了 markdown-it 这个解析 Markdown 的库,同时还可以通过配置文件来指定哪些 Markdown 语法需要被识别并转化为 JSON 对象。本篇文章将详细介绍该包的使用方法以及其在前端开发中的意义。

安装

首先需要在本地安装 Node.js,然后使用下面的命令安装 @barraponto/markdown-to-json:

使用方法

在 Node.js 中引入 @barraponto/markdown-to-json:

然后通过调用 markdownToJson() 函数来将 Markdown 文本转换为 JSON 对象:

可以看到,该函数会将 Markdown 标题的 # 转换为了 JSON 对象的 "tag": "h1" 属性,而标题的内容则变成了 JSON 对象的 "content" 属性。如果需要转换更多的 Markdown 语法,可以通过配置文件来指定,下面将对配置文件进行说明。

配置文件

@barraponto/markdown-to-json 提供了一个默认的配置文件,可以在项目中创建一个名为 .mdjsonrc.json 的文件来覆盖该配置。下面是默认配置:

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

可以看到,该配置文件包含了以下内容:

  • "html"、"linkify" 和 "typographer":这些属性用于控制解析 Markdown 时是否需要将文本转换为 HTML,以及是否需要自动校正文本的格式,具体含义可以查看 markdown-it 的文档。
  • "use":这个属性用于指定哪些 Markdown 插件需要启用。
  • "options":这个属性用于指定插件的参数,具体含义可以查看插件的文档。

下面将对几个常用的插件进行说明。

markdown-it-div

这个插件用于支持自定义块结构,下面是一个示例:

这个 Markdown 语法会被转换为以下 JSON:

markdown-it-attrs

这个插件用于支持给 HTML 元素添加属性,下面是一个示例:

这个 Markdown 语法会被转换为以下 JSON:

markdown-it-highlightjs

这个插件用于支持代码块的语法高亮,需要安装 highlight.js 包。下面是一个示例:

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

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

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

markdown-it-named-headings

这个插件用于支持锚点链接。假设有如下 Markdown 语法:

这个 Markdown 语法会被转换为以下 JSON:

这个 JSON 对象中的 "id" 属性就是原来 Markdown 语法中指定的锚点,可以在 HTML 中使用该锚点来进行跳转。

指导意义

@barraponto/markdown-to-json 可以大大方便前端开发中对 Markdown 语法的处理,特别是在需要将 Markdown 转换为 HTML 或者 JSON 对象时,可以使用该包来减少开发工作量。同时,由于该包支持自定义配置,可以根据项目需求来灵活使用,也可以通过查看配置文件来深入了解 Markdown 的转换过程。因此,该包对于前端工程师来说具有一定的学习价值。

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

纠错
反馈