Комментирование автоматизации закрытия div

Я ищу решение для крысиного гнезда кода, который мне передали - он огромен по объему, поэтому я ищу предложения по программному подходу к комментированию того, что div закрывается и где.

Пример:

ДО

<div id="wrapper-item">
<div id="outer-item">
    <div class="inner-item">
<h1>Just Some Placekeeper Copy</h1>
<p>Lorem ipsum dolor sit amet, consectetuer adipiscing.</p>
    </div>
</div>  
</div>

ПОСЛЕ

<div id="wrapper-item">
<div id="outer-item">
    <div class="inner-item">
<h1>Just Some Placekeeper Copy</h1>
<p>Lorem ipsum dolor sit amet, consectetuer adipiscing.</p>
    </div><!-- .inner-item -->
</div><!-- #outer-item -->      
</div><!-- #wrapper-item -->

Я попробовал несколько попыток регулярных выражений без какой-либо радости, мне было бы любопытно, каков наилучший подход..

5 ответов

Решение

Если это действительный xhtml, то вы можете просто поместить его в XML-документ, а затем приступить к обработке тегов div, найдя их все, а затем добавив одноуровневый элемент с нужным вам узлом комментария.

Я просто использую скрипт для правильного отступа в HTML, чтобы я мог сразу проверить, правильно ли закрыты все теги - отступ правильно возвращается, чтобы коснуться левого поля. Чтобы проверить, что открытие соответствует тому, что закрытие, я использую сворачиваемый текстовый редактор, такой как SciTe или Komodo Edit, чтобы я мог просматривать правильно с отступом код, открывая и сворачивая разделы.

Если кто-то заинтересован в скрипте отступа (написанном на tcl), я могу загрузить его где-нибудь. В качестве альтернативы вы можете попробовать использовать что-то вроде HTMLTidy для форматирования.

Одиночное регулярное выражение может работать, но может быть лучше написать программу, дополненную регулярными выражениями. Получить текст между < div id=" а также >, затем добавьте это в список или стек и свяжите его по порядку с индексом int. Продолжите сканирование и, найдя тег '', вставьте самый новый текст в стек и отформатируйте его, чтобы он стал комментарием.

Вы можете использовать API XML/DOM для определенного языка и поиграть с тем, как он обрабатывает объекты комментариев. Например, Python - http://docs.python.org/library/xml.dom.html

<div>whatever</div>
<!-- this comment is already deprecated -->

Просто используйте приличный редактор, который выделяет начальный / конечный тег. Даже NotePad2 делает это. Большинство редакторов также могут выбрать тег и содержимое или просто содержимое. Многие редакторы также переформатируют HTML для вас (если вы решитесь).

Комментирование конца тега станет несогласованным и будет еще труднее следить за вами или вашими коллегами.

Если вы успешно добавите избыточные комментарии к каждому тегу div, span, p, ul и т. Д., Я думаю, вы обнаружите, что код еще более раздут и нечитаем.

Другие вопросы по тегам