如何强制整理不改变HTML?

时间:2014-06-22 08:35:20

标签: html tidy htmltidy

我使用以下命令格式化HTML:

tidy -xml --merge-divs no --wrap 0 --force-output yes --indent auto --indent-spaces 2 --quiet yes

它可以正常工作,除非它自动关闭这样的标签:

<br> -> <br></br>
<br><br> -> <br><br></br></br>
<div><input><span></span></div> -> <div><input><span></span></input></div>

正如你所看到的那样,它试图关闭每个标签 - 我如何能够不要这样做,并保持标签不变或至少关闭它们#34;内联&#34;像这样:

<br><br> -> <br/><br/>

我最想要的是使用此命令:

tidy -asxhtml --hide-endtags yes --doctype omit --merge-divs no --wrap 0 --force-output yes --indent auto --indent-spaces 2 --quiet yes

但是从这个HTML:

<div><input type="text"><span>abc</span></div><br><br>

它产生了这个:

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <meta name="generator" content="HTML Tidy for Mac OS X (vers 31 October 2006 - Apple Inc. build 15.12), see www.w3.org" />

  <title></title>
</head>

<body>
  <div>
    <input type="text" /><span>abc</span>
  </div><br />
  <br />
</body>
</html>
  1. 我不希望自动添加html,meta,body等标签
  2. 我不希望br和输入标签自动关闭
  3. 为什么span与输入在同一行?
  4. 为什么br与</div>在同一行?

  5. 我发现选项show-body-only不输出html,body等标签。 但是输出仍然是这样的:

    <div>
      <input type="text" /><span>abc</span>
    </div><br />
    <br />
    
    1. 我不希望输入/ br标签自动关闭
    2. 我不希望span与输入在同一行
    3. 我不希望br与div close tag
    4. 在同一行

1 个答案:

答案 0 :(得分:2)

你传递了错误的旗帜。引用man tidy

-xml   specify the input is well formed XML (input-xml: yes)

但你可能想要的是

-asxml, -asxhtml
         convert HTML to well formed XHTML (output-xhtml: yes)