今回は条件によってheaderの読み込む内容を変更する方法を書きます。
それでは、解説。
○index1.pug
extends _layout.pug
block _addMeta
  //-meta
  title デモ
  meta(name="description", content="")
  meta(name="keywords", content="")
  meta(name="viewport", content="width=device-width, initial-scale=1.0")
  link(rel="stylesheet" href="css/index.css")
block var
  - var contents = `header01`;
block mainContents
  main(ontouchstart="")
    .backgroundBox
      .Container
        p pugファイルの使い方
○index2.pug
extends _layout.pug
block _addMeta
  //-meta
  title デモ
  meta(name="description", content="")
  meta(name="keywords", content="")
  meta(name="viewport", content="width=device-width, initial-scale=1.0")
  link(rel="stylesheet" href="css/index.css")
block var
  - var contents = `header02`;
block mainContents
  main(ontouchstart="")
    .backgroundBox
      .Container
        p pugファイルの使い方
<ポイント>
・index1.pugとindex2.pugファイルの違いはblock varの塊部分です。
それぞれ、contentsという変数にheader01とheader02を定義しています。
・pugが実行されると、extends _layout.pugによって、 _layout.pugが適用されます。
○_layout.pug
block var
doctype html
html(lang='ja')
  head
    meta(charset="utf-8")
    include _meta
    block _addMeta
  body
    include _header
    block mainContents
    include _footer
<ポイント>
・_layout.pugが実行されると、blockとincludeが適用されます。
○_header.pug
//header
header
  p テストだよ
  if contents == `header01`
    p header01を読み込んだよ
  if contents == `header02`
    p header02を読み込んだよ
<ポイント>
・_headerが読み込まれると、ifによる条件によって、読み込み部分が変わります。
・index1.pugはcontents = header01を定義していたので、header01が読み込まれます。
・index2.pugはcontents = header02を定義していたので、header02が読み込まれます。
このように、変数を定義すれば開発がサクサク進むと思います。
紹介していないその他のpugファイルは過去記事をご覧ください。
今回は以上です。
変数の詳しい内容に関しては下記サイトをご覧ください。個人的にわかりやすいと思いました。
https://necosystem.hirokihomma.com/archives/121/