設定例 (単純)

  • source\copy.py で基本的な設定を行う

  • HTML のソースは reStructuredText(.rst)か Markdown(.md)で作る

  • source\index.rst / .md に、他の .rst / .md へのリンクを張る

  • API リファレンスでは、Python ソースファイルのモジュールを読み込み、docstring を使って自動出力する

    • Python ソースファイルを import できるように、conf.pysys.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のみを生成してください。

【絶対遵守ルール】

  1. 既存のロジック(実行コード)は一切変更しないこと。

  2. 出力は、既存のコードにDocstringを挿入した「完成版のコード全体」として出力すること。

  3. 各関数・クラスの冒頭に、適切な """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