Nunjucksの機能を使ってテンプレートを簡単に作れます。
これを利用して、レイアウト別のテンプレートを用意しておくと便利です。
templates/
├── _layout.njk
└── column-layout.njk
extend, block の二つを使う。
_layout.njk
<div class="wrapper">
<div class="column-layout">
<div class="main-column">
{% block main %}
main
{% endblock %}
</div>
<div class="sub-column">
{% block sub %}
sub
{% endblock %}
</div>
</div>
</div>
column-layout.njk
{% extends "@layout" %}
{% block main %}
Mainを上書き
{% endblock %}
{% block sub %}
subを上書き
{% endblock %}
render/
├── render.config.yml
└── render.njk
render.config.yml
title: rendertest
context:
contents:
- component: button
config:
- text: buttttttton
- component: form
render.njk
<section>
{% for content in contents %}
{% render "@" + content.component, content.config%}
{% endfor %}
</section>