Changelog

To install the unreleased gp-sphinx version, see developmental releases.

pip:

$ pip install --user --upgrade --pre gp-sphinx

uv:

$ uv add gp-sphinx --prerelease allow

gp-sphinx 0.0.1 (unreleased)

Features

  • sphinx-autodoc-fastmcp: new Sphinx extension for FastMCP tool docs (card-style desc layouts, safety badges, MyST directives, cross-reference roles)

  • sphinx-autodoc-badges: shared badge node (BadgeNode), builder API (build_badge, build_badge_group, build_toolbar), and base CSS layer shared by sphinx-autodoc-fastmcp, sphinx-autodoc-api-style, and sphinx-autodoc-pytest-fixtures (#13)

  • sphinx-autodoc-badges: explicit size variants xs / sm / lg / xl via build_badge(size=...) and BadgeNode(badge_size=...) — compose with any fill, style, or color class (#13)

  • Initial release of gp_sphinx shared documentation platform

  • merge_sphinx_config() API for building complete Sphinx config from shared defaults

  • Shared extension list, theme options, MyST config, font config

  • Bundled workarounds (tabs.js removal, spa-nav.js injection)

  • sphinx-autodoc-pytest-fixtures: Fixture tables now resolve TypeAlias return annotations — alias names are preserved and linked rather than expanding to the underlying union or generic type (#9)

Bug fixes

  • Load full weight range [300, 400, 500, 600, 700] for both IBM Plex Sans and IBM Plex Mono (badges render in monospace at font-weight: 700, Furo code blocks use 300, and intermediate weights inherit from surrounding context — previously only Sans had the full set)

  • Replace font-weight: 650 with 700 in badge CSS across sphinx-autodoc-api-style, sphinx-autodoc-pytest-fixtures, sphinx-gptheme, and docs (650 is not a standard Fontsource weight, so browsers were synthesizing bold instead of using the real font file)

  • Badge background colors, border colors, and dotted-underline tooltips lost after BadgeNode (<span>) replaced <abbr> in sphinx-autodoc-api-style and sphinx-autodoc-pytest-fixtures; restored via element-agnostic CSS selectors and correct fill defaults (#13)

  • sphinx-argparse-neo: Namespace implicit section targets (section["names"]) by id_prefix in render_usage_section, render_group_section, and _create_example_section so multi-page docs that embed .. argparse:: via MyST {eval-rst} no longer emit duplicate label warnings for usage, options, positional arguments, and cross-page examples targets (#16)

Workspace packages

  • sphinx-autodoc-badges — Shared badge node, builders, and base CSS for safety tiers, scope, and kind labels. Extensions add color layers on top; TOC sidebar shows compact badges with emoji icons and subtle inset depth on solid pills (#13)

  • sphinx-autodoc-pytest-fixtures — Sphinx autodocumenter for pytest fixtures. Registers py:fixture as a domain object type with autofixture:: for single-fixture docs, autofixtures:: for bulk module discovery, and autofixture-index:: for summary tables. Fixtures render with scope/kind/autouse badges, classified dependency lists, reverse-dep tracking, and auto-generated usage snippets. Frozen dataclasses for pickle-safe incremental builds, parallel-safe, WCAG AA badge contrast, and pytest 9+ compatible. New: doc-pytest-plugin directive generates a standard pytest plugin page (install block, pytest11 autodiscovery note, fixture summary and reference) from a single directive call. Optional :project:, :summary:, :tests-url:, and :install-command: options; body is free-form. Use autofixture-index + autofixtures directly when custom layout is needed.

  • sphinx-fonts — Self-hosted web fonts via Fontsource CDN. Downloads at build time, caches locally, and injects @font-face CSS with preload hints and fallback font-metric overrides for zero-CLS loading.

  • sphinx-gptheme — Furo child theme for git-pull projects. Custom sidebar, footer icons, SPA navigation, and CSS variable-driven IBM Plex typography.

  • sphinx-argparse-neo — Argparse CLI documentation extension with .. argparse:: directive, epilog-to-section transformation, and Pygments lexers for argparse help/usage output.