[如何不松动 和 当将HTML转换为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文件中也是有效的,因此它们不应该仅作为纯html保留在md文件?
what-I-expected.md
# 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转换器执行的常规操作?如何解决此问题?
回答如下:您是否读过调节的工作原理?
根据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
}