...
넌적스 super() - 템플릿 상속
템플릿에서 {% block %}과 {% endblock %} 사이에 내용이 있을 경우, {% extends %}가 실행되면 기존 내용은 사라집니다.
만약 기존 내용을 유지하고, 이어서 내용을 삽입하고 싶을 때는, 템플릿을 불러오는 쪽에 super()를 삽입하면 됩니다.
그리고 한 파일에, 여러개의 {% block %}을 지정해 줄 수 있습니다. 다만 블록 이름에 주의하면 됩니다.
layout.njk
{% block slide-script %}
{% endblock %}
</head>
<body>
<div class=“wrap”>
{% block slide %}
This is a test!
{% endblock %}
</div>
</body>
slide.njk
{% extends “./layout.njk” %}
{% block slide-script %}
{% include “./parts/script-slideshow.njk” %} <!-- block에 include를 같이 사용 -->
{% endblock %}
{% block slide %}
{{ super() }} <!-- 기존 내용 유지용 -->
<div id=slide_show_bg”>
{% include “../parts/slideshow.njk” %}
</div>
{% endblock %}
결과물
This is a test!
block slide의 내용
super() 미사용시,
아래와 같이 기존 내용 "This is a test!"은 block slide의 내용으로 대체되게 됩니다.
block slide의 내용
인용한 부분에 있어 만일 누락된 출처가 있다면 반드시 알려주시면 감사하겠습니다
이 글이 좋으셨다면 구독 & 좋아요
여러분의 구독과 좋아요는
저자에게 큰 힘이 됩니다.