auto-archiver/docs/source/conf.py

82 wiersze
3.0 KiB
Python
Czysty Zwykły widok Historia

2025-01-15 21:45:29 +00:00
# Configuration file for the Sphinx documentation builder.
# https://www.sphinx-doc.org/en/master/usage/configuration.html
import sys
import os
2025-01-15 21:45:29 +00:00
from importlib.metadata import metadata
2025-02-11 18:37:03 +00:00
sys.path.append(os.path.abspath('../scripts'))
from scripts import generate_module_docs
# -- Project Hooks -----------------------------------------------------------
# convert the module __manifest__.py files into markdown files
generate_module_docs()
# -- Project information -----------------------------------------------------
2025-01-15 21:45:29 +00:00
package_metadata = metadata("auto-archiver")
project = package_metadata["name"]
2025-02-12 11:16:17 +00:00
authors = "Bellingcat"
2025-01-15 21:45:29 +00:00
release = package_metadata["version"]
language = 'en'
2025-01-15 21:45:29 +00:00
# -- General configuration ---------------------------------------------------
extensions = [
"myst_parser", # Markdown support
2025-01-15 21:45:29 +00:00
"autoapi.extension", # Generate API documentation from docstrings
"sphinxcontrib.mermaid", # Mermaid diagrams
2025-01-15 21:45:29 +00:00
"sphinx.ext.viewcode", # Source code links
2025-02-11 19:42:03 +00:00
"sphinx_copybutton",
2025-01-15 21:45:29 +00:00
"sphinx.ext.napoleon", # Google-style and NumPy-style docstrings
"sphinx.ext.autosectionlabel",
2025-01-15 21:45:29 +00:00
# 'sphinx.ext.autosummary', # Summarize module/class/function docs
]
templates_path = ['_templates']
exclude_patterns = []
# -- AutoAPI Configuration ---------------------------------------------------
autoapi_type = 'python'
2025-02-11 14:37:29 +00:00
autoapi_dirs = ["../../src/auto_archiver/core/", "../../src/auto_archiver/utils/"]
# get all the modules and add them to the autoapi_dirs
autoapi_dirs.extend([f"../../src/auto_archiver/modules/{m}" for m in os.listdir("../../src/auto_archiver/modules")])
2025-01-15 21:45:29 +00:00
autodoc_typehints = "signature" # Include type hints in the signature
autoapi_ignore = ["*/version.py", ] # Ignore specific modules
2025-02-11 14:37:29 +00:00
autoapi_keep_files = True # Option to retain intermediate JSON files for debugging
2025-01-15 21:45:29 +00:00
autoapi_add_toctree_entry = True # Include API docs in the TOC
autoapi_python_use_implicit_namespaces = True
autoapi_template_dir = "../_templates/autoapi"
2025-01-15 21:45:29 +00:00
autoapi_options = [
"members",
"undoc-members",
"show-inheritance",
"imported-members",
]
# -- Markdown Support --------------------------------------------------------
myst_enable_extensions = [
"deflist", # Definition lists
"html_admonition", # HTML-style admonitions
"html_image", # Inline HTML images
"replacements", # Substitutions like (C)
"smartquotes", # Smart quotes
"linkify", # Auto-detect links
"substitution", # Text substitutions
]
myst_heading_anchors = 2
myst_fence_as_directive = ["mermaid"]
2025-01-15 21:45:29 +00:00
source_suffix = {
".rst": "restructuredtext",
".md": "markdown",
}
# -- Options for HTML output -------------------------------------------------
html_theme = 'sphinx_book_theme'
2025-02-12 11:16:17 +00:00
html_static_path = ["../_static"]
html_css_files = ["custom.css"]
2025-01-15 21:45:29 +00:00
copybutton_prompt_text = r">>> |\.\.\."
copybutton_prompt_is_regexp = True
copybutton_only_copy_prompt_lines = False