コンテンツにスキップ

MkDocsとは?

MkDocs とは、Python ベースの「静的サイトジェネレータ」です。ただ、ブログ用というよりは、ドキュメントの生成向けに作られています。

静的サイトとは?

少し、静的サイトについて説明します。

WordPress のようなブログシステムの場合、誰かがページにアクセスすると、URL に応じて表示する内容が生成されます。システムがデータベースからデータを取り出し、ページのテンプレートにそって HTML を作成し、表示します。このようなページの生成方法を 動的生成 といいます。

これに対し、事前にすべてのページを作成する方法を 静的生成 といいます。サイトへアクセスがあった場合、「データベースにアクセスして、その都度、ページを作成する」手順がないので、一般的に、静的サイトのほうがはやく表示されます。また、そもそもデータベースやサイトへのログインなどが不要なので、セキュリティの心配も減ります。

静的サイトは、このように、表示の速さやセキュリティの観点から、近年、徐々に人気が高まってきました。

ただし、静的サイトにも、デメリットはあります。「事前に全ページを作成する」のに時間がかかる点です。当然ですが、ページ数が増えるほど、全ページの作成には時間がかかります。そのため、ページ数が多かったり、更新頻度が高いサイトを作るのには向いていません。

また、動的なコンテンツが作成できない点も注意です。例えば、コメント欄や予約投稿機能などをつけるのは難しいです。静的サイトでも工夫すればできますが、そこを頑張るくらいなら、動的に作成するツールを選んだ方がいいでしょう。

MkDocsの特徴は?

MkDocs は静的サイトジェネレータ―の1つですが、他のツールと違ってドキュメント生成向けに作られています。プロジェクトのドキュメント生成などが想定されています。

なので、例えば、投稿時間でソートをするとか、タグやカテゴリーをつけるといった機能は、デフォルトではついていません。複数ページからなる、階層化された、一度作ったらあまり更新しないようなサイトに向いています。

本家のサイトを見ると、MkDocsには以下のような特徴が書かれています。

  • プロジェクトのドキュメント生成に向いている
  • Markdownで記事を書き、1つの YAMLファイルでサイト構成を管理する
  • 完全に静的なサイトができるので、GitHub pages や Amazon S3 など、好きなところでホストできる
  • テーマを自由に選べる(2つがデフォルトで入っている)し、自分でも作れる
  • ローカルサーバー上でプレビューでき、上書きすると自動で反映される
  • テーマをカスタマイズしたり、プラグインを入れることができる

最近の静的サイトジェネレータなら、ほとんど該当するものです。特徴的なのは、すでに書いた1つ目でしょう。

おわりに

ここでは、MkDocs の紹介や静的サイトの説明を行ってきました。Python がすでに入っている人は、簡単にサイトを作成できるので、次のページに進んでインストールしてみましょう。