Javaアプリケーションでは、マークダウンテキストをhtmlではなく単純なプレーンテキストに変換する必要があります(たとえば、すべてのリンクアドレス、太字、斜体マーカーを削除するなど)。flexmark-javaを使用してマークダウンを清掃する
これを行う最善の方法はどれですか?私はfleaxmarkのようなマークダウンライブラリを使うことを考えていました。しかし、私は一見するとこの機能を見つけることができません。そこにいますか?他にも良い選択肢がありますか?
Javaアプリケーションでは、マークダウンテキストをhtmlではなく単純なプレーンテキストに変換する必要があります(たとえば、すべてのリンクアドレス、太字、斜体マーカーを削除するなど)。flexmark-javaを使用してマークダウンを清掃する
これを行う最善の方法はどれですか?私はfleaxmarkのようなマークダウンライブラリを使うことを考えていました。しかし、私は一見するとこの機能を見つけることができません。そこにいますか?他にも良い選択肢がありますか?
編集
Commonmarkではなく、デフォルトのHTMLレンダラのorg.commonmark.renderer.text.TextContentRenderer
を使用して、テキストにレンダリングをサポートしています。改行で何をするのか分かりませんが、試してみる価値があります。
オリジナル答え、使用してflexmarkのHTML + JSoup
理想的なソリューションは、flexmarkのカスタムレンダラを実装することですが、これは、すべての言語のためのモデルに文字列を書き込むためにあなたを強制しますマークダウンの機能この機能をサポートしていない限り、この機能は認識していません。
もっと簡単な解決策は、flexmark(または他の軽量マークダウンレンダラー)を使用して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
となります。