Skip to content

docs: new Quarto website — widget guides, guide articles, gallery, and reference - #489

Draft
cpsievert wants to merge 7 commits into
mainfrom
widget-guides
Draft

cpsievert wants to merge 7 commits into
mainfrom
widget-guides

Conversation

@cpsievert

Copy link
Copy Markdown
Collaborator

Why

shinywidgets' documentation has outgrown a README: 43+ widget integrations each need their own guide with runnable examples, and there's nowhere to teach cross-cutting patterns (linked views, updating in place, deployment). This PR adds a complete Quarto website under website/, built with make docs and deployable as static files.

What's here

  • 43 widget guides (website/widgets/<slug>/) — each with a quickstart, interaction examples, in-place update patterns, screenshots, and a gallery app
  • 14 guide articles (website/guide/) — installation, first app, choosing a widget, linked views, updating in place, performance, deployment, troubleshooting, etc.
  • Gallery (website/gallery/) — 15 showcases + 19 templates, each a runnable app with a copy-paste "Run it" block and an Open-in-Shinylive link
  • API reference via quartodoc (website/_quarto.yml + _renderer.py)
  • Landing page with images generated from the site's own screenshots

Checking the content

The site checks itself, no manual verification needed:

  • website/_tools/check_docs.py — every code snippet in prose must match its example file on disk; every relative link and #anchor must resolve. Runs at zero problems and is documented in website/_tools/README.md.
  • website/_tools/check_site.py (make docs-check) — browser checks against the built site, served under /py-shinywidgets/.
  • make docs fails the build on unresolved quartodoc links.

Deployment

netlify.toml builds the site (uv + Quarto + make docs) so this and every PR gets a Netlify deploy preview — one setup step remains: connect the repo at app.netlify.com (import from GitHub; it reads netlify.toml automatically). The site is also pre-configured for GitHub Pages (site-url, subpath-relative links) if we want a production home later.

Verification

make docs builds cleanly; check_docs.py and check_site.py pass. No package code changes — shinywidgets/, js/, and tests/ are untouched.

Reviewer note: the 86 NOTES.md files are deliberate — they're verification provenance (versions tested, measured numbers) that pages link to. Happy to strip them if you'd rather not ship them.

The site (make docs) is quartodoc + Quarto into website/_site. Its content
checks itself: website/_tools/check_docs.py requires prose code snippets to
match their example files on disk and every relative link/anchor to resolve;
check_site.py (make docs-check) drives a browser over the built site;
example code blocks carry a file header (open/copy/Shinylive) rendered by
the example-header filter. Building needs uv sync --group docs once.
Each website/widgets/<slug>/ guide has a quickstart, reacting-to and
updating-in-place patterns, runnable examples/, screenshots, and a
gallery app. NOTES.md beside a page records the verification behind its
claims (versions tested, measured numbers); pages link to it.
Cross-cutting topics: why shinywidgets, installation, first app,
choosing a widget, linked views, updating in place, layout and theming,
performance, deployment, troubleshooting, any-widget, AI exploration,
and the reacting-to-widgets cheatsheet.
Each entry is a runnable app with a copy-paste 'Run it' block
(clone/cd/uv run), a hero screenshot, and an Open-in-Shinylive link
backed by a page-local requirements.txt.
Landing images are cut from the pages' own screenshots by
website/_tools/make_landing_images.py.
Mirrors posit-dev/open-source-website's proven setup: a reusable
build-and-deploy workflow (uv + Quarto + make docs + nwtgck/actions-netlify),
auto previews for non-fork PRs, a member-only /deploy-preview comment trigger
for fork PRs (whose workflows can't see secrets), production deploys on pushes
to main that touch the site, and cleanup of Netlify deploys when a PR closes
or a branch is deleted.

Requires NETLIFY_AUTH_TOKEN and NETLIFY_SITE_ID repo secrets.
@github-actions

github-actions Bot commented Nov 13, 2026 •

Copy link
Copy Markdown

- Grant deployments:write and statuses:write so nwtgck/actions-netlify
  can create the GitHub deployment and commit status it attempts on
  every run (previously 'Resource not accessible by integration').
- checkout v5, setup-uv v7, actions-netlify v4: all target Node 24;
  the previous versions triggered the Node 20 deprecation warning
  (runners force Node 24).
@netlify

netlify Bot commented Nov 13, 2026 •

Copy link
Copy Markdown

✅ Deploy Preview for shinywidgets canceled.

Name Link
🔨 Latest commit 56ffe38
🔍 Latest deploy log https://app.netlify.com/projects/shinywidgets/deploys/6af77734d07d04c44998044b

This branch was successfully deployed

1 active deployment
pull request — 56ffe380 Deployed Nov 13, 2026 by github-actions[bot]
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.

1 participant