Я пытаюсь использовать 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 удаляет мою директиву AngularJS datasource
. Есть ли способ решить эту проблему?
Я получаю это из журнала:
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>
Мне нужен форматтер для текстового редактора. Я не могу гарантировать, какие директивы наши пользователи будут определять и использовать. Это должно быть общее решение, которое работает для любой определяемой пользователем директивы