当前位置: 首页 > 工具软件 > Turndown > 使用案例 >

javascript html转换成markdown,如何使用Turndown使用JavaScript将HTML转换为Markdown

皇甫琛
2023-12-01

本文概述

许多项目不是从定义的结构开始, 而是随着时间的流逝而变化。例如, 一个基本博客可能从一开始就使用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);

编码愉快!

 类似资料: