npm 包 rehype-remark 使用教程

前言

本文主要介绍如何使用 npm 包 rehype-remark,将 HTML 转换为 Markdown,并实现一些定制化的需求。rehype-remark 是 rehype 和 remark 两个库的结合体,它们分别负责将 HTML 转换成抽象语法树(AST)、将抽象语法树转换成 Markdown。通过 npm 包 rehype-remark 提供的 APIs,我们可以通过编写 JavaScript 代码,轻松定制化地将 HTML 转换成 Markdown。

安装 rehype-remark

在使用之前,我们需要先安装 rehype-remark,可以通过以下命令来完成安装:

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

基本用法

rehype-remark 的核心功能是将 HTML 转换成 Markdown,下面我们来看一下基本的用法。

我们首先需要创建一个 rehype-remark 的转换器实例:

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

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

上面的代码使用了 unified 和三个插件:rehype-parse、rehype-remark、remark-stringify。其中,rehype-parse 和 remark-stringify 分别是将 HTML 和 Markdown 转换成抽象语法树(AST)的插件;rehype-remark 则是在抽象语法树上做一些转换处理。通过链式调用 use 方法,我们将这三个插件传给了 processor。

接着,我们可以使用 createdProcessor 来执行转换:

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

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

上面的代码中,我们将 HTML 字符串传给了 process 方法,通过回调函数拿到了转换后的 Markdown 字符串。可以看到,我们将 HTML 转换成了标题(即 #)。

配置项

在处理 HTML 转 Markdown 的过程中,我们肯定会有一些定制化的需求。rehype-remark 提供了一些配置项,可以帮助我们实现定制化。接下来,我们分别介绍一下常用的配置项。

HTML 标签转换

rehype-remark 默认将所有 HTML 标签转换为相应的 Markdown,不过我们可以通过 specify 选项来定制化 HTML 标签的转换规则,比如:

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

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

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

上面的代码中,我们将 img 标签的转换规则指定为 ![,],意思是将 img 标签转换为 Markdown 图片。

转义 HTML 符号

rehype-remark 还提供了 escapeHtml 选项,可以将 HTML 编码的符号转换回来,比如:

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

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

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

上面的代码中,我们将 escapeHtml 设置为 false,它会将 HTML 编码的符号转换为相应的字符。

总结

本文主要介绍了 npm 包 rehype-remark 的使用方法和常用配置选项。通过本文的介绍,我们可以轻松定制化地将 HTML 转换成 Markdown,提高了前端开发效率。

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


猜你喜欢

  • npm 包 path-is-network-drive 使用教程

    前言 在前端开发过程中,我们经常会涉及到文件的路径处理问题。其中,判断路径是否为网络驱动器路径是一个很常见的需求,而 path-is-network-drive 就是一款针对此问题的 npm 包。

    4 年前
  • npm 包 path-strip-sep 使用教程

    前言 对于前端开发者而言,处理文件路径是一个必不可少的过程。我们通常会用到很多文件路径相关的 API,其中 path 模块尤为重要。在 path 模块中,有一些方法会返回具有多个路径分隔符的路径字符串...

    4 年前
  • npm 包 upath2 使用教程

    前言 在前端开发中,文件路径处理经常是必不可少的一项任务。而使用纯 JavaScript 处理路径可能会比较麻烦,这时候一个好用的 npm 包会省去很多繁琐的工作。

    4 年前
  • NPM 包 find-yarn-workspace-root2 使用教程

    前言 随着前端工程化的不断发展,我们很多的工程和项目开始使用了 Yarn 作为包管理工具,而针对 Yarn 工作区而出现的 npm 包 find-yarn-workspace-root2,可以帮助我们...

    4 年前
  • npm包 @jsdevtools/ez-spawn使用教程

    @jsdevtools/ez-spawn是一个在nodejs项目中使用的模块,它可以让你轻松地在控制台中执行shell命令,支持async/await,以及提供了更加灵活的选项配置。

    4 年前
  • npm 包 @jsdevtools/chai-exec 使用教程

    简介 在前端测试中,测试代码的正确性是非常重要的。JavaScript 测试框架 Chai 是一个流行的测试框架,它有丰富的 API 可以用来断言代码的正确性。其中,chai-exec 是一个能够简化...

    4 年前
  • npm包 @jsdevtools/version-bump-prompt 使用教程

    简介 在前端开发中,我们经常需要对项目版本进行升级或者发布新的版本。这个过程需要我们手动修改 package.json 中的版本号,比较繁琐。为此,@jsdevtools/version-bump-p...

    4 年前
  • npm 包 @jsdevtools/eslint-config-modular 使用教程

    什么是 eslint-config-modular @jsdevtools/eslint-config-modular 是一个基于 ESLint 的扩展模块,拥有一套可定制的、模块化的 ESLint ...

    4 年前
  • npm 包 @types/glob-to-regexp 使用教程

    在前端开发的过程中,我们经常会用到一些 npm 包来简化我们的开发流程。@types/glob-to-regexp 就是一个方便的 npm 包,它允许我们通过 glob 语法来匹配字符串,并把 glo...

    4 年前
  • npm 包 @jsdevtools/file-path-filter 使用教程

    简介 在前端开发过程中,文件路径的处理是一个常见的需求。如何对文件路径进行过滤是一个有趣的问题。 @jsdevtools/file-path-filter 提供了一个灵活的方案,可以为开发者解决各种文...

    4 年前
  • npm 包 @jsdevtools/readdir-enhanced 使用教程

    介绍 在前端开发中,我们经常需要遍历文件夹和读取文件。 readdir 是 Node.js 中一个强大的模块,可以帮助我们读取文件夹中的文件和子文件夹。但是,它存在一些限制,比如它只能读取单个子文件夹...

    4 年前
  • npm 包 @elastic/eslint-config-kibana 使用教程

    前言 在前端开发中,代码规范是非常重要的,可以使代码更加易读、易于维护以及更加统一。工欲善其事,必先利其器,所以我们需要选择好一款适合自己团队项目的代码规范工具。这篇文章主要介绍一个 npm 包 @e...

    4 年前
  • npm 包 mdn-confluence 使用教程

    在前端开发中,我们经常需要查询某个 HTML 元素、CSS 属性或 JavaScript 函数的使用方法和相关文档。在这方面,MDN(Mozilla 开发者网络)是一个非常好的资源。

    4 年前
  • NPM 包 @types/nightmare 使用教程

    在前端开发中,有时候会需要使用自动化测试工具。其中一个常用的工具是 Nightmare.js,它是一个高级的异步驱动模拟浏览器的库,类似于 PhantomJS,可以模拟鼠标、键盘操作,也可以用于抓取 ...

    4 年前
  • npm 包 ast-metadata-inferer 使用教程

    AST-Metadata-Inferer 是一款非常实用的 NPM 包,它可以帮助开发者在更高效地开发前端项目时搜集和收集代码元数据并进行加工,使代码更规范、更易于管理。

    4 年前
  • npm 包 is-urlsearchparams 使用教程

    随着 web 应用的日益复杂,前端开发中经常需要对 URL 中的查询参数进行操作。而浏览器自带的 URLSearchParams API 也存在兼容性问题。因此,npm 有一个名为 is-urlsea...

    4 年前
  • npm 包 incomplete-symbol 使用教程

    在前端开发中,我们可能会遇到需要输入特定的命令或者关键字的情况。但是有时候我们会输入错误或者不完整的命令,这样会导致程序无法正确执行。这时候,我们可以使用 npm 包 incomplete-symbo...

    4 年前
  • npm 包 incomplete-url 使用教程

    前言 在 Web 开发过程中,前端经常会涉及到 URL 的操作。而 URL 中的查询参数通常是实现各种功能的关键。但是在实际开发中,我们可能会遇到一些非常棘手的问题,例如 URL 中的查询参数不完整,...

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

    开发一个网站或应用中,需要考虑到用户输入内容的安全,其中一个重要的问题就是过滤掉使用不当语言或含有攻击性词汇的内容。npm 包 badwords-list 能够实现这一功能,本文将详细介绍 npm 包...

    4 年前
  • npm 包 bad-words 使用教程

    在前端开发中,处理文字输入的场景经常出现。有时需要对用户输入进行过滤、屏蔽敏感词,这时候 npm 上的 bad-words 包就派上了用场。本文将介绍 bad-words 的使用方法及其指导意义。

    4 年前

相关推荐

    暂无文章