npm 包 remark-heading-id 使用教程

简介

remark-heading-id 是一个 npm 包,它可以为 markdown 中的标题自动生成唯一的 id,让页面更方便地跳转到特定的章节。

实际上,这个功能很容易实现。只需要在每个标题中添加一个类似于 id="chapter1" 的属性即可。但是手动添加这些属性非常麻烦。如果我们有数百个标题需要修改,那么就会非常痛苦。这时候 remark-heading-id 就派上用场了。

安装

使用 npm 安装 remark-heading-id 包:

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

安装成功后,在代码中导入 remark-heading-id 包。

使用

使用 remark-heading-id 很简单。只需要在 markdown 文件中添加类似于以下这行代码:

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

然后运行以下代码:

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

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

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

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

结果如下:

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

可以看到,remark-heading-id 自动为标题添加了一个 id。这个 id 是根据标题内容生成的,所以不需要手动设置。如果标题内容有改动,id 也会跟着改动。

配置

remark-heading-id 提供了一些选项,可以让我们自定义生成的 id。

根据标题内容生成 id

默认情况下,remark-heading-id 会根据标题内容自动生成 id。这是一个非常好的默认选项,可以保证 id 的唯一性,并且不需要我们手动设置。如果你希望保持默认配置,可以不设置任何选项。

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

自定义 id 前缀

如果您希望覆盖自动生成的 id,请设置 prefix 选项。

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

这个选项将强制使用给定的前缀,然后把标题内容转换为小写。例如:

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

将采用以下 id:

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

替换标题内容

默认情况下,remark-heading-id 不会修改标题内容。但是有时候,我们需要将标题中的一些字符替换为其他字符。例如,将空格替换为短横线是一种常见的做法。

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

在这个例子中,我们将空格替换为短横线。这意味着如果我们使用以下标题:

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

生成的 id 将是:

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

这是因为我们只替换了空格,而不是全局替换。在一般情况下,建议只使用全局替换,以确保生成的 id 始终正确。

示例代码

下面是一个示例代码,使用了 remark-heading-id 包来生成 markdown 文件的目录。它使用自定义前缀和全局替换空格的选项来创建 id。

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

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

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

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

这段代码将 markdown 文件 example.md 转换为 html 文件 example.html。您可以在浏览器中打开它,并希望在每个标题下方看到一个链接,可用于快速导航至该部分。

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


猜你喜欢

  • npm 包 Google-Photos-Migration 使用教程

    随着云相册服务的增多,不同平台间图片的转移成为了一个常见的问题。Google Photos 作为一款备受欢迎的相册服务,拥有许多用户,但是如何将其上的照片转移到其他平台可就不是那么容易了。

    4 年前
  • npm 包 validate_phone_number 使用教程

    在前端开发中,我们经常需要验证用户输入的电话号码是否合法。这时候,我们可以使用 npm 包 validate_phone_number 来帮助我们完成任务。validate_phone_number ...

    4 年前
  • npm 包 @applicaster/zapp-react-dom-bridge 使用教程

    在前端开发中,我们经常会使用各种 npm 包来提高代码的效率和质量。其中,@applicaster/zapp-react-dom-bridge 是一款非常好用的 npm 包,它可以实现 React N...

    4 年前
  • npm 包 @place-app/text-field.component 使用教程

    介绍 @place-app/text-field.component 是一个 React 组件库中的文本输入框组件,该组件实现了多种文本输入框的样式和功能。 安装 在项目的根目录下,打开终端窗口,输...

    4 年前
  • npm 包 book-cli 使用教程

    介绍 book-cli 是一个基于 Node.js 的命令行工具,用于快速生成漂亮且易于阅读的文档。它支持 Markdown 格式的输入和多种输出格式(例如 PDF、EPUB、MOBI、HTML)。

    4 年前
  • npm包vue-extend-template-loader使用教程

    vue-extend-template-loader 是一个提供了多种便利方法的vue项目优化工具库。它可以自动将不同vue文件中重复的template合并并缓存起来,使得打包后的文件大小更加紧凑,同...

    4 年前
  • npm 包 wwz-ui 使用教程

    前言 随着前端技术的快速发展和普及,前端组件化和模块化也变得越来越重要。npm 包成为前端开发者的必备工具之一,我们可以轻松地共享组件、模块等代码,提高开发效率。wwz-ui 是一个基于 Vue.js...

    4 年前
  • npm 包 mapbox-gl-leaflet-latest 使用教程

    简介 mapbox-gl-leaflet-latest 是一个 npm 包,它可以帮助开发者在 web 应用程序中使用 MapBox GL JS 和 Leaflet 来创建静态和动态地图。

    4 年前
  • npm 包 blinktitle.js 使用教程

    前言 在很多 Web 应用程序中,特别是在线聊天应用程序中,我们会发现浏览器标题会不断闪烁以提醒用户新的消息已到达。如果您正在开发这样的应用程序,您可能会想知道如何实现这一功能。

    4 年前
  • npm 包 eslint-import-resolver-babel-root-import-fixed 使用教程

    在前端开发中,使用 ESLint 是一个非常好的习惯,可以帮助我们规范化代码,提高代码质量。而 eslint-import-resolver-babel-root-import-fixed 是一个非常...

    4 年前
  • npm 包 nightwatch-accessibility 使用教程

    前言 在当今互联网技术发展迅速的时代,用户对于网站和应用的易用性和访问性要求越来越高。而如何保障网站和应用的访问性,成为前端开发人员急需解决的问题。 本文将介绍如何使用 npm 包 nightwatc...

    4 年前
  • npm 包 egg-passport-qgame 使用教程

    随着移动游戏行业的不断发展,越来越多的应用需要使用到 QQ 游戏大厅里的用户信息。这时候,我们就可以使用 egg-passport-qgame 这个 npm 包来实现用户登录认证。

    4 年前
  • npm 包 egg-pinduoduo 使用教程

    在前端开发中,使用 npm 包已经成为了常见做法。而 egg-pinduoduo 这个 npm 包则是针对前端开发中使用拼多多API所设计的。本文将详细介绍如何使用 egg-pinduoduo 包以及...

    4 年前
  • npm 包 local-sidereal-time 使用教程

    随着前端技术的不断发展,越来越多的前端工程师开始使用 npm 包来提高开发效率。而 local-sidereal-time 是一个非常有用的 npm 包,它可以方便地计算本地恒星时间,本文将为大家介绍...

    4 年前
  • npm 包 @wondersistemas/react-native-sqlite-storage 使用教程

    介绍 在 React Native 开发中,我们经常需要将数据存储在本地,以方便在应用程序中进行离线操作。@wondersistemas/react-native-sqlite-storage 就是一...

    4 年前
  • npm 包 adonis-mix 使用教程

    前言 在前端开发中,我们经常需要使用构建工具进行打包、压缩等操作。而 adonis-mix 就是一个基于 Laravel Mix 的前端构建工具,它能够帮助我们快速地搭建前端开发环境并提供配置灵活性。

    4 年前
  • npm 包 Clapp 使用教程

    前言 npm 包是前端开发者必不可少的工具,通过 npm 包我们可以快速便捷地引入各种依赖。Clapp 是一个非常有用的 npm 包,它是一个用于构建命令行接口(CLI)的框架。

    4 年前
  • npm 包 cordova-adapter-sqlite-eyepscap 使用教程

    简介 cordova-adapter-sqlite-eyepscap 是一个开源的基于 Cordova 的 SQLite 插件。它为 Cordova 应用提供了在 SQLite 数据库上执行 SQL ...

    4 年前
  • npm 包 react-native-downloadok3 使用教程

    前言 react-native-downloadok3 是一个用于 React Native 开发的下载组件,使用它可以让我们方便地下载文件到本地或者网络上。该组件是基于 okHttp 封装的,具有良...

    4 年前
  • npm 包 react-native-rnaescryptor 使用教程

    什么是 react-native-rnaescryptor? react-native-rnaescryptor 是一个 npm 包,提供了一种在 React Native 应用中使用 AES 加密算...

    4 年前

相关推荐

    暂无文章