我有一个包含点(。)的标签,我希望haml保存:
Haml的:
%text
%text.resource
...
我希望Haml扩展到:
<text>
<text.resource>...
</text.resource>
<text>
但它一直在做:
<text>
<text class="resource">...
<text>
<text>
哈姆尔有“逃避”“阶级”扩张的简单方法吗?
答案 0 :(得分:0)
HAML用于生成各种形式的HTML,但您可以通过创造性来欺骗它来生成其他内容。把你想要的东西放进去:
<text>
<text.resource>...
</text.resource>
<text>
将起作用,因为如果HAML看到一行不以其中一个保留字符开头,它将按原样输出。你不能缩进,否则它会生气。
来自the docs:
请注意,HTML标记也会通过未经修改的方式传递。如果您有一些HTML,您不想转换为Haml,或者您要逐行转换文件,您可以按原样包含它。例如:
%p <div id="blah">Blah!</div>
编译为:
<p> <div id="blah">Blah!</div> </p>
你可以这样做:
<text>
= " <text.resource>..."
= " </text.resource>"
<text>
如果你坚持缩进:
>> <text>
>> <text.resource>...
>> </text.resource>
>> <text>
编辑:
OP说:
我遇到的问题是elypsis(...)意味着我必须在那里添加更多的haml代码(一堆xml标签,这将是“孩子们”,因此我需要“缩进”后面的行评论......
XML并不关心缩进;缩进是一种仅供人眼使用的美学。我更担心功能和语法上的正确性。如果你必须拥有“漂亮”的XML,那么考虑通过设置xml标志的xmllint
或tidy
来运行HAML输出。
或者,放弃HAML,因为你开始滥用它,并使用类似ERB和/或Erubis的东西,这是更自由的形式,更少关心语法,或通过{{1}老去学校生成XML }和print
语句。如果您坚持使用HAML并进行缩进,那么我建议您咨询HAML开发人员,看看他们是否有建议。可能有一个HAML过滤器可供使用,或者其他一些强制内联缩进级别的方法。
我的建议,作为一个长期以来一直在这里工作过很多次的人是:作为软件开发人员,我们可能会忘记实现功能的最终目标并转向一些牦牛剃须练习令人担忧关于没有完成任何真实的细节。除非它是一个规范,每个缩进空间都是神圣的,我更担心获得正确的XML并继续前进,然后返回它,看看它是否可以调整到完美。