每次我在Jade中编写HTML时,我都会在每个元素的值之后添加额外的空格。
例如,我的Jade模板中会有这样的一行:
label(for="keyword") Keyword
当渲染时,源将如下所示:
<label for="keyword_1">Keyword
</label>
使用我的CSS弄乱了额外的空白问题。另外,它看起来并不整洁:)
任何人都知道如何阻止它被插入?
答案 0 :(得分:11)
检查底部的更新
我假设您正在使用express
- 请检查您的应用设置。
app.set('view options', { pretty: false })
如果jade
模式(pretty
)进行pretty: true
渲染,则会使用嵌套缩进来排列生成的源(标记)。关闭漂亮的打印应解决您的问题(但请确保您没有尾随空格,如@alessioalex所指出的那样)。
如果您有理由要求您输出漂亮的格式(客户端规范,在我的情况下),那么您可以尝试其他一些事情。 textarea
标签出现类似问题;令人沮丧的是因为空格实际上被注入到表单的内容中。我解决这个问题的方法是嵌入带有结束标记的文字html:
<textarea name="someField"></textarea>
docs可以为您提供更多详细信息(在这种情况下搜索html
)。 github上有一个开放的issue #341,它建议使用类似this one for scalate的方法,但它目前不适用于jade
(版本0.19.0
)。
HTH
<强>更新强>
好的 - 微妙而酷......有一种更好的方法来保持pretty: true
的性感输出并避免在标签内部间隔(我的textarea
示例)...我只是尝试追加标签末尾的.
(请参阅代码), Just Worked™: - )
form(name='frmname', method='POST')
textarea(name='someField').
渲染:
<form name="frmname" method="POST">
<textarea name="someField"></textarea>
</form>
美容!
为什么这样做?因为jade
将标记上的.
后缀视为标记将包含文本块(仅)的指示符,然后不提供任何文本块,因此默认为''
,一个空字符串。