将HTML转换为Markdown时如何不松动<pre>和<iframe>?

时间:2019-09-26 06:35:55

标签: html node.js markdown

我有几个HTML文件,我想使用Node.js自动将其转换为markdown。我的问题是–转换时似乎丢失了几个标签,尤其是<iframe><pre>

以下是问题的一个示例:

example.html

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

converted.md

# My title
I present you my code:

如您所见,<pre>元素消失了:-(我知道没有与这些标记等效的markdown,但是由于每个html代码在md文件中也有效,因此不应仅将它们保留为md文件中包含纯HTML?

我期望什么

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

我创建的转换器是用Node编写的,如下所示:

var TurndownService = require('turndown')

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

  return contentAsMarkdown
}

这只是我在这里使用的Turndown库的问题,还是html-> md转换器执行的常规操作?我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

您是否了解了调节的工作原理?

根据Turndown documentation,您需要的是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
}