Pugjs(Jade模板)- 删除块语句中的换行符

9
我在pug js模板中使用each语句时,无法去除元素之间的换行符。
我的代码如下。我希望在HTML呈现时li元素之间没有空格,因此我试图在它们之间使用注释。
mixin nav(links)
  ul.nav <!--
    each link in links
      |-->
      li(class=(section == link.key ? 'active' : null)): a(href=link.href)= link.label
      |<!--
    |-->

现在这个结果给出了这个结果:

<ul class="nav"><!---->
  <li class="active"><a href="/">Home</a></li><!---->
  <li><a href="/foo">Foo</a></li><!---->
  <li><a href="/bar">Bar</a></li><!---->
  <li><a href="/yada">Yada</a></li><!---->
</ul>

有没有一种好的方法告诉pug我不想在这些元素之间使用空格,或者这是语言的限制?我正在使用KeystoneJS,在开发环境中,它会告诉pug解释器对HTML进行美化。 我希望开发和生产中的产品保持一致(而不是编写在生产环境中被缩小的CSS解决方法)


Pug 将所有内容渲染在一行上,因此这可能是由 keystone.js 引起的。 - Graham
我投票关闭此问题,因为这是一个针对pug的增强请求,应该发布在pug github问题区域。 - Graham
2个回答

1
在Pug配置中有一个“pretty”属性。如果将其设置为true(默认为false),Pug会向生成的HTML添加空格。这可能是您问题的原因。 https://pugjs.org/api/reference.html

0

从模板和注释中删除|(管道)字符。如果仍然有换行符,则是Keystone.js在生成换行符。

删除|字符的原因是根据官方PugJS网站

您可以添加一个或多个空的管道线 - 管道后面跟着空格或什么都没有。这将在呈现的HTML中插入空格。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接