Содержание
Многие проекты не начинаются с определенной структуры и меняются с течением времени. Например, базовый блог может начинаться с самого начала с использованием формата 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):
headingStyle | setext или же atx | setext |
hr | любой Тематический перерыв | * * * |
bulletListMarker | - , + , или же * | * |
codeBlockStyle | indented или же fenced | indented |
fence | ``` или же ~~~ | ``` |
emDelimiter | _ или же * | _ |
strongDelimiter | ** или же __ | ** |
linkStyle | inlined или же referenced | inlined |
linkReferenceStyle | full , 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);