Open9

Sphinx と GitHub Pages によるドキュメント生成とホスティング

scasca

Sphinx のインストール

% pip install sphinx
scasca

Sphinx のセットアップ

% sphinx-quickstart <target>

sphinx-quickstart で Sphinx の初期設定を対話的に行うことができる。<target> で指定されたディレクトリの下に Sphinx のファイルが生成される。省略するとカレントディレクトリの下に作られる。今回は docs_src 以下にファイルを作る。

実行後、以下のようなファイルが生成される。

docs_src
├── Makefile
├── build
├── make.bat
└── source
    ├── _static
    ├── _templates
    ├── conf.py
    └── index.rst
scasca

ドキュメントの生成 (ビルド)

# docs_src ディレクトリ内で実行
% make html

build/html の下に HTML ファイルが生成される。

build/html
├── _sources
│   └── index.rst.txt
├── _static
│   ├── alabaster.css
│   ├── basic.css
│   ├── custom.css
│   ├── doctools.js
│   ├── documentation_options.js
│   ├── file.png
│   ├── language_data.js
│   ├── minus.png
│   ├── plus.png
│   ├── pygments.css
│   ├── searchtools.js
│   └── sphinx_highlight.js
├── genindex.html
├── index.html
├── objects.inv
├── search.html
└── searchindex.js
scasca

ビルド出力先の変更

いまプロジェクトディレクトリが以下のようになっていて、docs_src が Sphinx のルートディレクトリだとする。

sphinx-example
├── docs
└── docs_src

GitHub Pages にホスティングするため、HTML の出力先をデフォルトの docs_src/build/html から docs ディレクトリに変更したい。そこで Makefile に以下を追加する。

Makefile
html: Makefile
	@$(SPHINXBUILD) -b html "$(SOURCEDIR)" "../docs" $(SPHINXOPTS) $(O)

参考資料: GitHub Actionsを用いてGitHub Pagesへのデプロイを自動化する — Python製ドキュメンテーションビルダー、Sphinxの日本ユーザ会

scasca

GitHub Pages にホスティング

  • GitHub Pages の設定
    • Settings > Pages
    • Soruce を "Deploy from a branch" にする
    • ソースに "main" ブランチの "/docs" を指定して Save
  • Sphinx プロジェクトを GitHub に push

以上で、Sphinx で生成した HTML ファイルが GitHub Pages で見えるようになる。

scasca

次にやること:

  • GitHub Actions によるデプロイの自動化 (doc_src 以下を更新して push したら自動で html をビルドしてほしい)