用Jade渲染的HTML值中多余的空格
每当我用Jade写HTML时,我都会在每个元素的值后面添加额外的空格。
例如,我将在我的Jade模板中有这样一行:
label(for="keyword") Keyword
呈现时,源代码将如下所示:
<label for="keyword_1">Keyword </label>
遇到一些额外的空白与我的CSS混乱的问题。 另外,它只是看起来不整齐:)
任何人都知道我可以防止它被插入?
检查底部的更新
我假设你使用express
– 检查你的应用程序设置。
app.set('view options', { pretty: false })
如果你有pretty
模式( pretty: true
) jade
呈现,那么它会安排你生成的源(标签)嵌套注入。 打开closures打印应该可以解决你的问题(尽pipe确保没有尾随空格,正如@alessioalex指出的那样)。
如果你有一个理由要求你输出漂亮的格式(在我的情况下,客户端规范),那么你可以尝试一些其他的东西。 我遇到了与textarea
标签类似的问题; 令人沮丧,因为空白实际上被注入到表单的内容中。 我解决这个问题的方法是用结束标记embedded文字html:
<textarea name="someField"></textarea>
文档可以给你更多的细节(在这种情况下searchhtml
)。 在github上有一个开放的问题#341 ,它提供了一个类似于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
对待.
在标签上的后缀作为标签将包含文本块(仅)的指示符,然后不提供文本块,所以它默认为''
,一个空string。