Как конвертировать HTML в Markdown с помощью JavaScript с помощью отложенной записи

Многие проекты не начинаются с определенной структуры и меняются с течением времени. Например, базовый блог может начинаться с самого начала с использованием формата HTML для хранения его содержимого в базе данных, однако когда-нибудь кто-то захочет начать использовать Markdown вместо HTML из-за его простоты, в таком случае вам необходимо преобразовать контент из один формат в другой. В случае, если вы используете серверную логику с JavaScript (Node.js) или даже прямо в браузере, чтобы просто преобразовать HTML в Markdown внутри редактора, вы сможете легко решить такую ​​задачу с помощью библиотеки Turndown, HTML в Markdown конвертер написан на JavaScript.

В этой статье мы покажем вам, как конвертировать HTML в Markdown в Node.js или даже в браузере. Для получения дополнительной информации об этой библиотеке, пожалуйста, посетите официальный репозиторий на Github здесь или же посетите официальный сайт протестировать конвертер онлайн.

А. Использование библиотеки в качестве модуля (Node.js или ES6)

Если вы знакомы с темой Bundlers, такой как Webpack, Browserify и т. Д. Turndown предлагает поддержку UMD в официальном пакете NPM, который вы можете легко установить в своем проекте с помощью следующей команды NPM:

npm install turndown --save

После установки вы сможете импортировать модуль из Node.js или ES6, используя require или import. После импорта модуля логика очень проста. Создайте экземпляр службы подготовки к работе и сохраните его в переменной, из этой переменной выполните метод подготовки к работе, предоставив в качестве первого аргумента строку 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);

Б. Использование VanillaJS

Если вам не нравятся компоновщики модулей или вы работаете только из браузера, то вы можете просто включить исходный сценарий подготовки, используя тег script в своем HTML-документе:



Обратите внимание, что вы можете скачать последнюю версию из выпусков в официальном репозитории на Github. После включения скрипта вы сможете конвертировать HTML в уценку, используя ту же логику, что и предыдущий способ работы:

// 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):

вариант
Допустимые значения
По умолчанию
headingStylesetext или же atxsetext
hrлюбой Тематический перерыв* * *
bulletListMarker-, +, или же **
codeBlockStyleindented или же fencedindented
fence``` или же ~~~```
emDelimiter_ или же *_
strongDelimiter** или же __**
linkStyleinlined или же referencedinlined
linkReferenceStylefull, collapsed, или же shortcut

Например, чтобы изменить символы выделения с _ на *, вы можете просто сделать:

// 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);
Ссылка на основную публикацию
Adblock
detector