Как не потерять <pre>и <iframe>при конвертации HTML в Markdown? - PullRequest
0 голосов
/ 26 сентября 2019

У меня есть пара html-файлов, которые я хочу автоматически преобразовать в уценку с помощью Node.js.Моя проблема заключается в том, что при конвертации, похоже, потеряно несколько тегов, особенно <iframe> и <pre>.

. Вот пример проблемы:

example.html

My title
I present you my code:
console.log('hello world!');

convert.md

# My title
I present you my code:

Как видите, элемент <pre> пропал: -(Я понимаю, что нет уценки, эквивалентной этим тегам, но, поскольку каждый HTML-код также допустим в файлах MD, разве они не должны оставаться в виде чистого HTML в файле MD?

что-я-expected.md

<code># My title
I present you my code:
<pre>console.log('hello world!');

Созданный мной конвертер написан на Node и выглядит так:

var TurndownService = require('turndown')

function post2Markdown(post) {
  var turndownService = new TurndownService()
  var contentAsMarkdown = turndownService.turndown(post.content.rendered)

  return contentAsMarkdown
}

Это просто проблема сбиблиотека отложений, которую я использую здесь, или это обычная вещь, которую делают конвертеры html-> md? Как я могу решить эту проблему?

1 Ответ

1 голос
/ 26 сентября 2019

Читали ли вы, как работает подготовка постели ко сну?

В соответствии с Документация по подготовке номера , опция keep - это то, что вам нужно.

Приведенный ниже код должен работать:

var TurndownService = require('turndown')

function post2Markdown(post) {
  var turndownService = new TurndownService()
  turndownService.keep(['pre', 'iframe'])
  var contentAsMarkdown = turndownService.turndown(post.content.rendered)

  return contentAsMarkdown
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...