"""Sphinx configuration for SciTeX Writer documentation."""
# For the full list of built-in configuration values, see the documentation:
# https://www.sphinx-doc.org/en/master/usage/configuration.html
# -- Path setup --------------------------------------------------------------
import os
import sys
sys.path.insert(0, os.path.abspath("../../src"))
# -- Project information -----------------------------------------------------
project = "SciTeX Writer"
copyright = "2025, Yusuke Watanabe"
author = "Yusuke Watanabe"
# Dynamic version from pyproject.toml
try:
from importlib.metadata import version as _get_version
release = _get_version("scitex-writer")
except Exception:
release = "0.0.0"
# -- General configuration ---------------------------------------------------
extensions = [
"sphinx.ext.autodoc",
"sphinx.ext.autosummary",
"sphinx.ext.napoleon",
"sphinx.ext.viewcode",
"sphinx.ext.intersphinx",
"sphinx.ext.coverage",
"sphinx_rtd_theme",
"myst_parser",
"sphinx_copybutton",
"sphinx_autodoc_typehints",
]
# Autodoc settings
autodoc_default_options = {
"members": True,
"member-order": "bysource",
"special-members": "__init__",
"undoc-members": True,
"exclude-members": "__weakref__",
}
# Mock imports for packages that may not be installed on RTD
autodoc_mock_imports = [
"fastmcp",
]
# Autosummary settings
autosummary_generate = True
# Napoleon settings for numpy/google style docstrings
napoleon_google_docstring = True
napoleon_numpy_docstring = True
napoleon_include_init_with_doc = True
napoleon_include_private_with_doc = True
napoleon_include_special_with_doc = True
napoleon_use_admonition_for_examples = True
napoleon_use_admonition_for_notes = True
napoleon_use_admonition_for_references = True
napoleon_use_ivar = False
napoleon_use_param = True
napoleon_use_rtype = True
napoleon_preprocess_types = False
napoleon_type_aliases = None
napoleon_attr_annotations = True
# Add any paths that contain templates here, relative to this directory.
templates_path = ["_templates"]
# List of patterns, relative to source directory, that match files and
# directories to ignore when looking for source files.
exclude_patterns = ["_build", "Thumbs.db", ".DS_Store", "to_claude/**"]
# The suffix(es) of source filenames.
source_suffix = {
".rst": "restructuredtext",
".md": "markdown",
}
# -- Options for HTML output -------------------------------------------------
html_theme = "sphinx_rtd_theme"
html_theme_options = {
"navigation_depth": 4,
"collapse_navigation": False,
"sticky_navigation": True,
"includehidden": True,
"titles_only": False,
"prev_next_buttons_location": "bottom",
}
# Add any paths that contain custom static files (such as style sheets) here,
# relative to this directory. They are copied after the builtin static files,
# so a file named "default.css" will overwrite the builtin "default.css".
html_static_path = ["_static"]
# RTD-specific configurations
html_title = f"{project} v{release}"
html_short_title = project
html_logo = None # Add path to logo if available
html_favicon = None # Add path to favicon if available
# Show "Edit on GitHub" links
html_context = {
"display_github": True,
"github_user": "ywatanabe1989",
"github_repo": "scitex-writer",
"github_version": "main",
"conf_py_path": "/docs/sphinx/",
}
# MyST parser configuration
myst_enable_extensions = [
"dollarmath",
"colon_fence",
"deflist",
"html_admonition",
"html_image",
"replacements",
"smartquotes",
"substitution",
"tasklist",
]
# -- Options for intersphinx extension ---------------------------------------
intersphinx_mapping = {
"python": ("https://docs.python.org/3", None),
}