Sphinx#
- sphinx は Python のドキュメント生成ツール
- reStructredText で記述されたファイルをHTML/PDFなど様々形式で出力可能
- rst の書方はMaterial for Sphinxrst Cheatsheetを参考に
Getting Started#
Sphinx をインストール
- ファイルを格納する任意のディレクトリを作成し、移動
- sphinx-quickstart で必要なファイルを生成
上記実行後、いくつか質問が表示されるので回答していく。内容は以下の通り
質問 | 質問の意味 | 回答例 |
---|---|---|
Separate source and build directories (y/n) [n]: | ソースファイルのフォルダーとビルドして作成されるファイルなどを別々のフォルダーにしますか | n |
Project name: | プロジェクト名を入力してください | Knowledge |
Author name(s): | 作成者名を入力してください | Taro |
Project release []: | リリース番号(バージョン番号)を入力してください | 1 |
Project language [en]: | 言語を指定してください | ja |
上記手順後、ディレクトリに以下ファイルが生成される。(Separate source and build directories (y/n) [n]でnを選択した場合)
ファイル名 | 説明 |
---|---|
conf.py | ビルド設定ファイル |
index.rst | .reST記法で書かれた原稿の雛形 |
make.bat | ビルドスクリプト(Windows) |
Makefile | ビルドスクリプト(その他環境用) |
_build | 成果物の出力ディレクトリ |
_static | 静的ファイルを配置するディレクトリ |
_templates | HTMLテンプレート用ディレクトリ |
- 原稿となるドキュメントを作成する
- デフォルトで
index.rst
が用意されているが rst記法は面倒なので 後述の設定にて markdown を使用できるようにして、Markdown記法にて対応 - doc ディレクトリを作成し、その中でドキュメントを管理する方法がおすすめ
- doc ディレクトリ直下には
index.md
を配置して目次管理
プロジェクト直下のディレクトリで以下コマンド入力して ドキュメントを ビルドする
実行後は_buildディレクトリにファイルが生成される
設定ファイル:conf.py#
Markdown を使う#
Markdown ベースのドキュメントをサポートするために、Sphinx はMyST-Parserを使用できます。 MyST-Parser は、 CommonMark Markdown フレーバーを解析するための Python パッケージであるmarkdown-it-pyへのブリッジです。 引用: sphinx - Markdown
-
MyST-Parserをインストール
-
conf.py 内の extensions に myst_parserを 追加
Info
MyST-Parser は Sphinx 2.1 以降でサポート
- source_suffix に
.md
拡張子を追加
テーマを変更する#
- HTML Theming
- Material for Sphinx を使用
-
install
-
conf.py でテーマを指定
option
conf.py
html_theme = 'sphinx_material'
# Material theme options (see theme.conf for more information)
html_theme_options = {
# Set the name of the project to appear in the navigation.
'nav_title': 'Project Name',
# Set you GA account ID to enable tracking
'google_analytics_account': 'UA-XXXXX',
# Specify a base_url used to generate sitemap.xml. If not
# specified, then no sitemap will be built.
'base_url': 'https://project.github.io/project',
# Set the color and the accent color
'color_primary': 'blue',
'color_accent': 'light-blue',
# Set the repo location to get a badge with stats
'repo_url': 'https://github.com/project/project/',
'repo_name': 'Project',
# Visible levels of the global TOC; -1 means unlimited
'globaltoc_depth': 3,
# If False, expand all TOC entries
'globaltoc_collapse': False,
# If True, show hidden TOC entries
'globaltoc_includehidden': False,
}