ディレクトリ構造

基本的なJekyllサイトは通常、次のような構造になります。

.
├── _config.yml
├── _data
│   └── members.yml
├── _drafts
│   ├── begin-with-the-crazy-ideas.md
│   └── on-simplicity-in-technology.md
├── _includes
│   ├── footer.html
│   └── header.html
├── _layouts
│   ├── default.html
│   └── post.html
├── _posts
│   ├── 2007-10-29-why-every-programmer-should-play-nethack.md
│   └── 2009-04-26-barcamp-boston-4-roundup.md
├── _sass
│   ├── _base.scss
│   └── _layout.scss
├── _site
├── .jekyll-cache
│   └── Jekyll
│       └── Cache
│           └── [...]
├── .jekyll-metadata
└── index.html # can also be an 'index.md' with valid front matter
gemベースのテーマを使用するJekyllサイトのディレクトリ構造

バージョン3.2以降、`jekyll new`でブートストラップされた新しいJekyllプロジェクトでは、サイトの外観を定義するためにgemベースのテーマが使用されます。これにより、デフォルトのディレクトリ構造が簡素化され、`_layouts`、`_includes`、`_sass`はデフォルトでテーマgemに格納されます。


minimaが現在のデフォルトテーマであり、`bundle info minima`を実行すると、minimaテーマのファイルがコンピューターのどこに格納されているかを確認できます。

それぞれの役割の概要

ファイル/ディレクトリ 説明

_config.yml

設定データを保存します。これらのオプションの多くはコマンドライン実行ファイルから指定できますが、ここで指定した方が覚えやすいため、こちらで指定することをお勧めします。

_drafts

下書きは未公開の投稿です。これらのファイルの形式は日付を含まず、`title.MARKUP`となります。下書きの使用方法をご覧ください。

_includes

これらは、レイアウトと投稿で組み合わせて再利用を容易にするための部分テンプレートです。Liquidタグ`{% include file.ext %}`を使用して、`_includes/file.ext`内の部分テンプレートを含めることができます。

_layouts

これらは、投稿をラップするテンプレートです。レイアウトは、次のセクションで説明するフロントマターで、投稿ごとに選択されます。Liquidタグ`{{ content }}`を使用して、コンテンツをウェブページに挿入します。

_posts

いわゆる動的なコンテンツです。これらのファイルの命名規則は重要であり、`YEAR-MONTH-DAY-title.MARKUP`の形式に従う必要があります。パーマリンクは投稿ごとにカスタマイズできますが、日付とマークアップ言語はファイル名によってのみ決定されます。

_data

適切にフォーマットされたサイトデータはここに配置する必要があります。Jekyllエンジンは、このディレクトリ内のすべてのデータファイル(`.yml`、`.yaml`、`.json`、`.csv`、`.tsv`形式と拡張子を使用)を自動的にロードし、`site.data`からアクセスできます。`members.yml`というファイルがディレクトリにある場合、`site.data.members`を使用してファイルの内容にアクセスできます。

_sass

これらは、`main.scss`にインポートできるSass部分テンプレートです。これらは、サイトで使用されるスタイルを定義する単一のスタイルシート`main.css`に処理されます。アセットの使用方法をご覧ください。

_site

Jekyllが変換を完了した後、生成されたサイトが(デフォルトで)ここに配置されます。これを`.gitignore`ファイルに追加することをお勧めします。

.jekyll-cache

生成されたページとマークアップ(例:Markdown)のコピーを保持し、より高速な配信を実現します。例えば`jekyll serve`を使用する際に作成されます。オプションやフラグを使用して無効にすることができます。このディレクトリは生成されたサイトには含まれません。これを`.gitignore`ファイルに追加することをお勧めします。

.jekyll-metadata

これは、Jekyllがサイトが最後にビルドされてから変更されていないファイルと、次回のビルドで再生成が必要なファイルをトラッキングするのに役立ちます。増分再生(例:`jekyll serve -I`を使用)を使用する場合にのみ作成されます。このファイルは生成されたサイトには含まれません。これを`.gitignore`ファイルに追加することをお勧めします。

`index.html`または`index.md`、その他のHTML、Markdownファイル

ファイルにフロントマターセクションが含まれている場合、Jekyllによって変換されます。サイトのルートディレクトリまたは上記にリストされていないディレクトリにある任意の`.html`、`.markdown`、`.md`、または`.textile`ファイルでも同じことが行われます。

その他のファイル/フォルダ

上記で説明した特別なケースを除き、`css`や`images`フォルダ、`favicon.ico`ファイルなど、その他のすべてのディレクトリとファイルは、生成されたサイトにそのままコピーされます。使用方法が気になる場合は、すでにJekyllを使用しているサイトがたくさんあります。

以下の文字で始まるすべてのファイルまたはディレクトリ:._ #、または~sourceディレクトリには含まれず、destinationフォルダには含まれません。そのようなパスは、設定ファイルのincludeディレクティブで明示的に指定する必要があります。

include:
 - _pages
 - .htaccess