为什么玉忽视\ n和空白?

我使用var generateCodeBlock = jade.compile('div !{text}', {pretty: true});生成了一些基于Jade的HTML var generateCodeBlock = jade.compile('div !{text}', {pretty: true}); 我想创造这样的东西

 <div> var json = { labelA: 'a', labelB: 2 }; </div> 

但是当我input{text: 'var json = {\n labelA: 'a',\n labelB: 2\n };'}结束创build<div class="setup"> var json = { labelA: 'a', labelB: 2 };</div> 。 我也尝试在jade.compile使用#{text} ,但没有任何区别。 为什么玉石我的variablesinput?

JSFiddle示例

更新:我现在已经尝试用模板创build一个单独的文件

 block codeBlock div.codeBlock for part in code div(class="#{part.className}") !{part.text} 

jade.compileFile ,它仍然在生产var json = { labelA: 'a', labelB: 2 };

Jade不会忽略空格和换行符。 如果你真的logging了jade.compile($("#jadehi").html())(djson)返回结果,你会发现你在数据中放入的任何空格或换行符(比如"Jade\n Test Page" )仍然在那里。

这是HTML(或更准确地说,浏览器如何解释HTML)忽略这些字符。 正如在这个问题所解释的:

为什么浏览器渲染一个换行符作为空间?

而且,正如那里所build议的那样,也许使用一个<pre>元素将会帮助你。