2026年10月24日、ドキュメントのサイトづくりで人気のMaterial for MkDocsの9.8.0が公開されました。この版から、ビルドするたびに、2027年5月5日にサポートを終えるという案内が表示されるようになっています。
案内では、同じチームが作る後継のZensicalへの移行が勧められています。また、10月20日には、もう1つの定番ツールSphinxの9.2.0も公開され、Python 3.13以上が必要になりました。
ライブラリの説明書や社内の手順書を、こうしたツールで作っている方も多いのではないでしょうか。今回は、2つのニュースを、実際に動かした結果とともに見ていきます。
まずはドキュメントづくりのツールとは¶
最初に、今回の主役となるツールが、どんなものなのかを確認しておきましょう。どちらも、書いた文章から、説明書のWebサイトを自動で作ってくれる道具です。
このような道具は、静的サイトジェネレーターと呼ばれます。静的サイトとは、あらかじめ作っておいたHTMLのファイルを、そのまま見せるだけのWebサイトのことです。
代表的な3つのツール¶
今回登場するツールを、表にまとめます。
| ツール | 書き方 | 特徴 |
|---|---|---|
| MkDocs | Markdown | 設定ファイル1つで手軽に始められる |
| Material for MkDocs | Markdown | MkDocsの見た目と機能を大きく広げるテーマ |
| Sphinx | reStructuredText(拡張機能でMarkdownも) | Python本体の公式ドキュメントでも使われる老舗 |
Material for MkDocsは、MkDocsに着せる見た目のセット、つまりテーマです。検索や目次など便利な機能が多く、Pythonのライブラリの説明書で広く使われてきました。
Pythonのコードの中に説明を書く方法は、こちらで紹介しています。【関連記事】Pythonのdocstringとは?
Material for MkDocs 9.8.0で何が変わったのか¶
まずは、Material for MkDocsのニュースから見ていきましょう。公式リポジトリにある変更履歴によると、9.8.0は主にセキュリティのためのリリースです。
| 変更 | 中身 |
|---|---|
| 依存ライブラリの最低バージョン | 既知の脆弱性がある版を使わないよう引き上げ |
| Pythonの対応範囲 | 3.11以上が必要に。3.8から3.10は対象外 |
| おすすめの追加プラグイン | RSSとリダイレクトのプラグインを外した |
| ビルド時の案内 | サポート終了日と、移行の手引きを表示 |
| パッケージの情報 | 開発の状態を、活動停止を表すInactiveに |
PyPIを確かめると、9.8.0の開発の状態は、実際にDevelopment Status :: 7 - Inactiveになっていました。これは、新しい機能の開発を終えたプロジェクトであることを示す印です。
脆弱性への対応¶
変更履歴には、新しい最低バージョンで対応した、依存ライブラリの脆弱性が並んでいます。代表的なものを表にまとめます。
| ライブラリ | 新しい最低バージョン |
|---|---|
| Jinja2 | 3.1.6 |
| Markdown | 3.8.1 |
| Pygments | 2.20.0 |
| Requests | 2.33.0 |
| Pillow | 13.0.0 |
| GitPython | 3.2.1(gitの追加機能を使う場合) |
これまでの依存関係の指定では、既知の脆弱性がある版も入れられてしまう状態でした。変更履歴では、9.8.0に上げたうえで、依存関係を固定したファイルも更新するよう勧められています。
Pillowの13.0.0については、以前の記事で紹介しました。【関連記事】Pillow 13.0がリリース
2027年5月5日にサポート終了¶
今回いちばん大きいのは、サポート終了の日付がはっきりしたことです。実は、Material for MkDocsは、2025年11月11日に公開された9.7.0の時点で、すでに保守だけを続ける段階に入っていました。
変更履歴によると、9.7.0は、新しい機能が加わる最後の版でした。その後は、重大な不具合の修正とセキュリティの更新を、少なくとも12か月続けると説明されていました。
実際にビルドしてみた¶
9.8.0で、どんな案内が出るのかを試してみました。設定ファイルmkdocs.ymlと、1ページだけのMarkdownを用意します。
site_name: はじめてのドキュメント
theme:
name: material
9.8.0を入れた仮想環境で、mkdocs buildを実行したときの表示です。色を付けるための記号は省いています。
│ Material for MkDocs reaches end of life on May 5, 2027.
│ Critical fixes and security updates continue until that date.
│
│ Zensical is its maintained successor, built by the same team.
│ Try it alongside MkDocs with your existing mkdocs.yml:
│ https://zensical.org/docs/compatibility/mkdocs/migration/
To disable this warning, set NO_MKDOCS_2_WARNING=1.
案内には、2027年5月5日にサポートを終えること、それまでは重大な修正とセキュリティの更新が続くことが書かれています。そのうえで、同じチームが作る後継のZensicalを、今のmkdocs.ymlのまま試してみるよう勧めています。
なお、この案内のあとで、サイトそのものはいつもどおり問題なく作られました。今すぐ動かなくなるわけではないので、落ち着いて移行の計画を立てましょう。
後継のZensicalを試してみた¶
では、案内されているZensicalとは、どんなツールなのでしょうか。PyPIの説明には、Material for MkDocsの作者たちが作る、新しい静的サイトジェネレーターと書かれています。
同じmkdocs.ymlでビルドできた¶
案内のとおり、先ほどのmkdocs.ymlを書き換えずに、Zensical 0.0.73でビルドしてみました。別の仮想環境に入れて、zensical buildを実行した結果です。
Build started
No issues found
Build finished in 0.23s
作られたindex.htmlを見ると、ページのタイトルはようこそ - はじめてのドキュメントとなっていました。設定ファイルのsite_nameも、Markdownの見出しも、そのまま読み込まれています。
新しく始めるなら設定ファイルはTOML¶
一方で、zensical newで新しいプロジェクトを作ると、zensical.tomlという設定ファイルが作られました。TOMLは、pyproject.tomlなどでも使われている、設定を書くための形式です。
作られたファイルの冒頭は、次のようになっていました。
[project]
site_url = "https://www.example.com/"
site_name = "Documentation"
既存のサイトはmkdocs.ymlのまま試し、新しいサイトはTOMLで始める、という使い分けができそうです。
まだ若いツールであることも知っておこう¶
ただし、PyPIを見ると、Zensicalの版はまだ0.0.73で、開発の状態はDevelopment Status :: 3 - Alphaです。アルファは、機能がまだ固まっていない段階を表します。
すべてのプラグインや機能が同じように動くとは限らないので、大事なサイトを移す前には、手元で一通り確かめてください。2027年5月までの時間を、少しずつ試す期間として使うのがおすすめです。
Sphinx 9.2はPython 3.13以上が必要に¶
続いて、Sphinxのニュースです。Sphinxの公式リポジトリにある変更履歴によると、2026年10月20日に公開された9.2.0で、Python 3.12のサポートを終えました。
あわせて、文書の変換を担うDocutilsの0.23にも対応しています。9.2.0の変更は、この2つだけです。
Pythonの版ごとに、入る版が違った¶
実際に、3つのPythonでそれぞれ新しい仮想環境を作り、pip install sphinxを実行してみました。入った版は次のとおりです。
| Pythonの版 | 入ったSphinxの版 |
|---|---|
| 3.11.15 | 9.0.4 |
| 3.12.15 | 9.1.1 |
| 3.15.0 | 9.2.0 |
pipは、今のPythonで使える中で、いちばん新しい版を自動で選びます。そのため、3.12ではエラーにならず、ひとつ前の9.1.1が静かに入りました。
変更履歴によると、9.1.0では3.11のサポートを終えていました。つまりSphinxは、新しい版ごとに、古いPythonから順に対象を外していることがわかります。
pipがどう版を選ぶのかについては、こちらで紹介しています。【関連記事】pipとは?
チームで版がそろわないことに注意¶
同じrequirements.txtでも、Pythonの版が違うと、入るSphinxの版が変わります。チームの中でPythonの版がそろっていないと、ドキュメントの見た目や警告が人によって違う、ということが起こりえます。
ドキュメントを作る環境も、Pythonの版とあわせてそろえておきましょう。主要なライブラリが古いPythonを外していく流れは、こちらでもまとめました。【関連記事】Python 3.10のサポート終了から2週間、主要ライブラリの対応状況
今のうちにやっておきたいこと¶
最後に、今回のニュースを踏まえて、確かめておきたいことを整理します。
| 使っているツール | やっておきたいこと |
|---|---|
| Material for MkDocs | 9.8.0に上げて、依存関係を固定したファイルも更新する |
| Material for MkDocs | 手元でZensicalを試し、自分のサイトがそのまま作れるか確かめる |
| Material for MkDocs | RSSやリダイレクトのプラグインを使うなら、自分で依存関係に書く |
| Sphinx | ドキュメントを作る環境のPythonの版を確かめ、チームでそろえる |
私は10年ほどエンジニアとして開発に関わってきましたが、社内の手順書サイトを作っていたツールの開発が止まり、気づいたときには新しいPythonで動かなくなっていたことがあります。終了日がはっきり示されている今回のケースは、むしろ計画を立てやすい、ありがたい知らせだと感じます。
ドキュメントは、コードに比べて後回しにされがちです。サポート終了の日付をカレンダーに書き込み、移行の作業も、普段の開発と同じように計画に入れておくと安心です。
まとめ¶
2026年10月24日、Material for MkDocs 9.8.0が公開され、2027年5月5日にサポートを終えることが明示されました。後継として、同じチームが作るZensicalが案内されています。
10月20日にはSphinx 9.2.0も公開され、Python 3.13以上が必要になりました。どちらのツールを使っている方も、自分の環境で一度動かして確かめておきましょう。
ここまでお読みいただきありがとうございました。