Step by Step チュートリアル
4. レイアウト
Webサイトには通常複数のページがあり、このWebサイトでも違いはありません。
JekyllはページのためにHTMLと同様Markdownもサポートしています。MarkdownはHTMLと比較して少ない要素で済み、(段落とヘッダと画像という)シンプルな構成要素のページには素晴らしい選択です。2つ目のページでは、それに挑戦してみましょう。
rootにabout.md
を作成します。
構成はindex.html
をコピーして、aboutページになるよう修正します。これを行う際の問題は、重複しているコードがあることです。スタイルシートをサイトに追加したくなったら、各ページの<head>
に指定を追加しなければなりません。2ページだけならそう大変には思えないでしょうが、100ページある場合を想像してみてください。簡単な変更でも、長い時間がかかります。
レイアウトを作る
レイアウトを使うことは、より良い選択です。レイアウトはコンテンツを包み込むテンプレートです。それらは、_layouts
に入っています。
以下の内容で、_layouts/default.html
にあなたの最初のレイアウトを作りましょう。
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>{{ page.title }}</title>
</head>
<body>
{{ content }}
</body>
</html>
index.html
とほとんど同じことに気づいたのではないでしょうか。違いは、front matterが無いことと、ページのコンテンツがcontent
変数に置き換わっていることです。content
は特別な変数で、ページが読み込まれたときに、そのレンダリングされたコンテンツを持っています。
index.html
がこのレイアウトを使う用にするために、front matterにlayout
変数をセットします。レイアウトがコンテンツを包み込むため、index.html
に入れる必要があるのは、いかが全てです。
---
layout: default
title: Home
---
<h1>{{ "Hello World!" | downcase }}</h1>
これを行ったあと、出力は以前と全く同じになります。レイアウトから、page
のfront matterにアクセスすることができます。今回の場合は、title
がindexページのfront matterで設定されていますが、レイアウトで出力されています。
Aboutページ
aboutページに戻り、index.html
からコピーする代わりに、レイアウトを使用することができます。
about.md
を以下のようにします。
---
layout: default
title: About
---
# About page
This page tells you a little bit about me.
http://localhost:4000/about.htmlをブラウザで開き、新しいページを見てみましょう。
おめでとうございます、2つのページのWebサイトができました! しかし、どうやってあるページから別のページへナビゲートしましょう? それを見つけるため、引き続き読み進めてください。