私はJTidyを使用して、ユーザーが生成した整形式のHTMLをきれいに印刷しようとしています:
<div class="component-holder ng-binding ng-scope ui-draggable ui-draggable-handle" data-component="cronos-datasource" id="cronos-datasource-817277">
<datasource name="" entity="" key="" endpoint="" rows-per-page="">
<i class="cpn cpn-datasource"></i>
</datasource>
</div>
これは私の設定です:
Tidy tidy = new Tidy();
tidy.setXHTML(true);
tidy.setIndentContent(true);
tidy.setPrintBodyOnly(true);
tidy.setTidyMark(false);
tidy.setWraplen(2000);
tidy.setDropProprietaryAttributes(false);
tidy.setDropEmptyParas(false);
tidy.setTrimEmptyElements(false);
しかし、jTidy は私の AngularJSdatasource
ディレクティブを削除しています。この問題を回避する方法はありますか?
ログからこれを取得しています:
line 1 column 191 - Error: <datasource> is not recognized!
line 1 column 191 - Warning: discarding unexpected <datasource>
削除tidy.setXHTML(true)
または false に設定して追加すると、tidy.setXmlTags(true)
実際にこの問題が解決され、ユーザー定義のタグが考慮され始めますが、JTidy が自己囲みタグを閉じようとするため、これは適切な解決策ではありません。
<!-- this code -->
<img src="anythig.jpg"/>
<div id="anyid"></div>
<!-- will become -->
<img src="anythig.jpg">
<div id="anyid"></div>
</img>
テキスト エディター用のフォーマッターが必要です。ユーザーがどのディレクティブを定義して使用するかは保証できません。これは、ユーザー定義のディレクティブで機能する一般的なソリューションでなければなりません