在Java应用程序中,我需要减价后的文本转换为简单的纯文本而不是HTML(例如删除所有链接地址,粗体和斜体标记)。使用flexmark-java的清洁降价
这是最好的方法吗?我正在考虑使用像fleaxmark这样的降价库。但我一见钟情就找不到这个功能。它在吗?还有其他更好的选择吗?
在Java应用程序中,我需要减价后的文本转换为简单的纯文本而不是HTML(例如删除所有链接地址,粗体和斜体标记)。使用flexmark-java的清洁降价
这是最好的方法吗?我正在考虑使用像fleaxmark这样的降价库。但我一见钟情就找不到这个功能。它在吗?还有其他更好的选择吗?
编辑
Commonmark支持呈现到文本,通过使用org.commonmark.renderer.text.TextContentRenderer
而不是默认的HTML渲染器。不知道它与换行符有什么关系,但值得一试。
原来的答复,使用flexmark HTML + JSoup
理想的解决办法是实施flexmark定制呈现,但是这将迫使你写一个模型到字符串为所有语言功能在降价。除非它支持开箱即用,但我不知道这个功能......
更简单的解决方案可能是使用flexmark(或任何其他轻量级markdown渲染器)并让它创建HTML。之后,只需通过https://jsoup.org/运行生成的HTML,让它提取文本:
Jsoup.parse(htmlInputStream).text();
字符串org.jsoup.nodes.Element.text() 获取此元素的复合文字及其所有子。空白符被标准化和修剪。
例如,假设HTML
<p>Hello <b>there</b> now! </p>
,p.text()返回Hello there now!
我们用这种方法获得的丰富的内容编辑器(summernote)输入文本的“预览”,后被消毒与org.owasp.html.HtmlSanitizer
。