嵌入Jade包含变体

时间:2016-01-31 15:16:13

标签: pug

为了轻松创建常用UI组件的参考目录,我想从一系列标记片段(每个组件一个)生成一个静态页面:

h2 List Group
p as provided by Bootstrap
+component("list_group")

h2 Panel
p also provided by Bootstrap
+component("panel")

这应该扩展到包括三个版本的所述Jade文件:原始的,转义的HTML和未转义的HTML。

h3 Markup (HTML)
pre.lang-html
    include:escaped components/list_group

h3 Markup (Jade)
pre.lang-jade
    include:verbatim components/list_group

h3 Output
include components/list_group
<h3>Markup (HTML)</h3>
<pre class="lang-html">
    &lt;ul class="list-group"&gt;
        &lt;li class="list-group-item"&gt;foo&lt;/li&gt;
        &lt;li class="list-group-item"&gt;bar&lt;/li&gt;
    &lt;/ul&gt;
</pre>

<h3>Markup (Jade)</h3>
<pre class="lang-jade">
    ul.list-group
        li.list-group-item foo
        li.list-group-item bar
</pre>

<h3>Output</h3>
<ul class="list-group">
    <li class="list-group-item">foo</li>
    <li class="list-group-item">bar</li>
</ul>

但是,据我所知,Jade不支持动态/参数化包含*,因此它并不像预期的那么简单。

我是否可以(ab)使用自定义过滤器? (看起来我还是要编写escaped过滤器。)任何提示都将不胜感激。

*虽然有some hints v2.0实际上支持这一点,但我不知道如何

1 个答案:

答案 0 :(得分:0)

您可以使用类似

的内容

main.jade

- var condition=false
if condition
  include ./sub.jade
else
  include ./sub2.jade

sub.jade

p Hello World

sub2.jade

p 42

条件=真

kluth@pc:~/$ jade main.jade && cat main.html
rendered main.html
<p>Hello World</p>

条件=假

kluth@pc:~/$ jade main.jade && cat main.html
rendered main.html
<p>42</p>

使用jade 1.11.0进行测试