ディレクトリ構造
📁
ここでは、NKSSG のディレクトリ構造について説明していきます。
初期状態のディレクトリ構造
NKSSG をインストールし、nkssg new site
コマンドを実行すると、自動的にファイルやフォルダが作成されます。
次のようなディレクトリ構造になっているはずです。
root
├── docs
│ ├── page
│ └── post
├── public
├── static
├── themes
└── nkssg.yml
nkssg.yml は、サイトの設定情報が入っているファイルです。ここにサイト名、パーマリンク、カテゴリーなどの設定を書いていきます。
docs フォルダは、記事のファイルを格納するためのものです。この直下のフォルダは、投稿タイプ(post_type)として扱われます。初期状態では、post と page が作成され、その下に記事のサンプルファイルができているはずです。
1つ飛ばして、static フォルダは画像や CSS などの、静的ファイルを格納するためのフォルダです。nkssg build
を実行すると、この下にあるフォルダはそのまま public フォルダに移ります。
themes フォルダは、テーマを格納するためのフォルダです。テーマは、ページの見た目を決める CSS ファイルだけでなく、HTML の構造やnkssg new
コマンドを実行したときのひな型などを含んでいます。初期状態では、default と child というテーマが入っていて、どちらも有効化されています。
残りの public フォルダは、公開用のファイルを入れるためのフォルダです。初期状態では、このフォルダは空です。
nkssg build
コマンドを実行すると、サイト公開に必要なファイル一式が public フォルダ内に作成されます。この public フォルダ内のファイルをサーバーにアップすれば、サイトが公開できます。
ビルド後のpublic内のディレクトリ構造
nkssg build
コマンドを実行すると、サイト公開に必要なファイル一式が、public フォルダ内に作成されます。下は作成されるファイルなどの一例です。
public
├── 2021
│ ├── index.html
│ └── 04
│ ├── index.html
│ └── 01
│ └── index.html
├── category
│ ├── cat1
│ ├── cat2
│ └── …
├── img
├── page
├── tag
│ ├── tag1
│ ├── tag2
│ └── …
├── themes
├── 404.html
├── index.html
├── sitemap.html
└── sitemap.xml
まず、docs 内の各記事ファイルに対して、記事の URL に応じたフォルダやファイルが作成されます。例えば、https://example.com/2021/04/01/
という URL で公開されるように設定した場合は、/public/2021/04/01/index.html
というファイルが(途中のフォルダも含めて)作成されます。
一般的に、ファイル名を指定せずにアクセスした場合、フォルダ内の index.html が表示されます。そのため、このようにファイル・フォルダを作っておけば、/2021/04/01/
にアクセスがあったときに対応するページが表示されるようになります。
また、アーカイブも自動で作成されます。デフォルトでは、post フォルダ内に追加した記事は日付型アーカイブを作る設定となっているので、年や月ごとのアーカイブページが自動で作られます。例えば、上の例では、次の2つのファイルができています。
/public/2021/index.html
/public/2021/04/index.html
1つ目には 2021年の post 内の記事一覧ができており、2つ目には 2021年4月の post 内の記事一覧ができています。それぞれ、次のような URL でアクセスできます。
https://example.com/2021/
https://example.com/2021/04/
カテゴリーやタグを設定している場合は、これらのアーカイブページも作成されます。page のように、セクション型のアーカイブも作成されます。
トップフォルダ内にある次の4つのファイルは特別なファイルです。
- index.html
- 404.html
- sitemap.html
- sitemap.xml
1つ目は、トップページに表示されるものです。これらのファイルもテーマによっては作成されます(default テーマでは常に作成します)。
記事以外に、画像ファイルなどもコピーされています。static フォルダ内に入れてある画像などのファイルは、ビルド時に、public フォルダの下に自動的にコピーされます。/static/img/sample.gif というファイルがあった場合、 /public/img/sample.gif へコピーされます。
最後に、themes 内のファイルです。theme の設定ファイル内で、静的ファイルをコピーするように指定している場合は、それらもコピーされます。デフォルトのテーマでは、例えば、/public/themes/default/img/icon-192x192.png
が /themes/default/img/
以下のフォルダからコピーされるように指定されています。
サイトの公開に必要なすべてのファイルが、public フォルダ下に作成されます。