配置和使用 HTML Tidy

发布于 2024-08-04 09:52:17 字数 930 浏览 8 评论 0原文

我想使用 Textmate 的内置 Tidy (Ctrl+Shift+H) 功能来缩进我的 HTML,“不修改任何内容”。我已经编写了非常整洁的 HTML,我只需要 Tidy 用软制表符缩进我的代码。

目前它破坏了很多东西,而且格式也不完美。有人可以为我写一个 Tidy 配置来执行以下操作:

1 - 仅缩进,没有其他内容。

2 - 我不需要将某些标签推送到换行符上。例如: Tidy 是这样做的:

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

原始代码(或我需要的):

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

..所以如果我可以预先定义哪些标签要保持内联,那就太好了。

基本上,我想用 Tidy 复制 Dreamweaver 的 HTML 格式化功能,但上面提到的两件事非常重要。

我认为这是我当前(默认?)整洁的配置:

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(7

绝不服输 2024-08-11 09:52:17

Tidy 并不是真正按照您想要的方式来执行此操作。它不是一个通用的代码格式化库,它是一个 HTML 清理工具。来自主页

有几个人问 Tidy 是否
可以保留原来的布局。我
很抱歉,这将是
由于方式的原因很难支持
整洁已实施。整洁始于
从构建一个干净的解析树
源文件。解析树没有
包含有关的任何信息
原始布局。

我真的不认为有一个好的方法可以让它做你想做的事,但是你可以使用 完整的选项列表,看看哪些更接近您的理想。

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.

放手` 2024-08-11 09:52:17

尝试相当不同。它将美化您的代码,而不会对您的代码做出任何假设。您可以提交不完整的小代码片段,Pretty Diff 将输出带有缩进的小片段。

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

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

美人骨 2024-08-11 09:52:17

在 tiddy 配置文件中,将 indent 选项设置为 no。

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

In the tiddy config file, set indent option to no.

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

悲歌长辞 2024-08-11 09:52:17

我希望这对在此页面上绊倒的人有用:

如果您选择要格式化的文本(也称为重新缩进),TextMate 将仅对该选择应用特定操作。因此,如果您 CMD+A 您的文档,然后应用 Tidy(从 Bundles > HTML 菜单或使用 CTRL+SHIFT+H 快捷键)它将缩进选择内容,跳过在没有选择的情况下执行 Tidy 时发生的验证警报。这些警报有时可能是不必要的,因为我们经常处理页面片段(至少我这样做)。

I hope this to be useful to people stumbling on this page:

If you select the text that you wish to format (aka reindent), TextMate will apply specific actions only to that selection. So, if you CMD+A your document and then apply Tidy (either from the Bundles > HTML menu or with the CTRL+SHIFT+H shortcut) it will indent the selection, skipping alerts on validation which happen when you execute Tidy with no selection. These alerts can sometimes be unnecessary since we often work on page snippets (at least I do).

爱格式化 2024-08-11 09:52:17

--indent yes 更改为 --indent auto 对我有用。它不可配置,但似乎可以很好地处理大多数情况。

Changing --indent yes to --indent auto works for me. Its not configurable but seems to handle most cases well.

我不咬妳我踢妳 2024-08-11 09:52:17

所以,Nimbuz,您还提到“目前它破坏了很多东西”——您的意思是它引入了换行符或者它生成了无法正确显示的 HTML?因为后者在我身上发生得非常糟糕,如果你已经让它与特殊的配置一起工作,我很乐意看到它(尝试做你想做的同样的事情......只是格式化)。谢谢!

so, Nimbuz, you also mentioned "Currently it breaks a lot of things" -- you mean it introduces line breaks or it generates HTML that doesn't display properly? Because the latter is happening to me pretty badly, and if you've gotten that to work with a special config, i'd love to see it (trying to do the same thing you want... just formatting). thanks!

我乃一代侩神 2024-08-11 09:52:17

找出内联标签,现在可以使用了!

Figured out the inline-tags, works now!

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文