NKSSG
NakaKen Static Site Generator

ディレクトリ構造

📁

ここでは、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 フォルダ下に作成されます。