やってみる

アウトプットすべく己を導くためのブログ。その試行錯誤すらたれ流す。

zolaにおけるinclude, import, extendsのちがい

 どれも外部ファイルと結合する機能である。それらの違いはどこにあるのかまとめた。

成果物

情報源

include, import, extendsのちがい

役割

機能 対象 役割
include 任意テンプレート 外部テキストを指定箇所へ挿入する
import 任意マクロ 外部テキストを指定箇所へ挿入する(引数を渡せる)
extends 任意テンプレート 外部テキストへ一部分の実装をゆだねる

記法

機能 定義 取込 呼出
include `` {% include "パス" %} -
import {% macro 名M(名A=値, ...) %}
{% endmacro 名M %}
{% import "パス" as 名N %} {{ 名N::名M(名A=値, ...)
extends {% block 名前 %}
{% endblock 名前 %}
{% extends "パス" %} {% block 名前 %}<br>任意HTMLタグ<br>{% endblock 名前 %}`

ルール/罠

 詳細は情報源を参照。

疑問

 スコープはどうなっているのか。{% set %}した変数は、外部ファイル同士で参照できるのか?

機能 定義元 呼出元 是非
include set定義 set参照
include set参照 set定義
import set定義 set参照
import set参照 set定義
extends set定義 set参照
extends set参照 set定義

所感

 

対象環境

$ uname -a
Linux raspberrypi 5.4.83-v7l+ #1379 SMP Mon Dec 14 13:11:54 GMT 2020 armv7l GNU/Linux