在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
。