設定例 (単純)
source\copy.pyで基本的な設定を行うHTML のソースは reStructuredText(
.rst)か Markdown(.md)で作るsource\index.rst/.mdに、他の.rst/.mdへのリンクを張るAPI リファレンスでは、Python ソースファイルのモジュールを読み込み、docstring を使って自動出力する
Python ソースファイルを import できるように、
conf.pyでsys.pathを設定するPython ソースファイルが階層構造になっている場合、``__init__.py``(空ファイルでOK)を置いて package にしておくと、パッケージツリーとして import できる
source/conf.py の例
import os
import sys
# conf.py から見た相対パスで、ソースコードのルートを指定する
current_dir = os.path.abspath(os.path.dirname(__file__))
sys.path.insert(0, os.path.abspath('..'))
sys.path.insert(0, current_dir)
sys.path.insert(0, os.path.join(current_dir, 'page070schrodinger1d'))
project = '第30回結晶工学セミナー(2025) 神谷担当'
copyright = '2026, T.Kamiya'
author = 'T.Kamiya'
release = ''
templates_path = ['_templates']
html_static_path = ['_static']
exclude_patterns = ["build", "_build", "Thumbs.db", ".DS_Store", "__pycache__"]
autosummary_generate = True
language = 'ja'
# API リファレンスのオブジェクト名の前にモジュール名を表示しない
add_module_names = False
# 拡張機能の追加
extensions = [
'sphinx.ext.autodoc', # ソースコードからドキュメント生成
'sphinx.ext.napoleon', # Google/NumPyスタイルをサポート
'sphinx.ext.viewcode', # ソースコードへのリンクを表示
'sphinx.ext.mathjax', # docstring の LaTeX をレンダリング
'myst_parser', # Markdown (.md) をサポート
'sphinx_rtd_theme', # Read the Docs テーマ
]
# pandocの数式書式 $$LaTeX$$ に対応させる
myst_enable_extensions = [
"dollarmath",
"amsmath",
]
# Markdown ファイルの拡張子を認識させる
source_suffix = {
'.rst': 'restructuredtext',
'.md': 'markdown',
}
# テーマ設定
html_theme = 'sphinx_rtd_theme'
# サイドバーやナビゲーションの設定
html_theme_options = {
'navigation_depth': 4,
'collapse_navigation': False,
}
# 全ページでサイドバーを表示
html_sidebars = {
"**": ["sidebar-nav-bs"]
}
# GitHub 連携設定
html_context = {
'display_github': True,
'github_user': "yourname",
'github_repo': "yourrepo",
'github_version': "main",
'conf_py_path': "/docs/",
'doc_path': "docs",
}
source/index.rst の例
注意:
インデントは 3 つ以上(ディレクティブ
.. toctree::などの文字の始まりに合わせる)空行は重要
書式:
1行目: Webページのトップタイトル
1行目と同じ長さの
=空行
toctree: 左サイドバーメニューの設定インデント 3 つ: メニューの設定
空行
インデント 3 つ: メニューのリンク先。ワイルドカードが使える。表示順を制御する場合は、連番を付けるのが簡単
プロジェクト全体ドキュメント
========================
.. toctree::
:maxdepth: 2
:caption: メインメニュー:
:hidden:
:glob:
*_page/index
source/page010mu_fit の例
ソースコード、マニュアル Markdown、
__init__.pyを置くindex.rstを置き、source/index.rstからリンクを張るindex.rstには、マニュアル Markdown、API リファレンスページ(api.rst)などへのリンクを張る
source/page010mu_fit/index.rst の例
書式:
1行目: Webページのトップタイトル
1行目と同じ長さの
=空行
toctree: 左サイドバーメニューの設定インデント 3 つ: メニューの設定
空行
インデント 3 つ: メニューのリンク先。ワイルドカードが使える。表示順を制御する場合は、連番を付けるのが簡単
mu_fit Project ドキュメント
=====================
.. toctree::
:maxdepth: 1
mu_fit_usage
api
source/page010mu_fit/mu_fit_usage
ソースコードから生成AIで docstring を追加する。
プロンプト例
ソースファイルを添付することを想定。
システム指示:
あなたはPythonのドキュメンテーションエンジニアです。 添付するソースコードの内容を解析し、Sphinx (reStructuredText) 形式に最適化された高品質なDocstringのみを生成してください。
【絶対遵守ルール】
既存のロジック(実行コード)は一切変更しないこと。
出力は、既存のコードにDocstringを挿入した「完成版のコード全体」として出力すること。
各関数・クラスの冒頭に、適切な
"""Docstring"""を追加すること。
【Docstringの構成要素】
概要: 1行で何をする関数か記述。
詳細説明: 必要に応じて動作の詳細を記述。
引数 (Parameters):
:param name:形式で型と説明を記述。戻り値 (Returns):
:returns:形式で型と説明を記述。関連リンク: モジュールの冒頭に、別のドキュメントへのリンク(例:
:doc:`usage`)を含めること。
source/page010mu_fit/api.rst の例
書式:
1行目: Webページのトップタイトル
1行目と同じ長さの
=空行
必要であれば
.. currentmodule:: 010mu_fit_page.mu_fit空行
.. automodule:: 010mu_fit_page.mu_fit:members:
api.rst の例
mu_fit プログラム仕様
===================
.. currentmodule:: 010mu_fit_page.mu_fit
.. automodule:: 010mu_fit_page.mu_fit
:members:
デフォルトで、API リファレンスのオブジェクト名に automodule のモジュール名が追加される。
これを抑制する場合、conf.py で以下を設定する。
# オブジェクト名の前にモジュール名を表示しないようにする
add_module_names = False