Clipkit サイト構築・改修ガイド
CMS組込を行うマークアップエンジニア向けClipkit で WEB サイトの構築、および Clipkit で構築されたサイトの改修を行うためのガイドです。
基本的なことは『1. Clipkit の仕組みとテーマ開発』に記載していますので初めての方はご一読ください。
その後の『2. Liquid リファレンス』『3. サンプルコード』『4. その他ノウハウ』『5. Clipkit管理画面の機能』に詳細解説へのリンク集を記載しました。
1. Clipkitの仕組みとテーマ開発
テーマ
一つのテーマは WEB サイトのデザインに必要なテンプレート、画像ファイル、CSSやJavaScriptのファイル等から構成されます。
基本的には一つのテーマを作成して適用することで WEB サイトの構築が完成しますが、複数のテーマを作成して一部のページに適用することも可能です。
例えば、LP のページはまったく別なデザインにしたいときに便利です。
テンプレート
HTML とテンプレートタグを記述するための機能で、Clipkit のサイト管理画面上で編集を行うことができます。
編集後保存をすることで WEB サイトに即時反映されますので、公開中のサイトを改修するときはテスト環境で検証してから本番環境へ反映することを想定しています。
尚、変更履歴が記録されるようになっていますのでご安心ください。
既定テンプレート
デフォルトで備わっているテンプレートです。
全体レイアウト
すべてのページに適用される基本となるテンプレートです。このテンプレートに html タグ、head 及び body タグの要素を記述しておくことを想定しています。各ページの要素は {{ content }} と記述した箇所に展開されます。
尚、LP のような 1 ページで完結するデザインを作成したい場合はすべての要素を全体レイアウトに記述するだけで完成します。この場合は {{ content }} の記述は不要です。
トップページ
トップページURLに適用されるテンプレートです。全体レイアウトに記述された {{ content }} に展開されます。デフォルトで有効なオブジェクトは site です。
カテゴリー記事一覧ページ
各カテゴリーURLに適用されるテンプレートです。全体レイアウトに記述された {{ content }} に展開されます。デフォルトで有効なオブジェクトは site、category です。
記事詳細ページ
各記事URLに適用されるテンプレートです。全体レイアウトに記述された {{ content }} に展開されます。デフォルトで有効なオブジェクトは site、article です。
尚、Clipkitの特徴として記事は複数のアイテム(見出し、テキスト、画像等)によって形成されていますので、すべてのアイテムをレンダリングする必要があります。
それにはテンプレートに以下のように記述します。item.render でアイテムのデフォルトHTMLが展開されます。
{% assign items = article.items %}
{% for item in items %}
{{ item.render }}
{% endfor %}
但し、実際にはデフォルトHTMLではなく独自のHTMLを展開したい場合がほとんどですので、詳しくは後述の「記事アイテムテンプレート」セクションに記載します。
記事詳細ページ(AMP)
各記事のAMP URLに適用されるテンプレートです。全体レイアウトは利用されませんので、AMPを有効にした場合はすべての要素を記述してください。
タグ記事一覧ページ
各タグURL に適用されるテンプレートです。全体レイアウトに記述された {{ content }} に展開されます。デフォルトで有効なオブジェクトは site、tags です。
ライター記事一覧ページ
各ライター(各ユーザー)記事一覧 URL に適用されるテンプレートです。全体レイアウトに記述された {{ content }} に展開されます。デフォルトで有効なオブジェクトは site、user です。
404 ページ
存在しない URL へアクセスしたときに表示されるテンプレートです。全体レイアウトに記述された {{ content }} に展開されます。デフォルトで有効なオブジェクトは site です。
(スマホ向け)ページ
既定テンプレートに「(スマホ向け)」と表記のあるテンプレートが存在します。これはモバイル端末とそれ以外の端末で個別にデザインを適用するダイナミックサービングを実現するためのテンプレートです。
テーマの設定で「レスポンシブデザイン」を無効にした場合に利用できるようになります。
記事アイテムテンプレート
ここでは例として見出し用の記事アイテムを紹介します。記事アイテムでは入力された値に応じて出力するHTMLを切り替えることができます。
下記の例では、記事アイテムのタグ設定値 item.tag を参照して見出しレベルを切り替えています。
item.tag が「h3」の場合は <h3>、「h4」の場合は <h4>、それ以外の場合は <h2> を出力します。
見出しテキストにはタイトル項目 item.title を利用しています。
<div class="item-heading">
{% case item.tag %}
{% when 'h3' %}
<div class="item-heading__h3">
<h3>{{ item.title | newline_to_br }}</h3>
</div>
{% when 'h4' %}
<div class="item-heading__h4">
<h4>{{ item.title | newline_to_br }}</h4>
</div>
{% else %}
<div class="item-heading__h2">
<h2>{{ item.title | newline_to_br }}</h2>
</div>
{% endcase %}
</div>
このように記事アイテムテンプレートでは、記事アイテムの各項目の値を利用して出力するHTMLやデザインを動的に変更できます。
パーシャルテンプレート
各ページで共通して表示するセクションの要素を記述するためのテンプレートです。
ヘッダー・フッター・グローバルナビ、サイドバー、記事カード、パンくず、ページネーション等です。
これにより同じマークアップを複数のページに繰り返しコーディングを行うといった作業が軽減でき、サイト改修などのメンテナンス性もよくなります。
パーシャルテンプレートを適用したい箇所に {% render "パーシャル名" %} を記述することで展開されます。
詳細な記述方法は Liquid リファレンスの render タグを参照してください。
ファイル
テーマに紐づく CSS、JavaScript、画像、フォントなど、サイトのデザインを形成するための静的アセットファイルを格納する公開ストレージです。
アップロードしたファイルはテンプレートにfileタグを記述して利用します。
(例)originalという名称のテーマの領域にアップロードしたファイルcss/style.cssをheadタグ内で読み込む場合<link rel="stylesheet" media="screen" href="{% file '/theme/original/css/style.css' %}">
robots.txtなどのテーマに紐付かないファイルは領域「すべて」にアップロードすればサイトURL直下でアクセスできます。https://example.com/robots.txt
2. Liquid リファレンス
3. サンプルコード
ページを構成する基本的なものと目的別のサンプルコードを記載しました。
4. その他ノウハウ
通常のテンプレート編集だけでは足りないときに見る記事です。
5. Clipkit管理画面の機能
フロントエンドの出力に影響する、管理画面側の設定項目と外部データ連携の仕様です。入稿フローや、RSSを用いた他メディアとの記事同期方法についてまとめています。