用Jade渲染的HTML值中多余的空格

每当我用Jade写HTML时,我都会在每个元素的值后面添加额外的空格。

例如,我将在我的Jade模板中有这样一行:

label(for="keyword") Keyword 

呈现时,源代码将如下所示:

 <label for="keyword_1">Keyword </label> 

遇到一些额外的空白与我的CSS混乱的问题。 另外,它只是看起来不整齐:)

任何人都知道我可以防止它被插入?

       

网上收集的解决方案 "用Jade渲染的HTML值中多余的空格"

检查底部的更新

我假设你使用express – 检查你的应用程序设置。

 app.set('view options', { pretty: false }) 

如果你有pretty模式( pretty: truejade呈现,那么它会安排你生成的源(标签)嵌套注入。 打开closures打印应该可以解决你的问题(尽pipe确保没有尾随空格,正如@alessioalex指出的那样)。

如果你有一个理由要求你输出漂亮的格式(在我的情况下,客户端规范),那么你可以尝试一些其他的东西。 我遇到了与textarea标签类似的问题; 令人沮丧,因为空白实际上被注入到表单的内容中。 我解决这个问题的方法是用结束标记embedded文字html:

 <textarea name="someField"></textarea> 

文档可以给你更多的细节(在这种情况下searchhtml )。 在github上有一个开放的问题#341 ,它提供了一个类似于scalate的方法 ,但是目前它不能用于jade0.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。