"""Sphinx documentation configuration for tmuxp."""

from __future__ import annotations

import pathlib
import sys

# Get the project root dir, which is the parent dir of this
cwd = pathlib.Path(__file__).parent
project_root = cwd.parent
src_root = project_root / "src"

sys.path.insert(0, str(src_root))
sys.path.insert(0, str(cwd / "_ext"))  # for local aafig extension

# package data
about: dict[str, str] = {}
with (src_root / "tmuxp" / "__about__.py").open() as fp:
    exec(fp.read(), about)

from gp_sphinx.config import make_linkcode_resolve, merge_sphinx_config  # noqa: E402

import tmuxp  # noqa: E402

conf = merge_sphinx_config(
    project=about["__title__"],
    version=about["__version__"],
    copyright=about["__copyright__"],
    source_repository=f"{about['__github__']}/",
    docs_url=about["__docs__"],
    source_branch="master",
    light_logo="img/tmuxp.svg",
    dark_logo="img/tmuxp.svg",
    extra_extensions=[
        "sphinx_autodoc_api_style",
        "aafig",
        "sphinx_autodoc_argparse.exemplar",
    ],
    intersphinx_mapping={
        "python": ("https://docs.python.org/", None),
        "libtmux": ("https://libtmux.git-pull.com/", None),
    },
    linkcode_resolve=make_linkcode_resolve(tmuxp, about["__github__"]),
    # tmuxp-specific overrides
    theme_options={"mask_icon": "/_static/img/tmuxp.svg"},
    html_extra_path=["manifest.json"],
    html_favicon="_static/favicon.ico",
    aafig_format={"latex": "pdf", "html": "gif"},
    aafig_default_options={"scale": 0.75, "aspect": 0.5, "proportional": True},
    rediraffe_redirects="redirects.txt",
)
globals().update(conf)
