我使用var generateCodeBlock = jade.compile('div !{text}', {pretty: true});
生成一些基于Jade的HTML
我想创建像这样的东西
<div>
var json = {
labelA: 'a',
labelB: 2
};
</div>
但是当我输入{text: 'var json = {\n labelA: 'a',\n labelB: 2\n };'}
时,它最终会创建<div class="setup"> var json = { labelA: 'a', labelB: 2 };</div>
。我也尝试在#{text}
中使用jade.compile
,但没有区别。
为什么玉平变我的变量输入?
更新: 我现在尝试使用
为模板创建单独的文件block codeBlock
div.codeBlock
for part in code
div(class="#{part.className}") !{part.text}
和jade.compileFile
,它仍在生成var json = { labelA: 'a', labelB: 2 };
答案 0 :(得分:3)
Jade不会忽略空格和换行符。如果您实际记录jade.compile($("#jadehi").html())(djson)
返回的内容,则会看到您在数据中添加的任何空格或换行符(如"Jade\n Test Page"
)仍然存在。
忽略这些字符的HTML(或更准确地说,浏览器解释HTML的方式)。正如这个问题所解释的那样:
Why does the browser renders a newline as space?
并且,正如那里所建议的那样,使用<pre>
元素可能对您有帮助。