npm 包 mdast-add-list-metadata 使用教程

前言

在前端开发中,我们经常需要对文本进行一些处理,其中对于 Markdown 文档的操作比较常见。在 Markdown 中,有一种列表的语法,可以用于展示一些有序或无序的信息。但有时候我们需要对列表进行更加细致的处理,比如对每一个列表项进行序号的添加或者对无序列表样式的调整等等。

在这种需求下就出现了一个非常好用的 npm 包 mdast-add-list-metadata,它提供了一系列 API,可以对 Markdown 中的列表进行精细化的处理。

安装与使用

安装 mdast-add-list-metadata 只需要在命令行中输入:

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

安装完成后,在需要使用这个 npm 包的项目中引入它即可,例如:

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

接下来,我们就可以使用它提供的 API 进行列表的定制化处理了。

API 操作

addListMetadata(tree[, options])

这个方法用于对一棵 MDAST 树 中的列表节点进行处理。

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

其中 tree 表示传入的 MDAST 树,options 是一个对象,它包含了一些扩展参数,这里列举一下主要参数:

  • bullet:在无序列表中使用的标记,默认为 -
  • start:在有序列表中第一项的编号,默认为 1
  • loose:指定松散列表的处理方式,默认为 false

根据不同情况,我们可以使用不同的参数来进行列表操作。

下面是一个简单的操作示例:

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

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

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

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

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

在这个例子中,我们将一个无序列表传入到 mdast-add-list-metadata 包中,然后它进行了处理,最后我们将修改后的内容输出,可以发现没有任何变化。说明默认情况下,mdast-add-list-metadata 并不改变列表的内容。

那么这个包到底能够实现什么功能呢?

mdast-add-list-metadata 包的主要功能

经过实测发现,mdast-add-list-metadata 主要可以实现以下几个功能:

  • 为每一个列表项加上 index 属性,包含当前项在列表中的编号;
  • 为每一个列表项加上 parentIndex 属性,包含当前项的父级编号,使用空格分隔;
  • 对无序列表进行样式的调整;
  • 对有序列表的起始数字进行处理。

通过使用不同的参数,我们可以控制这些功能的开关。

下面是一些操作的示例:

对每个列表项进行编号

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

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

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

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

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

在这个示例中,我们将 index 参数设置为 true,然后输出的结果中可以看到,每一个列表项都增加了一个 {index} 属性,并且包含了它在列表中的编号。

对每个列表项添加父级编号

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

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

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

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

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

这个示例中,我们对每一个列表项都添加了一个 {parentIndex} 属性,并且用空格隔开了它的父级编号。一个列表项的父级编号由它前面所有层级的编号组合而成,例如 1.2 表示这个项处于第一级列表的第 1 项,第二级列表的第 2 项。

调整无序列表样式

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

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

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

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

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

对于无序列表,我们可以通过 {bullet} 参数来改变列表项的样式,例如将原来的 - 改成 +

调整有序列表的起始数字

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

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

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

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

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

对于有序列表,我们可以通过 {start} 参数来控制数字起始位置。

总结

通过学习 mdast-add-list-metadata 这个 npm 包的使用,我们可以更加方便地对 Markdown 中的列表进行定制化处理。实际上,它内部应用了非常优秀的 MDAST 技术栈,能够对任意复杂的列表结构进行处理。在实际使用中,我们可以根据不同的需求选择合适的参数,来满足我们的业务需求。

来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/5eedcc3eb5cbfe1ea0612713


猜你喜欢

  • npm 包 require-modify 使用教程

    require-modify 是一个非常方便的 npm 包,它能够在运行时修改 CommonJS 模块的源码,并且不需要修改源代码或重启应用程序。在前端开发中,这是非常有用的,特别是当需要动态地修改一...

    4 年前
  • npm 包 vtree-select 使用教程

    在前端开发中,我们常常会需要搜索和选择树形结构中的某个节点。这时,npm 包 vtree-select 就派上了用场。本文将介绍 vtree-select 的使用方法,并提供详细的示例代码,以帮助读者...

    4 年前
  • npm 包 vgl-compiler 使用教程

    什么是 vgl-compiler? vgl-compiler 是一个基于 Vue.js 的组件库 Vuetify 的自定义主题编译器。它允许你根据实际需求,定制自己的组件库主题,以满足更高的用户需求和...

    4 年前
  • npm 包 ccss-compiler 使用教程

    前言 CSS 作为前端开发的重要一环,一直以来都是我们必须掌握的技能之一。随着时代的发展,CSS 也在不断的升级发展,出现了一些比较新颖、实用的 CSS 创作方式和工具,例如使用 ccss 编写样式。

    4 年前
  • npm 包 error-reporter 使用教程

    在前端开发中,处理错误信息是非常重要的,这样可以帮助我们更好地知道我们的项目中存在什么问题,并尽快解决它们。npm 包 error-reporter 是一个处理错误信息的工具, 下面会给出其详细的使用...

    4 年前
  • npm 包 vfl-compiler 使用教程

    在前端开发中,界面布局是一个需要重点关注的方面。随着项目越来越庞大,手写 CSS 样式已经无法满足需求,因此有许多自动化的布局工具应运而生。其中,使用 Visual Format Language(V...

    4 年前
  • npm 包 list-npm-contents 使用教程

    在前端开发中,我们经常会使用到 npm 包,这是一个非常方便的包管理工具,让我们可以轻松地管理我们的项目依赖。但是,在我们使用 npm 包的过程中,有时候我们需要查看该包的内容,比如它包括了哪些文件、...

    4 年前
  • npm 包 cassowary 使用教程

    在前端开发中,我们常常需要对 UI 元素的布局进行控制。一个流畅、可维护的布局算法是非常重要的,同时它也应该是基于灵活的约束,支持自适应性和优化性能等特性。在这个情形下,cassowary这个 Jav...

    4 年前
  • npm 包 vorpal-grep 使用教程

    在前端开发领域中,我们经常需要进行文件处理和模块搜索等操作。为了提高我们的工作效率和开发体验,我们可以利用 npm 上发布的各种优秀的包来协助我们完成这些工作。在本文中,我们将介绍一个名为 vorp...

    4 年前
  • npm 包 just-build 使用教程

    介绍 npm 是 Node.js 的包管理工具,它允许我们在 Node.js 中安装、分享、发布和管理包,让包的分享和复用变得容易和快速。just-build 是一款基于 npm 的自动化构建工具,可...

    4 年前
  • npm 包 grunt-scss-lint 使用教程

    简介 grunt-scss-lint 是一个使用 grunt 构建工具的 scss lint 工具。使用这个工具可以对 scss 文件进行编译检测,帮助开发者更规范化的编写 scss 代码,提高代码质...

    4 年前
  • npm 包 depcheck-ci 使用教程

    前言 在前端开发中,我们经常需要引入各种依赖包来实现项目的功能。但随着依赖包的增加,项目可能会遇到各种依赖包冲突、版本更新不及时等问题。为了让我们更好地管理依赖包,推荐使用 npm 包 depchec...

    4 年前
  • npm 包 scrawl 使用教程

    在日常前端开发过程中,我们需要完成不少绘制和渲染等工作,而相应的图形库和可视化工具也层出不穷。今天我们将要介绍的是 scrawl,它是一个基于 Canvas API 和逐帧渲染的绘图库。

    4 年前
  • npm包eslint-plugin-protractor使用教程

    什么是eslint-plugin-protractor? 在前端开发中,代码质量是非常重要的,使用ESLint可以进行代码检查,但是默认情况下ESLint并不能对Protractor(一种前端自动化测...

    4 年前
  • npm 包 fg-toss 使用教程

    介绍 fg-toss 是一个可以让用户感受到抛物线运动的 npm 包。它可以让用户在 web 页面上选择一个起点和一个终点,然后使用抛物线的物理模型计算中间点,并使用动画在页面上展示这个过程。

    4 年前
  • NPM 包 fg-overthrow 使用教程

    前言 在前端开发中,实现页面的滚动和滚动事件的监听是非常常见的需求。而 fg-overthrow 就是一个可以帮助我们实现这些功能的 NPM 包。本文将向大家介绍 fg-overthrow 的使用教程...

    4 年前
  • npm 包 mobilizer 使用教程

    在移动端网站开发中,保证网站在不同设备上显示效果一致是一项重要的任务。为了达到这个目的,我们通常会使用响应式设计或者移动优化技术。而一个开发者必不可少的工具就是 mobilizer,它是一个支持预处理...

    4 年前
  • npm 包 gulp-mobilizer 使用教程

    什么是 gulp-mobilizer gulp-mobilizer 是一个可以快速生成响应式网站静态页面的 gulp 插件,它可以根据指定的 viewport 下生成适用的样式和图片,省去了手动写响应...

    4 年前
  • npm 包 stage-js 使用教程

    在前端开发过程中,使用封装好的库可有效提高开发效率和代码可维护性。stage-js 是一个轻量级的 JavaScript 库,它能够帮助开发者更轻松地实现一些动画效果和动态页面交互效果。

    4 年前
  • npm 包 karma-selenium-webdriver-launcher 使用教程

    Karma 是一个测试运行器,它能够跑在 Node.js 中,同时支持多种测试框架(比如 Jasmine、Mocha、QUnit 等)。它的主要优点是能够自动启动浏览器、监听文件变化和输出测试结果。

    4 年前

相关推荐

    暂无文章