Skip to content

Changelog

All notable changes to starlight-pydocs are recorded here. New work is added under Unreleased and rolled into a dated version section when a release is cut.

  • ✨ An agent skill with a setup checklist, shipped in the package at skills/starlight-pydocs/SKILL.md and shown on the docs site.
  • ✨ Works with starlight-codeblocks when a site installs it, with no configuration. Names in Python code blocks anywhere on the site link to their API reference pages (docstring examples to the pages of their own version), type links in signatures and parameter tables get the same hover card as code (what the type is, where it comes from, and where the link goes), long docstring examples collapse behind an expand button, and inline code in docstrings is highlighted as Python when the site has inline highlighting on. The symbols are published for other plugins at globalThis[Symbol.for('starlight-pydocs')].
  • 🐛 Fixed signatures rendering without syntax colours on sites that don’t install @astrojs/markdown-remark (the Astro 7.2+ default). Shiki is now a direct dependency. If your site added @astrojs/markdown-remark only for signature colours, you can remove it.

Metadata-only release: no code changes.

  • 🛠️ Reworked the npm keywords. astro-integration is gone: the default export is a Starlight plugin, so astro add starlight-pydocs would have wired up the wrong thing.
  • 🛠️ Published with npm provenance.
  • ✨ Syntax-highlighted signatures, in your markdown.shikiConfig themes. Cross-references stay links.
  • ✨ Long attribute values laid out across lines, folding behind a “Show more” toggle.
  • ✨ Annotation links to another site open in a new tab; links to your own objects show the target’s summary on hover.
  • ✨ Version labels linking to the matching GitHub, GitLab or Bitbucket release.
  • ✨ Every generated page served as Markdown at <path>.md too, for “Copy Markdown” buttons and agents. pageMarkdown: false turns it off.
  • ✨ listPydocsPages() from starlight-pydocs/pages, for share cards or an index of the generated pages.
  • 🛠️ Generated pages carry their own description, from the module’s docstring.
  • 🛠️ “Added in” is plain text beside the source link, not a badge.
  • 🐛 Fixed spacing throughout the generated pages on Starlight sites, and object names that looked like inline code.

First release. Python API reference documentation for Astro and Starlight sites, extracted with Griffe.

  • One reference page per Python module, on injected routes, with a sidebar tree, prev/next links, a table of contents and anchors that match mkdocstrings.
  • No Python needed on the docs host: griffe runs through uvx, or a pre-generated dump is read from a file or a URL.
  • Every docstring section griffe parses, in google, numpy, sphinx or auto style, rendered through the host site’s own markdown processor.
  • Type annotations linked to this site’s pages, to Python’s own documentation, or to any configured Sphinx inventory. [title][dotted.path] cross-references in prose resolve the same way.
  • Member selection that follows mkdocstrings: __all__, then griffe’s visibility flags, refined by include/exclude globs and filters. Inherited members are merged and badged with their origin.
  • Symbol search, plus symbols.json, objects.inv and llms.txt published per package.
  • <Autodoc name="mypkg.Thing" /> to document a single object inside a hand-written page, and a Content Layer loader for the whole surface.
  • Source links to GitHub, GitLab, Bitbucket or a URL template.
  • “Added in” badges, generated by extracting a list of git refs and comparing them with the current source.
  • Usable as a Starlight plugin or as a plain Astro integration, with component overrides, --pyd-* theme tokens and translations for thirteen languages.