我必须做一些小网站,用静态内容渲染几页。
这些网页基于base.html
模板,此模板有content
块。
页面可能有(或没有)aside
元素(总是相同)。
到目前为止,我可以这样做:
page.html:
{% extends "base.html" %}
{% block content %}
{% include "page-content.html" %}
{% endblock %}
page-content.html:
{% extends "content-with[out]-aside.html" %}
{% block content %}
foo
{% endblock %}
content-with-aside.html:
<div>
<div>
{% block content %}
{% endblock %}
</div>
<aside>
aside
<aside>
</div>
content-without-aside.html:
<div>
<div>
{% block content %}
{% endblock %}
</div>
</div>
但是,假设使用一个没有用处的模板,但是定义页面是否有旁边。
我还可以定义base-with-aside.html
和base-without-aside.html
模板。但我可以这样做吗?
page.html:
{% extends "base.html" %}
{% block content %}
{% expandblock "content-with[out]-aside.html" %}
{% block content %}
foo
{% endblock %}
{% endexpandblock %}
{% endblock %}
在Jinja或许?
在最坏的情况下,我可以定义一个自定义模板标签,但我想知道它已经有这样的功能。