Liquid Snippets by ALSEL
🏗️ テーマ基盤中級

テーマレイアウト(HTML基盤)

Shopify ストアの全ページの HTML 基盤となるレイアウトファイル。言語設定、メタタグ、favicon、CSS/JS バンドルの読み込みをまとめ、ヘッダー・メインコンテンツ・フッターのセクションを統合する。

用途
すべてのテーマに必須の共通 HTML フレーム。ストア全体のメタ情報、アセット読み込み、ページ構造を一元管理するときに使う。
設置場所
shopify/layout/theme.liquid として配置する。Shopify テーマエディターにより自動的に読み込まれ、すべてのページテンプレートがこのレイアウト内でレンダリングされる。
注意点
favicon は設定パネルで画像をアップロードしておかないと表示されないため、Settings JSON の favicon キーを確認する。`request.page_type == 'captcha'` の条件は reCAPTCHA ページでアプリコンテナ (`id='app'`) が干渉しないようにするもので、削除するとプラグイン互換性が低下することがある。preload タグはリソース読み込みを最適化するが、ブラウザキャッシュ挙動によって効果が変わるため、サイト速度計測ツール(Lighthouse など)で実測検証する。
タグ:layouthtmlmeta-tagsasset-loadingsection

コード

42 行 / liquid
<!doctype html>
<html lang="{{ request.locale.iso_code }}">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width,initial-scale=1">

    <link rel="preconnect" href="https://cdn.shopify.com" crossorigin>
    <link rel="preload" href="{{ 'bundle.css' | asset_url }}" as="style">
    <link rel="preload" href="{{ 'bundle.js' | asset_url }}" as="script">

    {% if settings.favicon %}
      <link rel="shortcut icon" href="{{ settings.favicon | img_url: '32x32' }}" type="image/png">
    {% endif %}

    <title>{{ page_title | escape }}</title>

    {% if page_description %}
      <meta name="description" content="{{ page_description | escape }}">
    {% endif %}

    {{ 'bundle.css' | asset_url | stylesheet_tag }}

    <!-- header hook for Shopify plugins -->
    {{ content_for_header }}
  </head>

  <body>
    <div {% unless request.page_type == 'captcha' %}id="app"{% endunless %}>
      {% section 'header' %}

      <main id="main" role="main">
        {{ content_for_layout }}
      </main>

      {% section 'footer' %}
    </div>

    <!-- webpack bundle -->
    <script src="{{ 'bundle.js' | asset_url }}" defer="defer"></script>
  </body>
</html>

出典・ライセンス

License:
MIT

このコードは uicrooks 著作の MIT ライセンスソースです。 原本の著作権は uicrooks が保有します。日本語訳は ALSEL によるものです。

関連項目

🏗️ テーマ基盤中級

セクションスキーマのカスタムブロック定義

セクションの schema ブロック内でカスタムブロックタイプを定義する方法を示すサンプル。@theme と _private というプレフィックスで異なるブロック種別を宣言する。

📁 theme-tools·MIT·7
🏗️ テーマ基盤初級

セクション呼び出しのフォーマット

Liquid の section タグを複数行に記述する際の正しいフォーマット例。タグ名を改行で分割しても正しく認識される書き方を示す。

📁 theme-tools·MIT·7
🏗️ テーマ基盤初級

レイアウトテンプレートの指定

Liquid の `layout` タグを使い、テーマのレイアウトファイルを指定する構文。複数のレイアウト候補と whitespace 制御(ダッシュ記号)の使い方を示す。

📁 theme-tools·MIT·8
🏗️ テーマ基盤上級

Liquid フォーマッター互換のセクション表記

Prettier Liquid プラグインのテストケースで、セクションタグの様々な書式を検証する。異なる間隔・改行・ホワイトスペーストリミングの組み合わせでもセクション名が崩れないことを確認する。

📁 theme-tools·MIT·9
🏗️ テーマ基盤初級

基本的なHTMLレイアウト

Prettier Liquid プラグインのテスト用に作られた最小限の HTML テンプレート。DOCTYPE から body タグまでの基本的なドキュメント構造を示す。

📁 theme-tools·MIT·10
🏗️ テーマ基盤上級

layout タグのフォーマット

Liquid の layout タグの書式をコード品質ツール(Prettier)でフォーマットするテストケース。スペースや改行位置の違いを正規化し、レイアウト名が壊れないことを検証する。

📁 theme-tools·MIT·10