Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Configuring and Using HTML Tidy

I would like to use Textmate's built-in Tidy (Ctrl+Shift+H) functionality to indent my HTML 'without modifying anything' in the code. I write pretty neat HTML already, I just need Tidy to indent my code with Soft-tabs.

Currently it breaks a lot of things and the formatting isn't perfect either. Can someone please write a Tidy config for me that does this:

1 - Indents only, nothing else.

2 - I don't need certain tags to be pushed on a newline. For example: Tidy does this:

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

Original Code (or What I need):

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

..so if I can pre-define which tags to be kept inline, that would be great.

Basically, I'd like to duplicate Dreamweaver's HTML formatting functionality with Tidy, but the two things mentioned above are really important.

I think this is my current (default?) Tidy config:

${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`

I'd greatly appreciate any help. Thanks!

like image 399
eozzy Avatar asked Sep 13 '09 00:09

eozzy


2 Answers

Tidy isn't really meant to do this the way you want to use it. It is not a general-purpose code formatting library, it is a HTML cleanup tool. From the homepage:

Several people have asked if Tidy could preserve the original layout. I am sorry to say that this would be very hard to support due to the way Tidy is implemented. Tidy starts by building a clean parse tree from the source file. The parse tree doesn't contain any information about the original layout.

I really don't think there is a good way to get it to do what you want, but you could play with the whole list of options and see which ones are closer to your ideal.

like image 107
Zac Thompson Avatar answered Sep 30 '22 08:09

Zac Thompson


Try Pretty Diff. It will beautify your code without making any assumptions about your code. You can submit small incomplete fragments of code and Pretty Diff will output this small fragment with indentation.

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

like image 29
austincheney Avatar answered Sep 30 '22 10:09

austincheney