Releases: posit-dev/great-docs
Release list
v0.16.0
Great Docs v0.16.0 expands language support, improves build performance, and refines how docstrings are rendered. This release introduces Go CLI documentation generation, a shortcode for including source code files with automatic syntax highlighting, and significantly faster builds through caching and parallel rendering. Docstrings now support canonical directives that render as styled callouts, and the announcement banner gains a configurable position option.
New Features
- Go CLI documentation — Go projects can now generate a complete CLI reference automatically. Great Docs detects Go projects via
go.mod, builds the binary, and extracts the full command tree through--helpflags, supporting Cobra, urfave/cli, and any Go CLI framework. (#263) - Code includes — The
{{< include >}}shortcode now handles code files intelligently, auto-detecting the language and wrapping content in a syntax-highlighted code block. Supportslinesfor showing specific ranges andlangfor overriding language detection. (#270) - Announcement banner positioning — The announcement banner now accepts a
positionoption ("above-navbar"or"below-navbar") to control where it appears relative to the navigation bar. (#286) - Canonical docstring directives — Docstrings now support directives like
%note,%warning,%tip,%deprecated, and%versionaddedthat automatically render as styled Quarto callouts, eliminating the need for raw markup. (#284)
Enhancements
- Build performance is significantly improved through per-build caching of package introspection and parallel multi-version rendering with bounded worker pools. (#271, #274)
- Event handlers are now managed through a hook registry that coordinates execution by priority, replacing hardcoded sequences and enabling cleaner extensibility. (#259)
%nodocand%seealsodirectives are now handled during object resolution instead of post-render HTML manipulation, improving reliability and consistency. (#256, #257)- API reference generation is automatically skipped for non-Python projects, avoiding unnecessary prompts for a package name. (#264)
- Authored frontmatter titles on
index.qmdpages are now preserved through the build process. (#260)
Bug Fixes
- Dark mode assets are now correctly copied to the output directory. (#269)
- Go CLI command descriptions are no longer truncated mid-word. (#265)
- Enum documentation now renders correctly. (#279)
- The
SKILL.mdinstall command now uses the distribution name of the library. (#280) - Sidebar items are now sorted correctly. (#283)
- Frozen JS files now consistently end with a newline. (#285)
- A failing GDG test spec was corrected. (#278)
Documentation
- Added documentation on macOS dynamic library registration. (#275)
v0.15.0
Great Docs v0.15.0 provides improvements to API documentation accuracy, site configuration options, and SEO. This release introduces a new package dependencies metadata page that automatically documents package requirements, improves API reference handling for versioned documentation, refactors the API reference pipeline for better maintainability, and adds new configuration options for CLI reference pages and CSS customization.
New Features
- Package dependencies metadata page — Automatically generate a metadata page that documents package dependencies and version information, providing visitors with clear visibility into package requirements. (#255)
Enhancements
- CLI reference pages now support an index page with configurable options for better organization and navigation of command documentation. (#244)
- Site CSS customization options are now properly copied to the build directory during site generation. (#252)
Bug Fixes
- GT tables now display correctly in dark mode with proper CSS styling. (#235)
- Skill markdown files are no longer rendered in the documentation site by enumerating specific Quarto render globs. (#236)
- Dataclass and class definitions with methods now display empty
ClassName()signatures correctly. (#238) - YAML frontmatter is no longer embedded in rendered API documentation. (#239)
- Dataclass fields can now be documented using either
AttributesorParameterssections without causing duplication. (#241) - API reference pages for versioned (tagged) documentation are now complete and include all documented symbols. (#240)
- Source code links in API documentation are now generated correctly. (#245)
- The importable module name is now used instead of the PyPI project name for accurate package identification. (#251)
- Search engine crawlers now receive proper references to
llms.txtandllms-full.txtin the robots.txt file. (#254)
Documentation
- Added comprehensive quartodoc migration guide to the API documentation for users transitioning from quartodoc to Great Docs. (#253)
Maintenance
v0.14.1
Great Docs v0.14.1 is a maintenance release focused on bug fixes and cross-platform stability. It resolves a number of rendering and configuration issues (including navbar color CSS leaking on Firefox, preview hangs in Safari, and margin sidebar placement) alongside fixes for Windows subprocess encoding, custom page tags, and project-level bibliography forwarding. The site header has also been improved for mobile devices.
Enhancements
- Improved the site header layout and behavior on mobile devices. (#229)
Bug Fixes
navbar_color:CSS no longer leaks onto the root element, fixing a rendering issue seen on Firefox. (#233)- Project-level bibliography is now correctly forwarded so citations resolve as expected. (#234)
- Fixed preview hangs that occurred in the Safari browser. (#223)
- The metadata margin sidebar is now placed after the body, correcting its positioning. (#224)
- Tags now render correctly on custom pages. (#225)
- Section files are now copied correctly. (#226)
- Removed 404 errors seen with helper scripts. (#222)
- Subprocess pipes are now decoded as UTF-8 on Windows, preventing encoding errors. (#217)
- Fixed a
pypi: falsebug where thepackage_namewas mishandled. (#232) hero_namenow correctly returnsFalseinstead ofNonewhen set toFalse. (#221)
New Contributors
- @amyheather made their first contribution in #221
v0.14.0
Great Docs v0.14.0 introduces a full-featured lightbox for images. Add a single .lightbox class to any image (or set lightbox: auto on a page) and readers can expand it into a focused, full-screen view with zoom and panning, swipeable galleries, captions and credits, dark-mode image variants, numbered annotations, before/after comparison sliders, and a toolbar for copying, downloading, and deep-linking images. The assets load automatically on every site, so there is nothing to install or enable.
New Features
- Lightbox — Any image marked with
.lightboxopens into a full-screen view with zoom (100–400%) and drag-to-pan. Enable it per image with the.lightboxclass, or per page withlightbox: auto(opting individual images out with.nolightbox). (#216) - Galleries — Images sharing a
groupvalue bind into a gallery that readers page through with arrow buttons, keyboard keys, a filmstrip, and touch swipes, with optional looping andautoplay. A.lightbox-galleryfenced div collapses a set into a compact stacked-photo cover with a count badge. (#216) - Annotations — Overlay numbered, tooltip-bearing markers on an image via an
annotationsJSON array; markers stay anchored on both the thumbnail and the enlarged view. (#216) - Before/after comparison — A
{{< compare >}}shortcode (or.lightbox-comparediv) stacks two images behind a draggable divider, with horizontal or vertical split and a configurable start position. (#216) - Dark-mode image variants — Opt in with a
darkattribute or a.light/.darkfilename convention to swap to a dark-optimized image live when the reader toggles themes. (#216) - Captions, credits, and responsive sources — Add
captionandcreditlines, and serve sharper images in the enlarged view with standardsrcset/sizesor an explicitfull-src. (#216) - Toolbar and deep linking — Copy an image to the clipboard (rasterized to PNG, so SVGs paste cleanly), download it using its alt text as the filename, or copy a
#lightbox=deep link that reopens the page on that exact image. (#216)
Documentation
- Added a new "Lightbox" user guide page covering quick start, galleries, annotations, comparison sliders, dark-mode variants, deep linking, accessibility, and the full attribute reference. (#216)
v0.13.1
Great Docs v0.13.1 is a maintenance release focused on rendering correctness and polish. Key fixes address HTML table styling preservation, mobile sidebar scrolling, and callable attribute documentation. The license page and homepage sidebar also received a few presentation upgrades.
Enhancements
- The license page now displays comprehensive SPDX metadata including permissions, conditions, limitations, and interactive badge tooltips. (#209)
- The homepage right sidebar now gets external link indicators. (#210)
- Various package build improvements for reliability and maintainability. (#206)
Bug Fixes
- Pre-styled HTML tables (e.g., from Great Tables) are no longer overwritten by Quarto's Bootstrap styling; table processing is disabled site-wide. (#205)
- The mobile "On This Page" sidebar now scrolls reliably to sections using precise position calculations instead of
scrollIntoView(). (#208) - Callable attributes defined as
method = some_functionare now correctly promoted to full function documentation. (#204) - MCP reference page generation now supports FastMCP instances in addition to the standard
mcp.server.Server. (#198) - MCP generation state is properly tracked and stale references are cleaned up between builds. (#197)
- Fixed a
UnicodeEncodeErrorcrash on Windows systems with limited console encoding. (#201, @chriscarrollsmith) - Duplicate page headings no longer appear on single-object API pages. (#194, @bschwedler)
Maintenance
- Python 3.14 added to CI matrix and package classifiers. (#203)
New Contributors
- @chriscarrollsmith made their first contribution in #201
v0.13.0
Great Docs v0.13.0 introduces automatic reference documentation for MCP (Model Context Protocol) servers. Packages that expose MCP tools, resources, and prompts now get fully generated reference pages integrated into the documentation site, making AI agent capabilities discoverable by both humans and machines.
New Features
- MCP server documentation — Automatically generates reference pages for MCP server capabilities (tools, resources, prompts, and resource templates) by introspecting your server module. Pages include parameter types, defaults, required markers, and are styled consistently with existing API reference docs. A
.well-known/mcp.jsonmanifest is also generated for client auto-discovery. (#195, #196)
v0.12.0
Great Docs v0.12.0 introduces Termshow, a fully integrated terminal recording and playback system for embedding interactive terminal demos directly in your documentation. Beyond this major addition, this release provides build reliability improvements (including automatic retry on transient errors and versioned-site validation) along with flexible PyPI link configuration and smarter Python version detection for CI workflows.
New Features
- Termshow — Record, edit, and render interactive terminal sessions as SVG-based players embedded in documentation pages. Includes CLI commands for recording (
termshow record), editing via a web-based editor (termshow edit), and rendering to SVG frames, with support for chapters, annotations, and visual highlight overlays. (#183, #185, #186, #187, #189, #191, #192, #193) - PyPI URL config key — New
pypiconfiguration option to control package links: set toTruefor auto-detection,Falseto disable, or pass a custom URL string for private registries (#179). (#180)
Bug Fixes
- Build performance improved with per-build caches for package introspection, avoiding redundant work across rendering phases (#172). (#174)
- Quarto renders now automatically retry on transient filesystem errors instead of failing silently. (#176)
- Version expression comparison now correctly handles complex expressions with operators (
>=,<) and comma-separated tags. (#175) - API objects are now categorized in a single batch call, producing accurate type badges in
_object_types.json. (#177) - Python version is now auto-detected from
pyproject.toml'srequires-pythonfor GitHub Pages deployment workflows. (#178) - Pre-render and post-render validation added for versioned sites, catching missing
.qmdfiles and failed HTML output early (#181). (#188)
Documentation
- Added guidance on the
site_urlsetting for proper link resolution in deployed sites. (#182)
v0.11.0
Great Docs v0.11.0 is a major release focused on build performance, CLI documentation, and skills management. You can now build documentation sites directly from remote repos, freeze expensive code cell outputs to speed up subsequent builds, and automatically generate Click CLI reference pages. This release also introduces collapsible details sections, mobile-friendly page navigation, and the ability to publish multiple AI agent skills from a single project.
New Features
- Skills overhaul — Skills documentation has been reworked to support multiple named skills, each with its own SKILL.md, configured under
skill.skills. The Skills page now features a sticky switcher bar for toggling between them, and each skill is individually installable via the.well-known/agent-skills/discovery endpoint. (#162, #164, #165, #171) - Click CLI documentation — Automatically generate rich, sectioned reference pages for Click-based CLIs with usage signatures, typed options, and descriptions extracted from code. Each command page now includes structured documentation alongside a collapsible
--helpoutput view. (#169, #173) - Freezing/caching of outputs — Cache notebook execution results in a
_freeze/directory so rebuilds skip re-computation. Thegreat-docs freezecommand lets you re-execute specific pages on demand,--infoshows cache status across all pages, and thefreezeconfig option (autoortrue) controls whether Great Docs re-renders only when sources change or always uses the cache. (#158) - 'On This Page' listing on mobile — A floating button on mobile viewports opens a compact table-of-contents panel, giving readers quick access to page sections that would otherwise require much scrolling to find. (#168)
- Mock code cells — Split displayed code from executed code in a single cell using
#| source-code: mock, letting readers see clean examples while hiding setup or scaffolding logic. (#161) - Collapsible details component — Add expandable content sections using
::: {.details}fenced divs with smooth animations, optional icons, callout-style coloring, and accordion grouping. (#166) - Build site from repo — Clone and build documentation for any Git-hosted package with
great-docs build --from-repo, handling environment setup, dependency installation, and optional preview automatically. (#153) - Page-level build timings — Every build now records per-page render durations in a
build-timings.jsonartifact, and thegreat-docs timingscommand surfaces the slowest pages to help identify bottlenecks. (#159) site_urloption — New configuration option for sites deployed to subdirectories or multi-version hosts, ensuring correct root-relative asset paths without broken styles or navigation. (#160)
Enhancements
- Links to pages with numeric ordering prefixes (e.g.,
01-intro.qmd) now resolve correctly despite the prefix being stripped for clean URLs. (#167)
Bug Fixes
v0.10.0
Great Docs v0.10.0 introduces two powerful data display tools (Table Previews and Table Explorer) for embedding static and interactive tables directly in documentation pages. This release also adds two new shortcode extensions (Horizontal Rules and Keyboard Keys), a new inline_methods config option for controlling API reference page splitting, and several improvements to the homepage, sidebar, and Table Explorer UX.
New Features
- Table Previews — New
tbl_preview()function and{{< tbl-preview >}}shortcode that render self-contained HTML table previews from almost any data source (Polars, Pandas, CSV, Parquet, Arrow, and more). Each preview includes a colored type badge, compact dtype labels, row-number gutters, head/tail splitting for large tables, and missing-value highlighting. Output is JavaScript-free and works identically in light and dark mode. (#134) - Table Explorer — New
tbl_explorer()function and{{< tbl-explorer >}}shortcode that generate fully interactive table widgets with sorting, token-based filtering, pagination, column toggling, copy-to-clipboard, and CSV download. Accepts the same data sources astbl_preview()and embeds all data as inline JSON with a static fallback. (#137) - Horizontal Rules — New
{{< hr >}}shortcode for decorative horizontal rules with four line styles, eight palette colors (plus custom CSS colors), adjustable thickness and width, embedded text labels, and nine ready-made presets including animated gradients. (#143) - Keyboard Keys — New
{{< keys >}}shortcode that renders styled keyboard key caps with a 3D border effect, monospace font, and dark-mode support. Handles single keys, multi-key combos withshortcut=syntax, and platform-aware rendering that shows macOS symbols (⌘,⌥,⇧) or Windows key names automatically. (#145)
Enhancements
- The
row_index_offsetparameter ontbl_preview()lets you control the starting row number (e.g., set to1for 1-based numbering). (#136) tbl_explorer()now conserves the configured size across interactions, preventing layout shifts when sorting, filtering, or paginating. (#138)- The section sidebar in desktop view now floats as a pinned navigation panel with independent scroll containment, gradient scroll affordances, and auto-scrolling to the active page. (#144)
- The Table Explorer column toggle now uses a responsive icon-plus-text button that collapses gracefully on smaller screens. (#147)
- New
inline_methodsconfig option controls whether class methods are inlined on the parent class page or split to separate pages. Acceptstrue(always inline),false(always split), or an integer threshold (default: 5). (#139)
Bug Fixes
- Inherited methods are now rendered correctly when using
include_inherited: trueor explicitmemberslists in the API reference configuration. (#146) - Sorting in the Table Explorer no longer requires holding the Shift key for multi-column sorts. (#148)
- Versioned sites no longer drop pages due to an incomplete version comparison scheme that failed on certain version string formats. (#150)
- Scale-to-fit containers now support per-container
data-min-scaleoverrides, fixing cases where a global minimum was too aggressive for certain content. (#151) - YouTube video embeds now use the standard embedded player with native controls instead of a custom lite player. (#152)
Documentation
- Added a new Authoring QMD Files page to the User Guide covering frontmatter, Markdown syntax, executable code blocks, and other
.qmdfeatures. (#142) - Extensively revised and expanded User Guide pages across multiple sections including Table Previews, Table Explorer, Horizontal Rules, Keyboard Keys, Scale-to-Fit, and more.
- The Great Docs landing page has been improved with a cleaner layout and better visual hierarchy. (#140)
New Contributors
- @bschwedler made their first contribution in #139.
v0.9
Great Docs v0.9 adds a new Color Swatches shortcode for documenting color palettes, improves support for PyO3/Maturin compiled packages, and fixes the mobile sidebar toggle button that was non-functional on sites without a gradient navbar style.
New Features
- Color Swatches — New
{{< color-swatch >}}shortcode that renders interactive color palettes from YAML files or built-in presets. Each swatch displays hex codes, shows RGB/HSL breakdowns on hover, evaluates WCAG/APCA contrast ratios, and supports click-to-copy. (#130)
Bug Fixes
- PyO3/Maturin compiled extension modules are now handled correctly during documentation rendering, including dotted module names and missing line numbers. (#132)
- The mobile sidebar toggle button in the Title Bar now works on all sites, not only those with a gradient navbar style. The intercept logic was moved from the conditionally-loaded
navbar-style.jsto the always-loadednavbar-widgets.js. (#133)