やってみる

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

HTMLテンプレートエンジンpugでextendsしてみた

単に別ファイルに分けるだけ。

成果物

GitHubpug.extends.201705190905

前回まで

ソースコード

doctype html
html(lang="ja")
    body
        block contents
extends layout_page.pug

block contents
    h1 page1の見出し

extends書式

呼び出し側

block ブロック名

呼び出される側

block ブロック名
    ブロックの内容

呼出側の「ブロック名」箇所を、被呼出側の「ブロックの内容」に置き換える。

includeとextendsの違い

extendsとincludeは何が違うのか。いまいち理解できていない。includeがライブラリの呼出なら、extendsはフレームワークの利用的イメージ。どちらも「テキストの部分置換をする」という点に置いては同一。

ただ、extendsではblockのように置換したいテキスト部分に名前をつける必要があるらしい。includeはファイル名以外は名付けの必要が無いため楽そう。

includeとextendsの使い分け

どう使い分けていいのやら。

キーワード 意味 用途
include 集合と部分集合 小さい部品を集めて1つに組み立てる
extends 継承と派生 基本形に継ぎ足していく

いつ使うか

includeにしろextendsにしろ、何段階にも分解することが良いことなのか。どの程度の粒度にすべきなのか。

所感

includeと同様、単に別ファイルに分けるだけ。複数ファイルでタグが重複するが、値が違うようなテンプレートとしては使えない。