Комментирование автоматизации закрытия div
-
22-09-2019 - |
Вопрос
Я ищу решение крысиного гнезда кода, который мне вручили - он огромен по объему, поэтому я ищу предложения по программному подходу к комментированию того, какой 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 -->
Я безуспешно попробовал несколько попыток Regex, мне было бы интересно узнать, какой подход лучше всего.
Решение
Если это действительный xhtml, вы можете просто поместить его в XML-документ, а затем приступить к обработке тегов div, найдя их все, а затем добавить родственный элемент с нужным вам узлом комментариев.
Другие советы
Одно регулярное выражение может сработать, но, возможно, лучше написать программу, дополненную регулярными выражениями.Получить текст между < div id="
и >
, затем добавьте его в список или стек и свяжите по порядку с индексом int.Продолжайте сканировать его и, найдя тег '', извлеките новый текст из стека и отформатируйте его, чтобы он стал комментарием.
Я просто использую скрипт для правильного отступа в HTML, чтобы я мог сразу проверить, правильно ли закрыты все теги - правильный отступ возвращается к левому полю.Чтобы проверить, какое открытие соответствует закрытию, я использую складной текстовый редактор, такой как SciTe или Komodo Edit, чтобы я мог просматривать код с правильными отступами, открывая и сворачивая разделы.
Если кого-то заинтересует скрипт отступов (написанный на tcl), могу его куда-нибудь выложить.Альтернативно вы можете попробовать использовать что-то вроде HTMLTidy для форматирования.
Вы можете использовать API XML/DOM для определенного языка и экспериментировать с тем, как он обрабатывает объекты комментариев.Например, Питон -- http://docs.python.org/library/xml.dom.html#comment-objects
<div>whatever</div>
<!-- this comment is already deprecated -->
Просто используйте достойный редактор, который выделяет начальный/конечный тег.Даже NotePad2 делает это.Большинство редакторов также могут выбирать тег и содержимое или только содержимое.Многие редакторы также переформатируют HTML за вас (если вы осмелитесь).
Комментирование конца тега может рассинхронизироваться, и вам или вашим коллегам будет еще труднее следить за ним.
Если вы в конечном итоге успешно добавите избыточные комментарии к каждому тегу div, span, p, ul и т. д., я думаю, вы обнаружите, что код станет еще более раздутым и нечитаемым.