如何让HTML Tidy在闭合标签前不加换行符?

19

HTML Tidy 让人很气愤的一点是在闭合标签之前会加上一个换行符。例如:

<p>Some text</p>

变成

<p>Some text
</p>
我如何告诉Tidy保持闭合标签与内容结尾在同一行?顺便说一句,我是通过Notepad++运行Tidy的,不知道这是否有任何影响。
3个回答

16

确保将vertical-space设置为no。经过长时间的挣扎,我发现此开关唯一的作用是在您不希望的地方添加换行符,从而破坏您已经相当好格式化的HTML。

以下是我用于最小侵入式整理(不添加文档类型/头标签等)的命令:

tidy -mqi --doctype omit --show-body-only true --show-warnings no --vertical-space no --wrap 0


1
已点赞,但我觉得应该向读者添加一个警告-m选项会导致tidy直接在原文件上进行修改(即覆盖原文件)。除非你有备份或者愿意让现有文件被覆盖,否则请不要使用该选项。 - user82216

1

嗯,我在Windows上看不到它。

我正在使用Ruby的Tidy。

   @tidy.options.output_xhtml = true
   @tidy.options.show_body_only = true
   @tidy.clean('<p>Some text</p>')

我也在Ubuntu中运行了整洁脚本(tidy -m test.htm),但没有看到那个问题。 您可以使用以下选项控制间距: http://tidy.sourceforge.net/docs/quickref.html#PrettyPrintHeader


我之前看过那些选项,但似乎都不能满足我的需求。顺便说一下,我是通过Notepad++运行TIDY的,不知道这是否有所不同。 - markvgti
不知道如何在NotePad++中实现,但“wrap=160”选项可能有所帮助。但是你看到的问题可能与NotePad++有关。 - surajz

-9

在 PHP 中,您可以使用:

$buffer = preg_replace('/\n<\//smUi','</',$buffer);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接