前回からのつづき
前回までの作業で、サイト構築の準備が整いました。
今回は、そのつづきからになります。
7. 先頭ページの作成
サイトの先頭ページを作成します。名前、”index.njk”で作成します。
作成したファイルは、Eleventyにより解析され、HTML変換後、出力用フォルダー直下の”_site/index.html”として出力されます。
👉 ここでは、Windows標準の「メモ帳」アプリを使用します。
以下を入力:
notepad index.njk
メモ帳にて、以下を入力して保存:
---
title: ブログサイト構築の実践
date: 2026-04-24
layout: layout.njk
---
<a href="/posts/">投稿記事一覧</a>
(説明)
① 設定(フロントマター)部分
---
title: ブログサイト構築の実践
date: 2026-04-24
layout: layout.njk
---
Eleventy解析用の設定(フロントマター)を定義しています。
👉 レイアウト用テンプレートファイルとして、”layout.njk”を指定しています。
② 本文部分
<a href="/posts/">投稿記事一覧</a>
_site/index.htmlファイルの本文を定義しています。
👉 今回は、HTMLで投稿記事一覧ページへのリンクを定義しています。
補足
Eleventyによるファイル解析後、定義された値は、CollectionItem オブジェクトのプロパティとして保持されます。
{
data: {
title: "ブログサイト構築の実践",
date: "2026-04-24"
...frontMatterの内容
},
templateContent: "<p><a href="/posts/">投稿記事一覧</a></p>",
// 他にも Eleventy が内部で使うプロパティが多数
}
8. 投稿記事一覧ページの作成
投稿記事一覧ページを作成します。名前、”posts.njk”で作成します。
作成したファイルは、Eleventyにより解析され、HTML変換後、”_site/posts/index.html”として出力されます。
👉 Eleventyは、”index.*”という名前以外のファイルに関して、下記のルールでHTML出力を行います。
(名前).njk or (名前).md ⇒ (出力用フォルダー)/(名前)/index.html
👉 ここでは、Windows標準の「メモ帳」アプリを使用します。
以下を入力:
notepad posts.njk
メモ帳にて、以下を入力して保存:
---
title: 投稿記事一覧
layout: layout.njk
---
<h1>投稿記事一覧</h1>
<ul>
{% for post in collections.posts | reverse %}
<li>
<a href="{{ post.url }}">{{ post.data.title }}</a>
</li>
{% endfor %}
</ul>
(説明)
① 設定(フロントマター)部分
---
title: 投稿記事一覧
layout: layout.njk
---
Eleventy解析用の設定(フロントマター)を定義しています。
👉 レイアウト用テンプレートファイルとして、”layout.njk”を指定しています。
② 本文部分
<h1>投稿記事一覧</h1>
<ul>
{% for post in collections.posts | reverse %}
<li>
<a href="{{ post.url }}">{{ post.data.title }}</a>
</li>
{% endfor %}
</ul>
_site/posts/index.htmlファイルの本文をNunjucks構文とHTMLで定義しています。
👉 今回は:
- 「投稿記事一覧」という見出しを定義
- Eleventy構成”.eleventy.js”で定義したコレクション”posts”を逆順に並び替え、1つずつ抽出
- 抽出した投稿記事へのリンクをHTMLでリスト形式に出力
- リンク名には、取り出したpostの設定(フロントマター)に定義されていた”title”を使用
👉 Nunjucks構文では、Eleventy構成”.eleventy.js”で定義したコレクションをcollectionsというオブジェクトのプロパティとして、参照可能です。
例:postsコレクション ⇒ collections.posts
👉 設定(フロントマター)に定義されていた値は、”(オブジェクト名).data.(定義名)”で参照可能です。
例:title ⇒ post.data.title
9. スタイルシートの作成
各ページで利用するスタイルシートを作成します。名前、”style.css”で作成します。
👉 ここでは、Windows標準の「メモ帳」アプリを使用します。
以下を入力:
notepad style.css
メモ帳にて、以下を入力して保存:
body {
font-family: sans-serif;
padding: 2rem;
background-color: #f5f5f5;
}
👉 今回は、文字フォント、パディング、背景色を指定しています。
10. 投稿記事の作成
10-1. 投稿記事フォルダの作成
名前は、”posts”で作成します。
以下を入力:
mkdir posts
作成したソースフォルダーに移動します。
以下を入力:
cd posts
10-2. 投稿記事ページの作成
今回は、投稿記事一覧の確認も行いたいので、2つの記事を作成します。
最初の記事を、Markdownファイルで、名前”hello.md”として作成します。
👉 ここでは、Windows標準の「メモ帳」アプリを使用します。
以下を入力:
notepad hello.md
メモ帳にて、以下を入力して保存:
---
title: はじめての投稿
date: 2026-04-01
layout: layout.njk
---
こんにちは!これは最初の投稿です。
👉 レイアウト用テンプレートファイルとして、”layout.njk”を指定しています。
作成したファイルは、Eleventyにより解析され、HTML変換後、”_site/posts/hello/index.html”として出力されます。
つづいて、2つ目の記事を、同じくMarkdownファイルで、名前”second.md”で作成します。
👉 ここでは、Windows標準の「メモ帳」アプリを使用します。
以下を入力:
notepad second.md
メモ帳にて、以下を入力して保存:
---
title: 2回目の投稿
date: 2026-04-02
layout: layout.njk
---
2回目の投稿です。ブログサイトを構築していきます。
👉 レイアウト用テンプレートファイルとして、”layout.njk”を指定しています。
作成したファイルは、Eleventyにより解析され、HTML変換後、”_site/posts/second/index.html”として出力されます。
(つづく)