javascript html转换成markdown,如何使用Turndown使用JavaScript将HTML转换为Markdown[通俗易懂]

javascript html转换成markdown,如何使用Turndown使用JavaScript将HTML转换为Markdown[通俗易懂]本文概述许多项目不是从定义的结构开始,而是随着时间的流逝而变化。例如,一个基本博客可能从一开始就使用HTML格式将其内容存储在数据库中,但是由于其简单性,总有一天某人可能希望开始使用Markdown而不是HTML,在这种情况下,你需要从一种格式转换为另一种格式。如果你将服务器端逻辑与JavaScript(Node.js)一起使用,甚至直接在浏览器中将HTML转换为编辑器中的Markd…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

本文概述

许多项目不是从定义的结构开始, 而是随着时间的流逝而变化。例如, 一个基本博客可能从一开始就使用HTML格式将其内容存储在数据库中, 但是由于其简单性, 总有一天某人可能希望开始使用Markdown而不是HTML, 在这种情况下, 你需要从一种格式转换为另一种格式。如果你将服务器端逻辑与JavaScript(Node.js)一起使用, 甚至直接在浏览器中将HTML转换为编辑器中的Markdown, 则可以使用Turndown库轻松地完成此类任务, HTML到用JavaScript编写的Markdown转换器。

在本文中, 我们将向你展示如何在Node.js甚至浏览器中将HTML转换为Markdown。有关该库的更多信息, 请访问Github上的官方存储库, 或访问官方主页以在线测试转换器。

A.将库用作模块(Node.js或ES6)

如果你喜欢Webpack, Browserify等捆绑程序的主题, Turndown将在官方NPM软件包中提供对UMD的支持, 你可以使用以下NPM命令轻松将其安装在项目中:

npm install turndown –save

安装后, 你将可以使用require或import从Node.js或ES6导入模块。导入模块后, 逻辑非常简单。创建turndown服务的实例并将其存储到变量中, 从该变量执行turndown方法, 将要转换为markdown的HTML字符串作为第一个参数, 就是这样:

// Import Turndown module

const TurndownService = require(‘turndown’);

// Create an instance of the turndown service

let turndownService = new TurndownService();

// Use the turndown method from the created instance

// to convert the first argument (HTML string) to Markdown

let markdown = turndownService.turndown(‘

Hello world!

‘);

// Outputs:

//

// Hello world!

// ============

console.log(markdown);

B.使用VanillaJS

如果你不喜欢模块捆绑器, 或者仅在浏览器中工作, 则可以使用脚本标签在HTML文档中简单地包含turndown的源脚本:

请注意, 你可以从Github官方存储库中的发行版下载最新版本。包含脚本之后, 你应该能够使用前面工作方式中提到的相同逻辑将HTML转换为markdown:

// Create an instance of the turndown service

var turndownService = new TurndownService();

// Use the turndown method from the created instance

// to convert the first argument (HTML string) to Markdown

var markdown = turndownService.turndown(‘

Hello world!

‘);

// Outputs:

//

// Hello world!

// ============

console.log(markdown);

自订选项

该库提供了明显可定制的属性, 你可以通过一个简单的对象将其指定给转换器。需要在TurndownService类的实例中提供具有配置的此对象, 特别是在构造函数中作为第一个参数(这对Node.js和VanillaJS均有效):

选项

有效值

default

标题样式

setext或atx

setext

hr

任何主题休息

* * *

bulletListMarker

-, +或*

*

codeBlockStyle

缩进或围起来

缩进

围栏

“或~~~

“`

emDelimiter

_ 要么 *

+

strongDelimiter

** 要么 __

**

linkStyle

内联或引用

内联

linkReferenceStyle

完整, 折叠或快捷方式

例如, 要将强调字符从_更改为*, 你只需执行以下操作:

// Configure turndown

var options = {

emDelimiter: “*”

};

// Create an instance of the turndown service with custom options

var turndownService = new TurndownService(options);

// Use the turndown method from the created instance

// to convert the first argument (HTML string) to Markdown

var markdown = turndownService.turndown(‘

Hello world!

Welcome‘);

// Outputs:

//

// Hello world!

// ============

//

// *Welcome*

console.log(markdown);

编码愉快!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/196013.html原文链接:https://javaforall.net

(0)
上一篇 2025年10月5日 下午11:22
下一篇 2025年10月6日 上午7:01


相关推荐

  • Spring Cloud 服务注册与发现项目创建(Greenwich SR3版)

    Spring Cloud 服务注册与发现项目创建(Greenwich SR3版)文章目录 1 创建项目 1 1 创建父项目 spring cloud1 2 创建子模块 eureka server 和 eureka client1 3 创建后的项目结构图 2 配置服务注册中心 eureka server2 1EurekaServe java2 2application yml2 3pom xml3 配置服务发现 eureka client3 1Eureka

    2026年3月17日
    2
  • Opnet入门

    Opnet入门一 opnet 快速入门 1 系统界面 amp 文件菜单说明 2 常用文件名后缀及描述 3 Opnet 建模层次用户只有一种节点域模型三 OPNETModeler 网络仿真机制 1 事件的属性每次点击 next 会出现以下界面 2 事件的执行调度型 按照正常程序调度事件强制性 事件比较特殊 主动强制仿真核心停下来执行这个事件安静型 和强制型的区别是 也需要处理这个事件 但没必要把当前的任务停下来 3 事件的分类

    2026年3月16日
    2
  • Rootkit演变

    Rootkit演变Rootkit 概述 nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp 我第一次接触 rootkit 是在 2004 年 当时我还是一个 rookie 病毒分析师 具备一定的关于 UNIX 的 rootkit 病毒的相关知识 有一天我无意中发现 windows 系统中的一个可执行程序 在我登录这个程序的时候 windows 系统似乎没有做出任何反应 我觉得很有趣 并且准备进一步探究这个程序 然后我发现在载入模块列表中有个文件并没有出现在磁盘上 很显然

    2025年12月6日
    5
  • navicat连接不上MySQL_navicat怎样连接mysql

    navicat连接不上MySQL_navicat怎样连接mysqlNavicat连接mysql数据库时,不断报1405错误,下面是针对这个的解决办法:MySQL服务器正在运行,停止它。如果是作为Windows服务运行的服务器,进入计算机管理—>服务和应用程序——>服务。如果服务器不是作为服务而运行的,可能需要使用任务管理器来强制停止它。创建1个文本文件(此处命名为mysql-init.txt),并将下述命令置于单一行中:SETPASSW…

    2022年10月14日
    5
  • 史丰收速算

    史丰收速算史丰收速算法的革命性贡献是 从高位算起 预测进位 不需要九九表 彻底颠覆了传统手算 速算的核心基础是 1 位数乘以多位数的乘法 其中 乘以 7 是最复杂的 就以它为例 因为 1 7 是个循环小数 0 如果多位数超过 就要进 1 同理 2 7 3 7 6 7 也都是类似的循环小数 多位数超过 n 7 就要进 n 下面的程序模拟了史丰收速算法中乘以 7 的运算过程 乘以

    2026年3月26日
    2
  • 文心一言:AI人工智能领域的智能创作工具

    文心一言:AI人工智能领域的智能创作工具

    2026年3月12日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号