MkDocsでマテリアルデザインなMarkdownドキュメントサイトを作ろう

f:id:syonx:20180308224417p:plain

MkDocsとは

MkDocs とは、 Markdown をもとにドキュメントサイトを構築する 静的サイトジェネレーターです。 Material for MkDocs とは、 MkDocs のテーマの1つであり、 Google が提唱しているマテリアルデザインを反映したものです。 このテーマが実によくできているので、じわじわと流行ってきているように感じます。

f:id:syonx:20180309134716p:plain
Material for MkDocsはパレットカラーの切替にも対応

特徴

  • Markdownファイルを放り込めば大体OK!
  • テーマいろいろ
  • モバイルサイズにも対応
  • 静的サイトに載せられる(アプリサーバ不要)

記事コンテンツの全文検索ができる!

f:id:syonx:20180309001026p:plain

静的サイトなのに検索ができることに驚きです。ちょっとだけ仕組みを覗き見たところ、 生成コマンド実行時にインデックスらしきファイルを作っていました。 JavaScriptでゴリゴリやっている感じがするので、ちょっと重いかも。

他のテーマ

f:id:syonx:20180309002338p:plainf:id:syonx:20180309002350p:plain

拡張Markdownの表現力

ドキュメントサイトではこういった注釈の表現はあると映えますよね。 このあたりできるのであれば、他の難しいドキュメント記法の仕組みにしなくてもよいという判断に揺らぎそうです。

f:id:syonx:20180309010613p:plain

実際に動かしてみよう!

手軽に素早く構築できるように、スターターキットを用意しました。 すぐにどんなものか試せるように、ありモノをちょちょいとやるだけで雰囲気がつかめます。

その導入手順を説明した記事も書いたので、気になった方はどうぞ。 WindowsMac それぞれに場合分けして案内しているので、取り組みやすいと思います。 もしわからないことがあったら気軽に聞いてくれてイイヨ

syon.github.io

実例とソースコード

以前からずっと書き溜めてきたMarkdownメモの寄せ集めサイトを刷新しました。

f:id:syonx:20180308224221p:plain

ソースコードGitHubで公開しています。 キャプチャをご覧の通り、早速マテリアルデザインを逸脱しています(笑)。 これは設定で extra_css を指定することで拡張CSSを適用しています。 その他、ちょっと調整したいときにとても助かる仕組みですね。実際のソースを参考にしてみて下さい。

github.com

技術的な補足情報

Webサーバに載せることが前提

MkDocsで生成した静的サイト用ファイルは、ローカルでindex.htmlを開く使い方は想定されていません。 開くことと表示することはできますが、リンクから他の記事に遷移することができません。 これはMarkdownファイルへのリンクが ./TheTitle/ のように張られており、ファイルプロトコル上では これが ./TheTitle/index.html と解釈されず、正しく表示できません。

他にも

ドキュメントサイトジェネレーターという観点では、 Read the Docs というオープンソースのサービスを 利用しているサイトもよく見かけます。まだしっかりと検証したことはありませんが、検討の候補としてチェックしておくとよいでしょう。

readthedocs.org