Настройка и использование HTML Tidy

Я хотел бы использовать встроенную в Textmate функциональность Tidy (Ctrl+Shift+H), чтобы сделать отступ в моем HTML «без каких-либо изменений» в коде. Я уже пишу довольно аккуратный HTML, мне просто нужно, чтобы Tidy делал отступ в моем коде с помощью Soft-tabs.

В настоящее время он ломает много вещей, и форматирование тоже не идеально. Может кто-нибудь, пожалуйста, напишите мне конфиг Tidy, который делает это:

1 - Только отступы, больше ничего.

2 - мне не нужно, чтобы определенные теги помещались на новую строку. Например: Tidy делает это:

<li>
  <a href="#">link</a>
</li>

Исходный код (или что мне нужно):

<li><a href="#">link</a></li>

... так что, если бы я мог заранее определить, какие теги должны оставаться встроенными, это было бы здорово.

По сути, я хотел бы продублировать функции форматирования HTML Dreamweaver с помощью Tidy, но две вещи, упомянутые выше, действительно важны.

Я думаю, что это моя текущая (по умолчанию?) аккуратная конфигурация:

${TM_TIDY:-tidy}" -f /tmp/tm_tidy_errors -iq -utf8 \
      -wrap 0 --tab-size $TM_TAB_SIZE --indent-spaces $TM_TAB_SIZE \
    --indent yes \
      ${TM_XHTML:+-asxhtml --output-xhtml yes} \
      ${TM_SELECTED_TEXT:+--show-body-only yes} \
      --enclose-text yes \
      --doctype strict \
    --wrap-php no \
      --tidy-mark no`

Буду очень признателен за любую помощь. Спасибо!


person eozzy    schedule 13.09.2009    source источник


Ответы (7)


Tidy на самом деле не предназначен для того, чтобы делать это так, как вы хотите его использовать. Это не библиотека форматирования кода общего назначения, это инструмент очистки HTML. С главной страницы:

Несколько человек спросили, может ли Tidy сохранить исходный макет. Мне жаль говорить, что это будет очень сложно поддерживать из-за того, как реализован Tidy. Tidy начинает с построения чистого дерева синтаксического анализа из исходного файла. Дерево синтаксического анализа не содержит никакой информации об исходном макете.

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

person Zac Thompson    schedule 02.10.2009
comment
Спасибо за информацию, но я пробовал использовать встроенные теги, они никогда не работают должным образом. - person eozzy; 02.10.2009

Попробуйте Pretty Diff. Это украсит ваш код, не делая никаких предположений о вашем коде. Вы можете отправлять небольшие незавершенные фрагменты кода, и Pretty Diff выведет этот небольшой фрагмент с отступом.

http://prettydiff.com/?m=beautify&html

person austincheney    schedule 10.12.2011

В аккуратном конфигурационном файле установите для параметра отступ значение no.

http://www.w3.org/People/Raggett/tidy/

person John M    schedule 13.09.2009
comment
Я должен установить отступ на НЕТ, хотя я ДЕЙСТВИТЕЛЬНО хочу отступ? - person eozzy; 13.09.2009
comment
@Nimbuz, да, это правильно. --indent yes приведет к перезаписи, которой вы пытаетесь избежать. Попробуй сам. - person Zac Thompson; 02.10.2009

Я надеюсь, что это будет полезно для людей, наткнувшихся на эту страницу:

Если вы выберете текст, который хотите отформатировать (т. е. изменить отступ), TextMate применит определенные действия только к этому выделению. Итак, если вы CMD+A свой документ, а затем примените Tidy (либо из меню Bundles > HTML, либо с помощью CTRL+ SHIFT+H сочетание клавиш) он сделает отступ выделения, пропуская предупреждения при проверке, которые появляются, когда вы запускаете Tidy без выбора. Эти оповещения иногда могут быть ненужными, поскольку мы часто работаем с фрагментами страниц (по крайней мере, я).

person mcdado    schedule 17.09.2013

Изменение --indent yes на --indent auto работает для меня. Его нельзя настроить, но, похоже, он хорошо справляется с большинством случаев.

person mattfawcett    schedule 28.04.2010

Итак, Nimbuz, вы также упомянули: «В настоящее время он много чего ломает» — вы имеете в виду, что он вводит разрывы строк или генерирует HTML, который не отображается должным образом? Потому что последнее происходит со мной довольно плохо, и если вы заставили это работать со специальной конфигурацией, я бы хотел это увидеть (пытаясь сделать то же самое, что вы хотите... просто форматирование). Благодарность!

person Community    schedule 20.01.2010

Разобрался со встроенными тегами, теперь работает!

person eozzy    schedule 07.10.2009
comment
Это не поможет людям, у которых такая же проблема. Пожалуйста, не забудьте подробно рассказать о решениях, которые вы найдете. - person Jonathan Dumaine; 07.10.2011