如果 NPM Turndown.keep() 具有 Href 属性,则不保留锚标记

问题描述

我正在使用 NPM 的 Turndown 包 (https://www.npmjs.com/package/turndown) 将 Html 文本转换为 Markdown 文本。

在那,我想保留一些元素,如跨度、锚标签等。

根据文档,可以通过添加这样的 keep 规则来完成: turndownService.keep(['a','span']);

但是,如果锚元素具有 href 属性,则它不起作用:

const TurndownService = require('turndown');

const turndownService = new TurndownService();

turndownService.keep(['a','span']);

let html1 = `<p>Hello <span>link<span></p>`;
let html2 = `<p>Hello <a>link</a></p>`;
let html3 = `<p>Hello <a href="abc.com">link</a></p>`;

let markdown1 = turndownService.turndown(html1);
let markdown2 = turndownService.turndown(html2);
let markdown3 = turndownService.turndown(html3);

console.log(markdown1);
console.log(markdown2);
console.log(markdown3);

输出

Hello <span>link</span>
Hello <a>link</a>
Hello [link](abc.com)

如您所见,html3 在锚标记中具有 href 属性在这种情况下,keep 规则不起作用。

有没有办法在 Turndown 中做到这一点?或者有没有其他 Markdown 库可以轻松完成此操作?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...