Skip to content

Releases: posit-dev/great-docs

v0.16.0

Choose a tag to compare

@rich-iannone rich-iannone released this 27 Jul 23:51
393af82

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 --help flags, 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. Supports lines for showing specific ranges and lang for overriding language detection. (#270)
  • Announcement banner positioning — The announcement banner now accepts a position option ("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 %versionadded that 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)
  • %nodoc and %seealso directives 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.qmd pages 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.md install 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

Choose a tag to compare

@rich-iannone rich-iannone released this 10 Jul 18:28
8eca1ba

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 Attributes or Parameters sections 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.txt and llms-full.txt in 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

  • API reference pipeline has been refactored for improved code organization and maintainability. (#249)
  • Griffe dependency updated to ~=2.1.0 for enhanced Python introspection capabilities. (#242)

v0.14.1

Choose a tag to compare

@rich-iannone rich-iannone released this 25 Jun 20:56
31f248e

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: false bug where the package_name was mishandled. (#232)
  • hero_name now correctly returns False instead of None when set to False. (#221)

New Contributors

v0.14.0

Choose a tag to compare

@rich-iannone rich-iannone released this 16 Jun 14:06
2593671

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 .lightbox opens into a full-screen view with zoom (100–400%) and drag-to-pan. Enable it per image with the .lightbox class, or per page with lightbox: auto (opting individual images out with .nolightbox). (#216)
  • Galleries — Images sharing a group value bind into a gallery that readers page through with arrow buttons, keyboard keys, a filmstrip, and touch swipes, with optional looping and autoplay. A .lightbox-gallery fenced 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 annotations JSON array; markers stay anchored on both the thumbnail and the enlarged view. (#216)
  • Before/after comparison — A {{< compare >}} shortcode (or .lightbox-compare div) 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 dark attribute or a .light/.dark filename convention to swap to a dark-optimized image live when the reader toggles themes. (#216)
  • Captions, credits, and responsive sources — Add caption and credit lines, and serve sharper images in the enlarged view with standard srcset/sizes or an explicit full-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

Choose a tag to compare

@rich-iannone rich-iannone released this 11 Jun 19:30

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_function are 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 UnicodeEncodeError crash 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

v0.13.0

Choose a tag to compare

@rich-iannone rich-iannone released this 03 Jun 03:47
5b12e01

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.json manifest is also generated for client auto-discovery. (#195, #196)

v0.12.0

Choose a tag to compare

@rich-iannone rich-iannone released this 28 May 15:34

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 pypi configuration option to control package links: set to True for auto-detection, False to 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's requires-python for GitHub Pages deployment workflows. (#178)
  • Pre-render and post-render validation added for versioned sites, catching missing .qmd files and failed HTML output early (#181). (#188)

Documentation

  • Added guidance on the site_url setting for proper link resolution in deployed sites. (#182)

v0.11.0

Choose a tag to compare

@rich-iannone rich-iannone released this 18 May 15:39
803ef06

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 --help output view. (#169, #173)
  • Freezing/caching of outputs — Cache notebook execution results in a _freeze/ directory so rebuilds skip re-computation. The great-docs freeze command lets you re-execute specific pages on demand, --info shows cache status across all pages, and the freeze config option (auto or true) 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.json artifact, and the great-docs timings command surfaces the slowest pages to help identify bottlenecks. (#159)
  • site_url option — 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

  • Hidden files (e.g., .nojekyll) are now included in GitHub Pages artifact uploads. (#163)
  • Navbar background default color updated to match the intended design. (#170)

v0.10.0

Choose a tag to compare

@rich-iannone rich-iannone released this 03 May 22:22

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 as tbl_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 with shortcut= syntax, and platform-aware rendering that shows macOS symbols (, , ) or Windows key names automatically. (#145)

Enhancements

  • The row_index_offset parameter on tbl_preview() lets you control the starting row number (e.g., set to 1 for 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_methods config option controls whether class methods are inlined on the parent class page or split to separate pages. Accepts true (always inline), false (always split), or an integer threshold (default: 5). (#139)

Bug Fixes

  • Inherited methods are now rendered correctly when using include_inherited: true or explicit members lists 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-scale overrides, 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 .qmd features. (#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

v0.9

Choose a tag to compare

@rich-iannone rich-iannone released this 22 Apr 20:13
d2065b7

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.js to the always-loaded navbar-widgets.js. (#133)