MkDocsとは?
MkDocs とは、Python ベースの「静的サイトジェネレータ」です。ただ、ブログ用というよりは、ドキュメントの生成向けに作られています。
静的サイトとは?
少し、静的サイトについて説明します。
WordPress のようなブログシステムの場合、誰かがページにアクセスすると、URL に応じて表示する内容が生成されます。システムがデータベースからデータを取り出し、ページのテンプレートにそって HTML を作成し、表示します。このようなページの生成方法を 動的生成 といいます。
これに対し、事前にすべてのページを作成する方法を 静的生成 といいます。サイトへアクセスがあった場合、「データベースにアクセスして、その都度、ページを作成する」手順がないので、一般的に、静的サイトのほうがはやく表示されます。また、そもそもデータベースやサイトへのログインなどが不要なので、セキュリティの心配も減ります。
静的サイトは、このように、表示の速さやセキュリティの観点から、近年、徐々に人気が高まってきました。
ただし、静的サイトにも、デメリットはあります。「事前に全ページを作成する」のに時間がかかる点です。当然ですが、ページ数が増えるほど、全ページの作成には時間がかかります。そのため、ページ数が多かったり、更新頻度が高いサイトを作るのには向いていません。
また、動的なコンテンツが作成できない点も注意です。例えば、コメント欄や予約投稿機能などをつけるのは難しいです。静的サイトでも工夫すればできますが、そこを頑張るくらいなら、動的に作成するツールを選んだ方がいいでしょう。
MkDocsの特徴は?
MkDocs は静的サイトジェネレータ―の1つですが、他のツールと違ってドキュメント生成向けに作られています。プロジェクトのドキュメント生成などが想定されています。
なので、例えば、投稿時間でソートをするとか、タグやカテゴリーをつけるといった機能は、デフォルトではついていません。複数ページからなる、階層化された、一度作ったらあまり更新しないようなサイトに向いています。
本家のサイトを見ると、MkDocsには以下のような特徴が書かれています。
- プロジェクトのドキュメント生成に向いている
- Markdownで記事を書き、1つの YAMLファイルでサイト構成を管理する
- 完全に静的なサイトができるので、GitHub pages や Amazon S3 など、好きなところでホストできる
- テーマを自由に選べる(2つがデフォルトで入っている)し、自分でも作れる
- ローカルサーバー上でプレビューでき、上書きすると自動で反映される
- テーマをカスタマイズしたり、プラグインを入れることができる
最近の静的サイトジェネレータなら、ほとんど該当するものです。特徴的なのは、すでに書いた1つ目でしょう。
おわりに
ここでは、MkDocs の紹介や静的サイトの説明を行ってきました。Python がすでに入っている人は、簡単にサイトを作成できるので、次のページに進んでインストールしてみましょう。