Skip to content

Commit e6b619f

Browse files
author
E Nelson
committed
Squashed commit of the following:
commit c9d5180 Author: E Nelson <liz.nelson@posit.co> Date: Fri Mar 6 09:34:43 2026 -0500 Remove Python dependencies and shinylive artifact steps Removed Python dependency installation and artifact handling steps for shinylive. commit 6b56db5 Author: E Nelson <liz.nelson@posit.co> Date: Fri Mar 6 09:33:43 2026 -0500 Refine app preview spacing and simplify comment commit eed3d5d Author: E Nelson <liz.nelson@posit.co> Date: Fri Mar 6 09:32:55 2026 -0500 Update distclean target to remove unnecessary clean step commit d34a2fa Author: E Nelson <liz.nelson@posit.co> Date: Fri Mar 6 09:31:41 2026 -0500 Remove unused commands, fix preview commit 4cc530b Merge: 7c67bd9 5f071cc Author: E Nelson <liz.nelson@posit.co> Date: Thu Mar 5 22:41:29 2026 -0500 Merge branch 'feat/shinylive-test' into feat/add-cards-toolbar-docs commit 7c67bd9 Author: E Nelson <liz.nelson@posit.co> Date: Thu Mar 5 22:37:03 2026 -0500 Update sizing and multiple cars commit 9e77832 Merge: 8c5681f 3dbb608 Author: E Nelson <liz.nelson@posit.co> Date: Thu Mar 5 16:02:33 2026 -0500 Merge branch 'feat/shinylive-build-step' into feat/add-cards-toolbar-docs commit 3dbb608 Author: E Nelson <liz.nelson@posit.co> Date: Thu Mar 5 15:53:30 2026 -0500 change naming commit 182a19b Author: E Nelson <liz.nelson@posit.co> Date: Thu Mar 5 15:51:27 2026 -0500 Removing commit 35e8112 Author: E Nelson <liz.nelson@posit.co> Date: Thu Mar 5 13:23:33 2026 -0500 Revert workflow change, update makefile commit cabbf7f Author: E Nelson <liz.nelson@posit.co> Date: Wed Mar 4 12:09:23 2026 -0500 Plan response (vibe-kanban ELN-3) commit d0fe98f Merge: f86de69 5e73b18 Author: E Nelson <liz.nelson@posit.co> Date: Tue Mar 3 09:54:55 2026 -0500 Merge branch 'main' into feat/shinylive-build-step commit 5e73b18 Author: E Nelson <liz.nelson@posit.co> Date: Mon Mar 2 15:53:05 2026 -0500 Feat: Add plausible tracking (#345) commit f86de69 Author: E Nelson <liz.nelson@posit.co> Date: Fri Feb 27 11:48:18 2026 -0500 Added comment commit aaca5e9 Author: E Nelson <liz.nelson@posit.co> Date: Fri Feb 27 11:43:45 2026 -0500 Add additional clarifying comments commit cada079 Author: E Nelson <liz.nelson@posit.co> Date: Thu Feb 19 10:57:23 2026 -0500 Add makefile changes for local build commit 1fd844e Author: E Nelson <liz.nelson@posit.co> Date: Thu Feb 19 10:07:09 2026 -0500 Fixing requirements commit e22a6cb Author: E Nelson <liz.nelson@posit.co> Date: Thu Feb 19 09:40:16 2026 -0500 Add shinylive chunk
1 parent 5f071cc commit e6b619f

9 files changed

Lines changed: 37 additions & 127 deletions

.github/workflows/deploy-docs.yml

Lines changed: 0 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -48,63 +48,6 @@ jobs:
4848
any::rmarkdown
4949
any::reticulate
5050
51-
# =====================================================
52-
# Install Python dependencies
53-
# =====================================================
54-
- name: Install Python dependencies
55-
run: |
56-
make deps
57-
58-
# =====================================================
59-
# Try to use py-shiny shinylive artifact
60-
# =====================================================
61-
- name: Try shinylive artifact from main branch
62-
id: artifact_main
63-
continue-on-error: true
64-
uses: dawidd6/action-download-artifact@v6
65-
with:
66-
repo: posit-dev/py-shiny
67-
workflow: build-docs.yaml
68-
workflow_conclusion: success
69-
branch: main
70-
name: shinylive-build
71-
path: _shinylive-pr-build/
72-
if_no_artifact_found: fail
73-
check_artifacts: true
74-
allow_forks: false
75-
76-
- name: Try shinylive artifact from any branch
77-
id: artifact_any
78-
if: steps.artifact_main.outcome == 'failure'
79-
continue-on-error: true
80-
uses: dawidd6/action-download-artifact@v6
81-
with:
82-
repo: posit-dev/py-shiny
83-
workflow: build-docs.yaml
84-
workflow_conclusion: success
85-
name: shinylive-build
86-
path: _shinylive-pr-build/
87-
if_no_artifact_found: fail
88-
check_artifacts: true
89-
allow_forks: false
90-
91-
- name: Install py-shiny shinylive artifact assets
92-
if: steps.artifact_main.outcome == 'success' || steps.artifact_any.outcome == 'success'
93-
run: |
94-
if [ "${{ steps.artifact_main.outcome }}" == "success" ]; then
95-
echo "🔵 Installing shinylive artifact from main branch..."
96-
else
97-
echo "🔵 Installing shinylive artifact from feature branch..."
98-
fi
99-
. .venv/bin/activate && shinylive assets install-from-local "${GITHUB_WORKSPACE}/_shinylive-pr-build"
100-
echo "✓ Shinylive artifact assets installed successfully"
101-
102-
- name: Log using standard shinylive
103-
if: steps.artifact_main.outcome != 'success' && steps.artifact_any.outcome != 'success'
104-
run: |
105-
echo "ℹ️ No py-shiny shinylive artifact found, using standard PyPI shinylive assets"
106-
. .venv/bin/activate && echo " (shinylive version: $(shinylive --version))"
107-
10851
# =====================================================
10952
# Build
11053
# =====================================================

Makefile

Lines changed: 19 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -131,45 +131,6 @@ components-static: $(PYBIN) deps
131131
components-shinylive-links: $(PYBIN) deps
132132
. $(PYBIN)/activate && python components/update-shinylive-links.py
133133

134-
135-
SHINYLIVE_DIR ?= shinylive
136-
137-
## Clone shinylive repository (for building from source)
138-
.PHONY: clone-shinylive
139-
clone-shinylive:
140-
@if [ ! -d "$(SHINYLIVE_DIR)" ]; then \
141-
echo "🔵 Cloning shinylive repository..."; \
142-
git clone https://github.com/posit-dev/shinylive.git $(SHINYLIVE_DIR); \
143-
else \
144-
echo "✓ shinylive directory already exists"; \
145-
fi
146-
147-
## Build shinylive from source for previewing unreleased features
148-
.PHONY: build-shinylive
149-
build-shinylive: $(PYBIN) clone-shinylive
150-
@echo "🔵 Building shinylive from source..."
151-
cd $(SHINYLIVE_DIR) && make submodules
152-
cd $(SHINYLIVE_DIR) && npm install
153-
cd $(SHINYLIVE_DIR) && make all
154-
cd $(SHINYLIVE_DIR) && make dist
155-
@echo "🔵 Installing locally-built shinylive..."
156-
. $(PYBIN)/activate && pip uninstall -y shinylive 2>/dev/null || true
157-
. $(PYBIN)/activate && pip install $(SHINYLIVE_DIR)
158-
@echo "✓ shinylive built and installed from source"
159-
160-
## Update shinylive source and rebuild
161-
.PHONY: update-shinylive
162-
update-shinylive: clone-shinylive
163-
@echo "🔵 Updating shinylive repository..."
164-
cd $(SHINYLIVE_DIR) && git pull
165-
$(MAKE) build-shinylive
166-
167-
## Clean shinylive build artifacts
168-
.PHONY: clean-shinylive
169-
clean-shinylive:
170-
rm -rf $(SHINYLIVE_DIR)
171-
172-
173134
## Remove Quarto website build files
174135
.PHONY: clean
175136
clean:
@@ -185,54 +146,50 @@ clean-extensions:
185146
clean-venv:
186147
rm -rf $(VENV)
187148

188-
## Remove all build files (Quarto website, quarto extensions, venv, shinylive)
149+
## Remove all build files (Quarto website, quarto extensions, venv)
189150
.PHONY: distclean
190-
distclean: clean clean-extensions clean-venv clean-shinylive
151+
distclean: clean clean-extensions clean-venv
191152

192153
SHINYLIVE_ARTIFACT_DIR ?= _shinylive-pr-build
154+
SHINYLIVE_BRANCH ?= main
193155

194156
## Download and install shinylive artifact from py-shiny CI/CD (requires gh and jq)
195-
.PHONY: use-shinylive-artifact
196-
use-shinylive-artifact: $(PYBIN) deps
157+
## This is essential the first time you want to use the dev shinylive build, but is not
158+
## necessary after, as shinylive will use the lastest cached artifact
159+
## By default searches main branch. Supply SHINYLIVE_BRANCH to test a specific branch.
160+
## Usage: make use-dev-shinylive [SHINYLIVE_BRANCH=feature-branch]
161+
.PHONY: use-dev-shinylive
162+
use-dev-shinylive: $(PYBIN) deps
197163
@command -v gh jq > /dev/null || (echo "❌ Install: brew install gh jq && gh auth login" && exit 1)
198164
@gh auth status > /dev/null 2>&1 || (echo "❌ Authenticate: gh auth login" && exit 1)
199-
@rm -rf $(SHINYLIVE_ARTIFACT_DIR)
200-
@. $(PYBIN)/activate && python -c "import appdirs, shutil; shutil.rmtree(appdirs.user_cache_dir('shinylive'), ignore_errors=True)"
201-
@echo "🔵 Finding shinylive-build artifact in py-shiny workflows..."
202-
@FOUND=false; \
203-
for RUN_ID in $$(gh run list --repo posit-dev/py-shiny --workflow build-docs.yaml --limit 20 --json databaseId --jq '.[].databaseId'); do \
165+
@echo "🔵 Finding shinylive-build artifact in py-shiny workflows on branch: $(SHINYLIVE_BRANCH)..."; \
166+
RUN_IDS=$$(gh run list --repo posit-dev/py-shiny --workflow build-docs.yaml --branch $(SHINYLIVE_BRANCH) --limit 20 --json databaseId --jq '.[].databaseId'); \
167+
FOUND=false; \
168+
for RUN_ID in $$RUN_IDS; do \
204169
if gh api repos/posit-dev/py-shiny/actions/runs/$$RUN_ID/artifacts --jq '.artifacts[].name' 2>/dev/null | grep -q '^shinylive-build$$'; then \
205170
echo "🔹 Found artifact in run $$RUN_ID"; \
171+
rm -rf $(SHINYLIVE_ARTIFACT_DIR) && \
172+
. $(PYBIN)/activate && python -c "import appdirs, shutil; shutil.rmtree(appdirs.user_cache_dir('shinylive'), ignore_errors=True)" && \
206173
gh run download --repo posit-dev/py-shiny --name shinylive-build --dir $(SHINYLIVE_ARTIFACT_DIR) $$RUN_ID && \
207174
. $(PYBIN)/activate && shinylive assets install-from-local "$(SHINYLIVE_ARTIFACT_DIR)" && \
208-
echo "✓ Shinylive artifact installed" && \
175+
echo "✓ Shinylive artifact installed from branch $(SHINYLIVE_BRANCH)" && \
209176
FOUND=true && \
210177
break; \
211178
fi; \
212179
done; \
213180
if [ "$$FOUND" != "true" ]; then \
214-
echo "❌ No shinylive-build artifact found in recent py-shiny builds"; \
181+
echo "❌ No shinylive-build artifact found in recent py-shiny builds on branch $(SHINYLIVE_BRANCH)"; \
215182
exit 1; \
216183
fi
217184

218-
## Build documentation with py-shiny shinylive artifact
219-
.PHONY: all-with-artifact
220-
all-with-artifact: use-shinylive-artifact quartodoc components site
221-
@echo "✓ Documentation built with py-shiny shinylive artifact"
222-
223-
## Serve documentation with py-shiny shinylive artifact
224-
.PHONY: serve-with-artifact
225-
serve-with-artifact: use-shinylive-artifact quartodoc components
226-
. $(PYBIN)/activate && ${QUARTO_PATH} preview
227185

228186
## Clean shinylive artifact download
229-
.PHONY: clean-shinylive-artifact
230-
clean-shinylive-artifact:
187+
.PHONY: clean-dev-shinylive
188+
clean-dev-shinylive:
231189
rm -rf $(SHINYLIVE_ARTIFACT_DIR)
232190

233191

234192

235-
236193
define PRINT_HELP_PYSCRIPT
237194
import re, sys
238195

components/_partials/components.css

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ main a.nav-link:hover {
9292
height: 200px;
9393
}
9494

95-
/* Improve spacing for app previews - addresses comments about padding and whitespace */
95+
/* Improve spacing for app previews */
9696
.app-preview {
9797
margin-bottom: 1rem;
9898
}

components/layout/cards/app-variation-multiple-cards-core.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
from shiny import App, render, ui
21
import pandas as pd
2+
from shiny import App, render, ui
33

44
app_ui = ui.page_fluid(
55
ui.layout_column_wrap(

components/layout/cards/app-variation-multiple-cards-express.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
from shiny.express import input, render, ui
21
import pandas as pd
2+
from shiny.express import input, render, ui
33

44
with ui.layout_column_wrap():
55
with ui.card(full_screen=True):

components/layout/cards/app-variation-multiple-cards-preview.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
from shiny import App, render, ui
21
import pandas as pd
2+
from shiny import App, render, ui
33

44
app_ui = ui.page_fluid(
55
ui.layout_column_wrap(

components/layout/cards/index.qmd

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ listing:
1212
contents:
1313
- title: Preview
1414
file: app-detail-preview.py
15-
height: 400
15+
height: 350
1616
- title: Express
1717
file: app-express.py
1818
shinylive: https://shinylive.io/py/editor/#code=NobwRAdghgtgpmAXAAjFADugdOgnmAGlQGMB7CAFzkqVQDMAnUmZAZwAsBLCXLOAD3QM4rVsk4x0pBhWTCIAEzgMiAV04AdCBKkzkMKBXQAbUhWOcARjlwmzyKGJMUtWgO6cK7ZOqzEoDAoAFHSqxsYA+qzEwtQAvAAqDKpwROxwnADm7BRxGmAAzACsAAzo-PkAlCjIAMTIADwNWsitPpx+AQoR6VBKDEGt9U0tbWP5AMpQxiLISdQK+UR1jc0QY2PExo6sEXlglpkAtAoBANZLQ6ujrZVXIxA3yAAC8v04prIrD2NKdMh2ChBar3NYbNr1ADi1GUhjgbFgJnhrGms1OFCgTzGMHIXjEcWQwAA5AApKAQIlEIkAMTglkpyCJAFkAgyiQBBIRslm4Nkk1QUghY8Ei0lhNns1SZNkTODoNkAeWIFDZADlSAA3NkAETgxCJAF1ha0UTN8YSACxFIhFABMRAtAA4iAA2ACMNudyBdAHYiD6Pd6AJz+i3+r2O+3IR2Oo2PdYiuhZIhQfjIAnOLCsVSWQGsEJZVicABecDiQT9yAKWCKlUqxoc-A+ZiCOMo7FYRFNIiIBgYZ2UcSJpAZFggcA8Ci8cSjfYHDCLpbi1uQZFMDCHrCocGMlmMKSJ9YT4NTWCT4QiljgFDccGoQQY5MycCCMwgrdxHbrXdRnYcxnQdgoDiEosAKIg12kTdt13fc4EPBtT1Ya8IgoTwZiCfImU-YxcGQKYzTmN5LjoXFFzLN0SiIdA+jiR0jxFRssxQ-htivYxMLAbD2xIsiSzLejEKbZCKAiXA2J3TiCNmIIABIAGl60IZBSMoci6IYkVT0yBhOGCJIUhTACgJAsDNJPJs0OIM4Ihox8YHzCTjHUn1zI2TN+Css58yYDE0PIOIrTcsZMzQ7JRO2XBSFUIEaIUGcsBKYK2mEChVAYdYk0yUEtGUsAKFsBAUHygQKDAABfA0gA
@@ -63,10 +63,10 @@ listing:
6363
height: 500
6464
- title: Express
6565
file: app-variation-multiple-cards-express.py
66-
shinylive: https://shinylive.io/py/editor/#code=NobwRAdghgtgpmAXAAjFADugdOgnmAGlQGMB7CAFzkqVQDMAnUmZAZwAsBLCXLOAD3QM4rVsk4x0pBhXER0AVwpFhEACZwGRBZwA6ECVJnJ0UdVDEWTa-foDunCu2Q6sAGyi5SSgPpk3CjAQPnYMGAAUAJSI+shxyA5OLpxYxFAMauF0Cm5uPqzEwtQAvAAqDApw0bHxtYnOrmkZPuxwUBoMUTEQtb3xumAAylBuIsgAIlAUUAM1fXWODSkUpKRuAEbpXXPzfa4ra5sMPtyKFPlwo8QU4Tu7u5xqxQPCAOac5D50nG5UDAMEO73PoedaXZ5gABKcHe5ABQOBtWI7FInGIImKwAGAEFcgDkAMAHLSJz4gaDbykwgEsAAUQsFDJYAA6iJGWAALqAnqI3asS5wa5wJ44vFgBH3SK2Hl9AACqg6WDUUygXzC8AlGjobBGIh803Wo22MvuyumyGK1iwk2mADF1XBwiAJbsBgAFJhqBTXAYoLEsx6vOCybFM5mB4PIABCYYjsgAwrG1EHZOMkynkLSBlyXfMBtDYRBfch-cSZOwmRSlBXqQN6ax2UQBqyG0yy1ScybeeTdaxi8AAIwAVh8ACYAAzjogD0c+AAck6IAE4fEPF8gBwOfABmddznwAdknnd5tQGAHEmHYqX6BgBqGcAUiZd7nz9rYDvQ-fTc-A-HP40ne27vhyuZxAAvlKRZdvMnDaqcShYG8HzBN8vyaFEyAAISWqKbi+uBvRmlAFrICRwAUfmMKodmFqWohFDITRnzoX8URgTBvLCBQCgMD0JHSgsSSNOkmTZLk+SFHAJTlJU1SwXEonNK07SYQMADScC4MgACSECsJwrzsBQfZgNBuyuDA6QANZqKQdgQLc4ouRKABUblupodDSNZEDosggyBNZDC4B5QnzAAtIFvZyNJFjCsg6w6UuABsj7IKQABumjIKlyAwOQTh9opyDRdiQg-GwKJ2IlpFUJI0jpDpaicOgErRYMFBMBArzIMIZA5aFcjIAAsp4yBmGoyAAFIKBAcAdcg8Z8aosjdVAABWgorMNrAKK8QYNmIZCUNwlTTa8V6klx8xuTapEKOgZrCigc0LcgE6jgALG5EqzC50HUmAFC4OgCAoCDAgUGAEEckAA
66+
shinylive: https://shinylive.io/py/editor/#code=NobwRAdghgtgpmAXAAjFADugdOgnmAGlQGMB7CAFzkqVQEsZ1SAnC5dKCAEygGdk+7LgB0IAM2akYyXgAs6EXFjgAPdMzi9+DJq2QL0AVwpEN3OMyKG6o0QHc6FWcmtYANlFyljAfTJvDGAgfO2YMAAoASkRRZDjkBycXOixiKGYucLFDNzcfXmINagBeABVmQzho2PjaxOdXNIyfWTgoLgsomIha3vjhMABlKDdNZAARKAooAZq+uscGlIpSUjcAI3Suufm+1xW1zeYfA19eOFHiCnCd3d26LmKBjQBzOnIfMTo3KmYBgludz6HnWFyeYAASnA3uR-oCgbViLJSHRiJpisABgBBXL-ZADAByLCceIGg28JMI+LAAFE+BRSWAAOqaBlgAC6AJ6CN250uVEe2NxYHhd0itm5fQAAmYOswsDxpp8wvBRR0xDIRpofNN1qNtpK7oqoMhikIsJNpgAxFVwcIgUW7AYABUkXEMVwGKExzIeLzgbCxjKZfoDyAAQsHQ2wAMJRrj+tjjeOJ5A0gacx3zAZQmEQL3IH1E1iyRnk4ylqkDOm8NlEAYs2uM4uUzOGnlkrW8AvAACMAFYfAAmAAMI6IvaHPgAHGOiABOHz9ufIXu9nwAZhX058AHYx22ebUBgBxSR2SnegYAaknAFJGdfpw+q2Br-2X-W372R5-qdeNxfdksziABfcV83beY6A1U4KCwV53mCL4fk6SJkAAQjNIU3C9EDemNU1kGNYASJzaEkIzU0zTghCKI+FDfiiYDIJ5DQKEMZgemNCUFiSRp0kybJcnyQo4BKcpKmqKC4gE5pWnaToBgAaTgXBkAASQgXg6BeWQKG7MAIN2VwYHSABrLhSDsCAbhFezRQAKkc50LDEFgzIgNFkEGQIzOYXBnN4+YAFofK7fQvI0Pg4C4ZB1nU+cADY72QUgADcLGQJLkBgcgnG7GTkDCrF1G+GRkTsWKBGQKhGBYdJ1K4Oh0FFMLBgoSQIBeZANDITKAsi5AAFlPAEbhkAAKUMCA4Da5AY04sw2E6qAACs4CuFh1N4QwXn9Wt+DISgFEqOKXnPElWPmRzLRNQx0EVWKUGm2bkFHIcABZHNFWZ7IgqkwAoXB0AQFAgdUCgwFA9kgA
6767
- title: Core
6868
file: app-variation-multiple-cards-core.py
69-
shinylive: https://shinylive.io/py/editor/#code=NobwRAdghgtgpmAXAAjFADugdOgnmAGlQGMB7CAFzkqVQDMAnUmZAZwAsBLCXZTmdKQYVkAQUxEG1ACZwGRAK6cAOhH6DhydFAjSorZPq3TVqjOgD6S5AF5kSnFADmcC3QA2S6QApVyf-acWO5QuKQKFBZknjAQFgDuDBi+EAFpgVjEUAw+fun5Dlk5FuxwULIMKfnVAcpgAMpQ7nAGACJQFFB1BHk1BUEUpKTuAEbZVX2TDoPDYwwW3OgRFqxwzcQUE5PbfNI2dVJOnORunO5UDN29O30hI2v7YABKcEfkV6k3k8TspJzELRswDqonc7m6yDqADkhBR2BC6vVwnCEWAAKL6CiogDqLSxYAAuj1Pl8aqt1lQ9iCwXVrqTkABKOnbJkkvoM4k7QrZaQWEakaS4LY3BzIpaRPSdNxJeC+MCsJotCydEbNOqsnYc5n5OgKMErYhSag2AAqDAUcG1jM51W5OWFNTtvNK5TkcoA0nBeABJCCsThOdgUVjqm1TIJFXn8wUO7YOGDZADW0lI8QgctpYCtNQAVDmAApyOhCBMQAHIeoKGAJhi4POmNk7AC0FcVBm4hrKq2kyBGvAAnAA2ACkyFIADc5MhB8gYOQ4SHG9sW+IGGc2L94nAe1BkFQBEJsrxpJx0Nnqi36hQmBAnMgpGRJ7W+KkALKhQy6ZAAKQUEEtS6TC2ADCCgMFIlB7kkABWcAbEIvCsAoTguKwwbIGQlDcBaPZOEw8QohA575Dm7SdPY6CStuKC-v+yAAEwAAz0QALDmxHpJm6ocVqgHpLq+qsJ2xpmhaVoagErKsg2sh0GwchPt4iwREQYoqfJrD+uQDKINcAACEEVFgkpQNKsAAWkslsG2ypQKqcDeDpVombYxhYGRUAAGIyg5IAcXU+ZMNICgbHUKDAmA2KcNILgiKIOLRbFyAAEIJTFcAiMBaVJa02UZcgaJ1ES-nPK8xxEbQEUwsI8KEJCDTIrVRB1BiaE4niqLVSihJhn0iJtmFyDAAAjAArBYTGMUQw30RYAAcjFTcg-YWKNi3TcNFgAMzrcgc0WAA7ItxV8WkdQAOL4d14V1AA1DNw6ordc2PXVd2ja9zVgPdjGffVt1ba9BJWgAvtJfGcHJykUFghzlac5xugyyAAIR2NS4JIBxLl2CZwB43ULxvBVBK2HY0Ow2VJx0GcFyOcDRF8VIFBgakJkNmYmCueI6DeOYVicEQqwME+rJ1WAFC4OgCAoBLcAAB4UGAIMEkAA
69+
shinylive: https://shinylive.io/py/editor/#code=NobwRAdghgtgpmAXAAjFADugdOgnmAGlQGMB7CAFzkqVQEsZ1SAnC5dKCAEygGdk+7LgB0IAM2akYyXgAs6EXMgZNWyAIKYizalzjMiAVzqjRGdAH1jyALzJjOKAHM4FsQBtjXABSjk-+zosdyhcUkMKCzJPGAgLAHdmDF8IALTArGIoZh8-dPyHLJyLWTgoPWYU-OqA4TAAZSh3OH4AESgKKDqCPJqCoIpSUncAI2yqvsmHQeGx5gsFdAiLXjhm4goJye3lLhs6nSc6cjc6dypmbt6dvpCRtf2wACU4I-Ir1JvJ4llSOmIWjZgHV1O53N1kHUAHIsCiyCF1erhOEIsAAUT4FFRAHUWliwABdHqfL41VbrKh7EFgurXUnIACUdO2TJJfQZxJ2hWyXAsI1IXFwWxuDmRS0iPE6biS8F8YF4TRaFk6I2adVZOw5zPyYkMYJWxB01BsABVmIY4NrGZzqtycsKanbeaVyvo5QBpOBKACSEF4dCcsgovHVNqmQSKvP5god2wcMGyAGsuKR4hA5bSwFaagAqHMABX0YhYCYgAOQ9UMMATzFwedMbJ2AFoK4r+ApDWVVlxkCMlABOABsAFJkKQAG76ZCD5AwchwkON7YtzTMM4yX7xOA9qDIKiMFjZJRcOjobPVFv1CiSCBOZA6MiT2vKVIAWVCAm4yAAUoYIJal0mFsAGFDGYHRKD3JIACs4A2FglF4QwnBcXhg2QMhKAUC0eycSR4hRCBz3yHN2k6ex0ElbcUF-f9kAAJgABnogAWHNiPSTN1Q4rVAPSXV9V4TtjTNC0rQ1AJWVZBs9DEGR9CfbxFgiIgxRU+TeH9cgGUQa4AAEIIqLBJSgaVYAAtJZJkNtlSgVU4G8HSrRM2whCwMioAAMRlByQA4up80kLhDA2OoUGBMBsToLgXDYdQcWi2LkAAIQSmK4DYYC0qS1psoy5A0TqIl-OeV5jiI2gIphVh4UISEGmRWqiDqDE0JxPFUWqlFCTDPpETbMLkGAABGABWCwmMYohhvoiwAA5GKm5B+wsUbFum4aLAAZnW5A5osAB2Rbir4tI6gAcXw7rwrqABqGbh1RW65seuq7tG17mrAe7GM++rbq216CStABfaS+LoOTlIoLBDnK05zjdBlkAAQjsalwSQDiXLsEzgDxuoXjeCqCVsOxodhsqTjEM4Lkc4GiL4nQKDA1ITIbMxMFczR0G8cwrDoIhVmYJ9WTqsAKFwdAEBQCW4AADwoMAQYJIA
7070
- id: variation-filling-plot
7171
template: ../../_partials/components-variations.ejs
7272
template-params:

include-in-header.html

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,14 @@
2828
</script>
2929
<!-- End Add rel="noopener noreferrer" to each target="_blank" -->
3030

31+
<!-- Privacy-friendly analytics by Plausible -->
32+
<script async src="https://plausible.io/js/pa-evGN_AU3I78BASS5GjxP0.js"></script>
33+
<script>
34+
window.plausible=window.plausible||function(){(plausible.q=plausible.q||[]).push(arguments)},plausible.init=plausible.init||function(i){plausible.o=i||{}};
35+
plausible.init()
36+
</script>
37+
<!-- End Privacy-friendly analytics by Plausible -->
38+
3139
<script type="text/javascript">
3240
(function () {
3341
function addShinyliveEditLinks() {

requirements.txt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,6 @@ jupyter
22
jupyter_client < 8.0.0
33
tabulate
44
shinylive==0.8.5
5-
griffe
5+
# Pinned to <2.0.0 due to compatibility issues with quartodoc
6+
# See: https://github.com/posit-dev/py-shiny/commit/c2e4b204
7+
griffe>=1.3.2,<2.0.0

0 commit comments

Comments
 (0)