HTMLテンプレートエンジンpugでextendsしてみた
単に別ファイルに分けるだけ。
成果物
前回まで
- http://ytyaru.hatenablog.com/entry/2018/03/26/000000
- http://ytyaru.hatenablog.com/entry/2018/03/27/000000
- http://ytyaru.hatenablog.com/entry/2018/03/28/000000
- http://ytyaru.hatenablog.com/entry/2018/03/29/000000
- http://ytyaru.hatenablog.com/entry/2018/03/30/000000
ソースコード
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と同様、単に別ファイルに分けるだけ。複数ファイルでタグが重複するが、値が違うようなテンプレートとしては使えない。