如何根据变量渲染块?哈巴狗 (翡翠)
How render a block depending on a variable? PUG (JADE)
第一次使用哈巴狗。
情况是所有页面都使用相同的页眉和页脚。
主要-layout.pug:
<header>
h1 Some text
h2 Second text
</header>
<footer>
h3 Third text
</footer>
但是在一个页面上,我需要更改一半的页眉,其余的保持不变:
<header>
h1 Some text
div
span Span text
</header>
<footer>
h3 Third text
</footer>
我该怎么做?
最后一页有一个名字map.pug
并且只有主页面继承。
map.pug:
extends ../layouts/main-layout
将它分成几个文件,例如带有版本后缀。一个 parent 文件 (header.pug) 指向几个孩子并由传递的变量决定或在没有给出任何内容时采用默认值 (header-v1.pug)。
|-- 部分
|-- |-- footer.pug
|-- |-- 页脚-v1.pug
|-- |-- 页脚-v2.pug
|-- |-- header.pug
|-- |-- header-v1.pug
|-- |-- header-v2.pug
|-- |-- header-v3.pug
|-- default.pug
|-- main-layout.哈巴狗
|-- map.pug
main-layout.哈巴狗
//- doctype, meta, etc ...
include partials/header
block content
include partials/footer-v1
header.pug
if headerVersion === "v2"
include header-v2
else if headerVersion === "v3"
include header-v3
else
include header-v1
header-v1.pug
header
h1 Some text
h2 Second text
header-v2.pug
header
h1 Some text
div
span Span text
渲染调用可以传递headerVersion
变量:
return res.render('default.pug', {
// nothing specifed: v1 is taken as default
});
return res.render('map.pug', {
headerVersion: 'v2'
});
第一次使用哈巴狗。
情况是所有页面都使用相同的页眉和页脚。
主要-layout.pug:
<header>
h1 Some text
h2 Second text
</header>
<footer>
h3 Third text
</footer>
但是在一个页面上,我需要更改一半的页眉,其余的保持不变:
<header>
h1 Some text
div
span Span text
</header>
<footer>
h3 Third text
</footer>
我该怎么做?
最后一页有一个名字map.pug
并且只有主页面继承。
map.pug:
extends ../layouts/main-layout
将它分成几个文件,例如带有版本后缀。一个 parent 文件 (header.pug) 指向几个孩子并由传递的变量决定或在没有给出任何内容时采用默认值 (header-v1.pug)。
|-- 部分
|-- |-- footer.pug
|-- |-- 页脚-v1.pug
|-- |-- 页脚-v2.pug
|-- |-- header.pug
|-- |-- header-v1.pug
|-- |-- header-v2.pug
|-- |-- header-v3.pug
|-- default.pug
|-- main-layout.哈巴狗
|-- map.pug
main-layout.哈巴狗
//- doctype, meta, etc ...
include partials/header
block content
include partials/footer-v1
header.pug
if headerVersion === "v2"
include header-v2
else if headerVersion === "v3"
include header-v3
else
include header-v1
header-v1.pug
header
h1 Some text
h2 Second text
header-v2.pug
header
h1 Some text
div
span Span text
渲染调用可以传递headerVersion
变量:
return res.render('default.pug', {
// nothing specifed: v1 is taken as default
});
return res.render('map.pug', {
headerVersion: 'v2'
});