Repository navigation
Conversation
The docs had no logo or favicon. They now have the cosmology-api
organisation's mark, from its avatar: a hexagon holding three linked cubes,
near-white on slate, with the cubes drawn larger so they stay legible as a
favicon. docs/_static/make_logo.py writes it as an SVG (1.2 KB), which
conf.py uses as the logo and favicon; a PNG at any size on request:
uv run docs/_static/make_logo.py --size 2048 big.png
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #145 +/- ##
=========================================
Coverage 100.00% 100.00%
=========================================
Files 14 14
Lines 314 314
=========================================
Hits 314 314 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
There was a problem hiding this comment.
Copilot review overview
🟢 Approval recommended
It is a self-contained, low-risk docs-only change whose output I verified reproduces exactly, with valid API usage and only one optional, non-blocking operational note.
Review effort: Balanced
Findings: 1
Open (1)
What changed in this PR
This PR gives the Sphinx documentation a logo and favicon, which were previously unset in conf.py. It adds a small, dependency-light Python script that draws the cosmology-api organisation's mark (a hexagon with three linked cubes, near-white on slate) and writes it as a compact SVG by default, with an optional PNG path rendered via resvg-py (declared in a PEP 723 inline-metadata header). The committed favicon.svg is the script's output and is wired into both the sidebar logo and the favicon.
Changes:
- Add
docs/_static/make_logo.py, a self-contained generator that emits the logo as SVG (stdlib only) or PNG (--size, viaresvg-py). - Commit the generated
docs/_static/favicon.svg(verified to be reproduced byte-for-byte by the script). - Set
html_logoandhtml_faviconindocs/conf.pyto_static/favicon.svg.
| File | Description |
|---|---|
| docs/_static/make_logo.py | New PEP 723 script that computes hexagon geometry and writes the logo as SVG (default) or PNG; verified to regenerate the committed SVG exactly. |
| docs/_static/favicon.svg | The committed logo/favicon asset produced by the script. |
| docs/conf.py | Points html_logo and html_favicon at the new asset, reusing the existing html_static_path. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
html_static_path copies everything in docs/_static/, so make_logo.py was published as _static/make_logo.py. exclude_patterns also filters that copy; the pattern needs the **/ prefix, since Sphinx matches a top-level file as ./make_logo.py. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Its logo, mirrored from cosmology-api/cosmology.api's docs/_static/favicon.svg (cosmology-api/cosmology.api#145) by scripts/sync-software-figures.mjs: drawn 512 px wide and saved as WebP at quality 85. Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

The docs had no logo or favicon;
conf.pyset neither. This gives them the cosmology-api organisation's mark, from its avatar: a hexagon holding three linked cubes, near-white (#f3f3f3) on slate (#303841). The cubes are drawn larger than on the avatar, so they stay legible at favicon size.docs/_static/make_logo.pywrites it:resvg-py, declared in the script's PEP 723 header, souv runfetches it.conf.pysetshtml_logoandhtml_faviconto_static/favicon.svg.html_static_pathalready includes_static.Checked:
docs/.sphinx-buildwith thedocsextra builds without warnings and puts the SVG in both the favicon link and the sidebar logo.🤖 Generated with Claude Code