Pugで共通化をする方法

Pugで共通化をする方法

Pugで共通化を行うには、テンプレートの継承やパーシャル(部分テンプレート)の使用が一般的です。
以下に、基本的な共通化の方法を説明します。

1. テンプレートの継承

親テンプレートを作成し、共通部分を定義します。
その後、子テンプレートが親テンプレートを拡張して、特定のブロックに独自の内容を追加します。

親テンプレート (layout.pug)
doctype html
html
  head
    title My Website
    block head
  body
    header
      h1 My Website
    block content
    footer
      p © 2024 My Website
子テンプレート (index.pug)
extends layout

block content
  p Welcome to my website!

block head
  link(rel="stylesheet", href="/styles.css")

2. パーシャル(部分テンプレート)

共通化したい部分をパーシャルとして別のファイルに分け、必要な場所でインクルードします。

パーシャルテンプレート (header.pug)
header
  h1 My Website
  nav
    ul
      li: a(href='/') Home
      li: a(href='/about') About
      li: a(href='/contact') Contact
メインテンプレート (index.pug)
doctype html
html
  head
    title My Website
  body
    include header.pug
    p Welcome to my website!

3. 変数の使用

Pugでは変数を使って動的にデータを渡すことができます。
これにより、テンプレート間で共通のデータを扱うことができます。

親テンプレート (layout.pug)
doctype html
html
  head
    title #{title}
  body
    header
      h1 #{header}
    block content
    footer
      p © 2024 My Website
子テンプレート (index.pug)
extends layout

block vars
  - var title = "Home"
  - var header = "Welcome to My Website"

block content
  p This is the homepage.

これらの方法を組み合わせることで、Pugで効率的にテンプレートを共通化することができます。