玉器中的多行非编译属性

Multiline non-compiled attribute in jade


我试过这样做:

body(
  |{% case page.url %}
  | {% when '/' %}
  |    class="hellopage"
  | {% when page.url contains '/gallery/' %}
  |    class="gallerypage"
  |{% endcase %}
  )

这 {% .. %} 实际上是 Liquid 的东西。
所以,它没有编译。如何在标签中写入多行属性?

编辑:

问题是 Pug 编译器不喜欢属性中的 {% 字符序列。在您的特定情况下,work-around 将转义换行符并将 Liquid 逻辑也放入属性值字符串中:

body(class="\
   {% case page.url %}\
    {% when '/' %}\
       hellopage\
    {% when page.url contains '/gallery/' %}\
       gallerypage\
   {% endcase %}"
  )

旧答案:

我认为您不需要管道字符 (|) 来执行此操作。 Pug 的多行属性 are supported。这样的东西应该足够了:

body(
   {% case page.url %}
    {% when '/' %}
       class="hellopage"
    {% when page.url contains '/gallery/' %}
       class="gallerypage"
   {% endcase %}
  )

应该可以,但还没有测试过(由于缺少 Liquid+Pug 测试环境)。