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

セクションのスキーマ定義

Liquid セクションやブロックの設定スキーマを JSON で記述するための基本形式。スキーマタグ内に JSON オブジェクトを配置して、テーマカスタマイザーの UI を定義する。

用途
テーマセクション・ブロックを作成するときに、管理画面のカスタマイズ画面に表示する設定項目(テキスト入力、画像選択、色ピッカーなど)を定義するため。
設置場所
sections/*.liquid または blocks/*.liquid のファイル内、`</section>` や `</div>` の直前に `{% schema %} ... {% endschema %}` タグで囲んで JSON スキーマを記述する。Prettier 等のフォーマッターで自動整形される。
注意点
スキーマ内の JSON は有効な JSON 形式である必要があり、無効な JSON(引用符なしキーやコメント等)が含まれると整形時にエラーになる。空白制御タグ `{%-schema-%}` を使うと改行がトリミングされるため、ファイルサイズ削減時に使う。Prettier プラグインの indentSchema オプションで JSON のインデント幅を制御できるが、デフォルト(2スペース)で問題ない場合はそのままにしてよい。
タグ:schemajsonsectionblockcustomizer

コード

27 行 / liquid
<div>
{%schema%}
{
  "hello": "world"
}
{%endschema%}
{%-schema-%}
  {
    "hello": "world"
  }
{%-endschema-%}
</div>

it should not try to format invalid json, but should reindent
{% schema %}
{ "invalid":
  x0482 }
{% endschema %}

It should respect the indentSchema option
indentSchema: false
{%schema%}
{
  "hello": "world"
}
{%endschema%}

出典・ライセンス

License:
MIT

このコードは Shopify 著作の MIT ライセンスソースです。 原本の著作権は Shopify が保有します。日本語訳は 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