Skip to content

docs: upgrade Quarto 1.6.26 → 1.9.37#281

Merged
cpsievert merged 9 commits into
mainfrom
feat/quarto-1.9
May 8, 2026
Merged

docs: upgrade Quarto 1.6.26 → 1.9.37#281
cpsievert merged 9 commits into
mainfrom
feat/quarto-1.9

Conversation

@elnelson575
Copy link
Copy Markdown
Contributor

@elnelson575 elnelson575 commented Apr 15, 2026

Summary

  • Bumps Quarto version in CI from `1.6.26` to `1.9.37`
  • Enables `llms-txt: true` in `_quarto.yml` (new in 1.9 — generates `llms.txt` + `.llms.md` files alongside HTML pages for LLM-friendly content)
  • Adds `**/*.quarto_ipynb` to `docs/.gitignore` (Quarto 1.8 now creates these as intermediate files; 1.8 also adds them to `.gitignore` by default in new projects, so this is consistent with that change)
  • Updates `sidebar.yml` with entries for recently added APIs (`tool_web_search`, `tool_web_fetch`, `parallel_chat*`, `AssistantTurn`/`UserTurn`/`SystemTurn`, new content types)
  • Adds explicit `render:` list to `_quarto.yml` to ensure all pages are rendered by Quarto 1.9 (previously auto-discovered)
  • Adds `CHANGELOG.md` to render list (was missing, causing broken Changelog link in navbar)
  • Adds `execute: freeze: auto` and committed `docs/_freeze/` cache so the docs build locally without API keys
  • Adds `docs-freeze.yml` — a manually-triggered CI workflow to refresh the freeze cache when executed pages change

Breaking change analysis: Quarto 1.6.26 → 1.9.37

Reviewed the changelogs for 1.7, 1.8, and 1.9.
No breaking changes affect this site.

Details

1.7 — No impact

  • Mostly regression fixes and non-HTML format changes (PDF/LaTeX template changes, Typst, Beamer)
  • The one notable breaking change (`common.latex` now uses `pandoc.tex` partial) only affects custom LaTeX template authors — not relevant to an HTML website
  • Pandoc bumped to 3.6.3 — no API changes affecting `.qmd` website files

1.8 — Minor changes, all beneficial

  • `posit-cloud` publish destination removed — chatlas publishes to `gh-pages`, unaffected
  • Bootstrap Icons updated v1.11.1 → v1.13.1 — chatlas doesn't reference bootstrap icons directly in its config or SCSS
  • IPython 9+ and plotly.py 6+ support — the chatlas docs site renders `.qmd` files only (no executed Jupyter notebooks in CI), so this is a non-issue
  • Tabset a11y improvements — the site uses tabsets (`panel-tabset panel-pills`) and will benefit from the keyboard navigation fix
  • `.quarto_ipynb` now auto-added to `.gitignore` in new projects — explains why this addition is canonical; the explicit addition in this PR is consistent

1.9 — Features enabled, no breakage

  • `llms-txt: true` — this is the new feature being enabled; generates `llms.txt` index + per-page `.llms.md` markdown files
  • `highlight-style` deprecated in favor of `syntax-highlighting` — chatlas doesn't use `highlight-style` in its config, so no impact; the old key remains supported anyway
  • Navbar active state detection fix (#13506) — directly benefits the chatlas site's navbar/sidebar setup
  • `SCSSParsingError` fix for non-ASCII SCSS selectors — `styles.scss` doesn't use non-ASCII selectors, but a defensive improvement regardless
  • RevealJS scroll-view template change — not applicable (HTML website format only)

Conclusion

The upgrade from 1.6.26 to 1.9.37 is low-risk for this site. All breaking changes in the 1.7–1.9 range are scoped to LaTeX/PDF formats, RevealJS, or publish targets not used by chatlas. The site should build cleanly; the primary observable change is the new `llms.txt` artifact generated alongside the site.

Freeze cache (`docs/_freeze/`)

Three pages in `docs/structured-data/` execute live Python code that calls the OpenAI API. Without a key, `make docs` would fail. To fix this:

  • `execute: freeze: auto` is added to `_quarto.yml` — Quarto caches execution results in `docs/_freeze/` and reuses them on subsequent builds, only re-executing if the source changes.
  • The initial `_freeze/` cache (3 files) is committed here so that `make docs` works out of the box without any API keys.
  • When the executed pages need updating, run the "Docs - Update freeze cache" workflow manually from the Actions tab — it re-executes with the repo's API key secrets and commits the updated cache back to the branch. This can be used when a team member wants to see their changes reflected in the _freeze files but does not have an API key of their own.

Visual regression testing

Ran a Playwright + Claude vision comparison of 191 pages (Quarto 1.6.26 build vs Quarto 1.9.37 build with full code execution via freeze cache) via AWS Bedrock. 0 regressions found.

Test plan

  • Visual regression: 191/191 pages compared, 0 regressions (Quarto 1.6.26 → 1.9.37)
  • `make docs` succeeds without API keys (freeze cache)
  • Confirm `llms.txt` is generated at the site root after build
  • Check sidebar renders correctly with the new entries
  • Workflow cannot be kicked off from a branch until it is in main. Will test once merged and update as needed.

@cpsievert
Copy link
Copy Markdown
Collaborator

cpsievert commented May 7, 2026

@elnelson575 thanks for this, what else were you planning on here? Any chance we could push it over the finish line?

@elnelson575
Copy link
Copy Markdown
Contributor Author

@elnelson575 thanks for this, what else were you planning on here? Any chance we could push it over the finish line?

Yep, I think I was just going to double-check that nothing in the site shifted and forgot to finish it off. I'll take a look now so we can get this out. 👍🏻

elnelson575 and others added 3 commits May 7, 2026 23:50
- Bumps Quarto version in CI from 1.6.26 to 1.9.37
- Enables llms-txt generation (new in 1.9)
- Adds .quarto_ipynb to .gitignore
- Updates sidebar with entries for recently added APIs

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Adds tests/compare-sites/ with a Playwright + Claude vision script for
  comparing two builds of the docs site page-by-page (HTTP status, console
  errors, network errors, visual rendering via AWS Bedrock)
- Adds explicit render list to docs/_quarto.yml to ensure all pages are
  rendered by Quarto 1.9 (was previously auto-discovered)
- Adds CHANGELOG.md to render list (was missing, causing broken navbar link)

Visual comparison of 189 pages between Quarto 1.6.26 (old) and 1.9.37 (new)
found 0 regressions.
Comment thread docs/_quarto.yml
Comment thread tests/compare-sites/tsconfig.json Outdated
Comment thread tests/compare-sites/package.json Outdated
Comment thread tests/compare-sites/package-lock.json Outdated
Comment thread tests/compare-sites/compare-sites.ts Outdated
Comment thread tests/compare-sites/.gitignore Outdated
- Adds execute: freeze: auto to _quarto.yml so docs build without API
  keys by reusing cached execution results from docs/_freeze/
- Removes temporary execute: enabled: false
- Adds docs-freeze.yml workflow (manual trigger only) to re-execute
  code cells with API keys and commit updated _freeze/ cache
@elnelson575 elnelson575 marked this pull request as ready for review May 8, 2026 15:32
@elnelson575 elnelson575 requested a review from cpsievert May 8, 2026 15:42
@cpsievert
Copy link
Copy Markdown
Collaborator

Thanks!

@cpsievert cpsievert merged commit 8fe3902 into main May 8, 2026
8 checks passed
@cpsievert cpsievert deleted the feat/quarto-1.9 branch May 8, 2026 15:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants