コンテンツにスキップ

なぜ MKDocs なのか?

何としても、md記法で書いたテキストを公開したいと思っているのですが、先に公開したMDwikiには検索もないし、ちょっと機能が足りないと思って、探したのがこのMKDocsです。

どこが異なるのか?

両者とも mdファイルを扱うのですが、異なるのは、MKdocs が index.md を元に手元でビルド、出来上がったindex.htmlをサイトにアップロードという手順を踏む(mdファイルはこの時点で不要となる。)のですが、MDwikiはサーバサイドで、index.md → index.html 変換して表示するという点です。その分 CPU に負担がかかるので、表示に若干遅い傾向にあります。

注意点としては、手元で build するために、サーバーサイドと同じ環境(例えば、extention やら plugin など)を手元に用意する必要があります。自宅サーバーを運営している身としては、「どちらにも同じ環境を用意することは無駄!」という意識が時々出ます。

両者の長短にについては、Markdown を HTML で読む手段として MkDocs と MDwiki を試したので優劣を書くに詳しい。

使い始めたばかりなので、まだまだですが、使い方を覚えながらこのサイトを更新していこうと思います。

まずは以下のページに記載のとおりをやってみました。

mkdocs.orgGetting Started with MkDocsのページです。

インストール

ArchLinuxの場合、パッケージが用意されているので、以下のコマンドだけでインストールできます。

$ sudo pacman -S mkdocs

インストールされたのは、ver 1.6.1 です。

$ mkdocs --version
mkdocs, version 1.6.1 from /usr/lib/python3.14/site-packages/mkdocs (Python 3.14)

Commands

  • mkdocs new [dir-name] - Create a new project.
  • mkdocs serve - Start the live-reloading docs server.
  • mkdocs build - Build the documentation site.
  • mkdocs -h - Print help message and exit.

Project layout

mkdocs.yml    # The configuration file.(サイト全体の設定ファイル)
docs/
    index.md  # The documentation homepage.(ページの原本MDファイル(
    ...       # Other markdown pages, images and other files.

サイトにアップロードするファイル

プロジェクト名の下部に site というディレクトリが出来上がっていますので、この site ディレクトリの中身です。


└── my-project
    ├── docs
    │   └── index.md
    ├── mkdocs.yml
    └── site
        ├── 404.html
        ├── css
        │   ├── base.css
        │   ├── bootstrap.min.css
        │   ├── bootstrap.min.css.map
        │   ├── brands.min.css
        │   ├── fontawesome.min.css
        │   ├── solid.min.css
        │   └── v4-font-face.min.css
        ├── img
        │   ├── favicon.ico
        │   └── grid.png
        ├── index.html
        ├── js
        │   ├── base.js
        │   ├── bootstrap.bundle.min.js
        │   ├── bootstrap.bundle.min.js.map
        │   └── darkmode.js
        ├── search
        │   ├── lunr.js
        │   ├── main.js
        │   ├── search_index.json
        │   └── worker.js
        ├── sitemap.xml
        ├── sitemap.xml.gz
        └── webfonts
            ├── fa-brands-400.ttf
            ├── fa-brands-400.woff2
            ├── fa-regular-400.ttf
            ├── fa-regular-400.woff2
            ├── fa-solid-900.ttf
            ├── fa-solid-900.woff2
            ├── fa-v4compatibility.ttf
            └── fa-v4compatibility.woff2

結果は?

良くできました