我有一个haml文件,其中包含以下内容:
#test-zone
%p.test-class
%p
= "The test works!"
我期待以下输出:
<div id='test-zone'>
<p class='test-class'>
<p>The test works!</p>
</p>
</div>
但我所看到的是:
<div id='test-zone'>
<p class='test-class'></p>
<p>The test works!</p>
<p></p>
</div>
我很困惑为什么
标签会自行关闭。我也不知道这个额外的
标签是怎么回事。我没有太多haml的经验,我也无法找到解决这个问题的方法。您需要我提供的任何其他信息,我很乐意提供。
答案 0 :(得分:3)
Haml本身正在产生你期望的输出:
<div id='test-zone'>
<p class='test-class'>
<p>
The test works!
</p>
</p>
</div>
但是,这是无效的HTML,<p>
不允许在另一个<p>
内。您可能正在查看浏览器的检查器窗口,其中显示了“已更正”的标记。如果直接查看源代码,您将看到预期的(无效的)代码。
修复只是为了确保您使用有效的HTML,或许将test-class
段改为div。