MkDocsのすゝめ
はじめに
ドキュメントに整理するとき、MkDocs を使ってみたので、その記録。下記 4 点を整理した。
- Python をインストールせずに Docker を使ってローカルで確認する
- Docker を使って HTML ファイルとしてビルドする
- 長くなりがちな docker コマンドを Makefile にしておく
- GitHub Actions で GitHub Pages にデプロイする
何番煎じかわからないので、詳しくは参考にしたサイト参照(一番下にまとめた)。
最終的なドキュメントのサイトはこんな感じになる。シンプルでいい感じ。
コードはoptimisuke/hello-mkdocsにおいた。
先に書いておくと、フォルダ構成はこんな感じ。
MkDocs
まずは、MkDocs の設定(yaml)の説明。
必要最低限で、こんな感じ。
theme
にmaterial
をつけてMaterial for MkDocsを使ってる。
いい感じ。
index.md
とhoge.md
がsrc
フォルダの下にある。
# contents
nav:
- Home:
- インデックス: index.md
- ほげ: hoge.md
# metadata
site_name: MkDocs Test Site
docs_dir: src
use_directory_urls: false
# theme
theme:
name: material
language: ja
マークダウンはそれぞれこんな感じ。
# インデックス
最初のページ
# ホゲ
次のページ
ローカルで確認するときは、下記コマンドでサーバーが立ち上がる。
ここでは、ポートを8004
にしている。
なので、ブラウザからlocalhost:8004
にアクセスすると確認できる。
docker run --rm -it -v $(pwd):/docs -p 8004:8000 squidfunk/mkdocs-material
Python 使うと、いろんなものがpip install
されてごちゃごちゃしちゃうので、docker 使った方が良いと思ってる。
HTML Export
次に HTML の出力。
下記コマンドで、出力できる。
site
フォルダに吐き出される。
docker run --rm -it -v $(pwd):/docs squidfunk/mkdocs-material build --clean
上記 yaml にuse_directory_urls: false
を書くことがポイント。
ローカルで、index.html
を開いてページ遷移する場合もいい感じに開けるようになる。
これを書かないとパスがフォルダを指すので、html にアクセスできずに下記のようなページが出てくる。
Docker x Makefile
docker コマンド長くなりがちなので、Makefile を作っておく。もうちょいかっこいい Makefile 書けるようになりたい。
カレントディレクトリを指定している${PWD}
の部分が、コマンドで打つ時と違う。
view:
docker run --rm -it -v ${PWD}:/docs -p 8004:8000 squidfunk/mkdocs-material
build:
docker run --rm -it -v ${PWD}:/docs squidfunk/mkdocs-material build --clean
GitHub Actions
GitHub Pages にデプロイしたかったので、GitHub Actions を使って実施した。
下記公式(Publishing your site - Material for MkDocs)ドキュメント等を参考にした。
mkdocs gh-deploy --force
コマンドの中でブランチ作って push するところまでしてくれてるから、すごくシンプル。
name: deploy mkdocs
on:
push:
branches:
- main
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Check out code
uses: actions/checkout@v2
- name: Configure git info
run: |
git config --global user.name "github-actions-for-deploy"
git config --global user.email deploy-actions@github.com
- name: Set up python
uses: actions/setup-python@v2
with:
python-version: 3.x
- run: pip install mkdocs-material
- run: pip install plantuml-markdown python-markdown-math mdx_truly_sane_lists mkdocs-git-revision-date-localized-plugin mkdocs-add-number-plugin
- name: deploy
run: mkdocs gh-deploy --force
main
に push するとgh-pages
というブランチが出来る。まじめに、git config
でユーザー名を指定したから、そのユーザー名でコミットしたことになってる。
GitHub Pages を有効にするために、下記設定をするとアクセスできるようになる。
おわりに
少し環境整えたら、いい感じのドキュメント作れるようになった。とってもいい感じ。
チームには GitHub Pages で共有して、必要に応じて非エンジニアには html で共有する(pdf にもできるらしい)感じで運用できそう。
スタイルも変えられるみたいなので、もっと使っていきたい。
参考
公式
その他
- Material for MkDocs で生成したサイトを Github Pages で公開する
- MkDocs で作ったドキュメントを GitHub Actions を使って GitHub Pages にデプロイしよう | ultra code
- mkdocs+GitHub Actions で Markdown ベースのドキュメントを作成/公開する - taxin's notes
- GitHub Actions と Markdown で静的サイト作成 ~ mkdocs-material 編~ - 粗大メモ置き場
- MkDocs によるドキュメント作成
- プロジェクトドキュメント構築向け静的サイトジェネレータ『MkDocs』及び『Material for MkDocs』の個人的導入&設定まとめ | DevelopersIO
Discussion