Grav-theme-tutorial
Grav-テーマチュートリアル
この章では、コンセプトを理解するためにGravテーマを作成しましょう。
反物質
Gravベースパッケージをインストールすると、デフォルトの Antimatter テーマがインストールされ、 Nucleus (CSSスタイルのシンプルなベースセット)が使用されます。 Nucleusは、独自のルックアンドフィールを提供する基本的なCSSスタイルとHTMLマークアップを含む軽量のCSSフレームワークです。
ブートストラップ
人気のあるhttps://getbootstrap.com/[Bootstrap framework]を利用するテーマを作成しましょう。 Bootstrapは、オープンソースで最も人気のあるHTML、CSS、およびJSフレームワークであり、フロントエンドWeb開発をより迅速かつ簡単にします。
次の手順では、テーマの作成について説明します-
ステップ1:基本テーマのセットアップ
リンク:/grav/grav_themes_basics [Theme Basics]の章で学習したように、Gravテーマにはいくつかの重要な要素があります。これらは、新しいテーマを作成するために従う必要があります。
- Gravベースパッケージをインストールしたら、以下に示すように、 user/themes フォルダーの下にbootstrapというフォルダーを作成します。
- user/themes/bootstrap フォルダー内に、以下に示すように css/、fonts/、images/、js/ および templates/ を作成します。
- bootstrap.php というテーマファイルを user/themes/bootstrap フォルダーに作成し、次のコンテンツをそこに貼り付けます。
- 次に、 themes/bootstrap フォルダーにテーマ構成ファイル bootstrap.yaml を作成し、次の内容を書き込みます。
- 設定オプションがないため、 blueprints フォルダーをスキップし、この章では通常のCSSを使用します。
ステップ2:ブートストラップを追加する
ブートストラップテーマを作成するには、ブートストラップをテーマに含める必要があります。 以下に示すように、https://getbootstrap.com/[リンク]をクリックして、最新のBootstrapパッケージをダウンロードする必要があります。
パッケージを解凍すると、css、fonts、jsの3つのフォルダーが表示されます。 ここで、これらの3つのフォルダーの内容を、以前に作成した user/themes/bootstrap にある同様の名前のフォルダーにコピーします。
ステップ3:基本テンプレート
前の章で学習したように、コンテンツは default.md ファイルに格納され、Gravに defaultl.twig というレンダリングテンプレートを探すように指示します。 このファイルには、ページを表示するために必要なものがすべて含まれています。
Twig Extendsタグを利用するより良いソリューションがあり、https://twig.sensiolabs.org/doc/tagsで基本レイアウトを定義できます/blockl [blocks]。 これにより、Twigテンプレートはベーステンプレートを拡張し、ベースで定義されたブロックの定義を提供できます。
次の手順に従って、簡単なブートストラップベーステンプレートを作成します-
- user/themes/bootstrap/templates フォルダーに partials というフォルダーを作成します。 これは、ベーステンプレートを格納するために使用されます。
- partials フォルダーに、次の内容の basel.twig ファイルを作成します。
ステップ4:分解する
以下に示すように、 basel.twig ファイルでコードがどのように機能するかを見てみましょう。
- \ {%block head%} \ {%endblock head%} ベースTwigテンプレートの領域を定義するために使用される構文。 \ {%endblock head%} 内のヘッドはオプションです。
- ifステートメントは、ページヘッダーに meta description が設定されているかどうかをテストします。 設定しない場合、テンプレートは user/config/site.yaml ファイルで定義されている site.description を使用してレンダリングする必要があります。
- 現在のテーマのパスは、 theme_url 変数によって指定されます。
- 構文 \ {%do asset.add( 'theme://css/bootstrap.min.css',101)%} は、 Asset Manager を使用するために使用されます。 theme:// は現在のテーマパスを表し、101は高い値が最初に来てから低い値が来る順序を表します。 また、明示的にCDNリンクを提供することができます-
または、
- すべてのJavaScriptタグとCSSリンクタグは、 \ {\ {asset.css()}} または \ {\ {asset.js()}} への呼び出しがそれぞれ行われたときにテンプレートによってレンダリングされます。
- 構文 \ {#… #} は、Twigでコメントを書くために使用されます。
- 別のTwigテンプレートを含めるには、 \ {%include 'partials/headerl.twig'%} タグを使用します。
- テンプレートのコンテンツは、 \ {%block content%} \ {%endblock%} タグによって提供されます。
- カスタムJavaScript初期化コードまたは分析コードを追加するには、 \ {%block bottom%} \ {%endblock%} タグがテンプレートのプレースホルダーとして使用されます。
ステップ5:ヘッダーテンプレート
上記のコードは、新しいページが user/pages フォルダーに作成されるたびにnavbarを作成し、すべてのメニュー項目を自動的に表示します。
ステップ6-デフォルトのテンプレート
コンテンツの各アイテムには、 default.md などの特定のファイル名があり、Gravに defaultl.twig というテンプレートファイルを検索するように指示します。 user/themes/bootstrap/templates/ フォルダーに次の内容で defaultl.twig ファイルを作成してみましょう。
上記の defaultl.twig ファイルは partials/basel.twig を拡張し、 content ブロックに \ {\ {page.content}} を使用するようにベーステンプレートに指示します。
ステップ7:テーマCSS
ここで、user/themes/bootstrap/cssフォルダーに次の内容のbootstrap-custom.cssファイルを作成しましょう-
ステップ8:テスト
デフォルトのテーマを新しい bootstrap テーマで変更します。 user/config/system.yaml ファイルを開き、以下を含む行を編集します-
上記のコードを-に変更します
Gravサイトをリロードすると、以下に示すように新しくインストールされたテーマが表示されます。