feat(docs): self-host asciinema player to remove branding#705
Conversation
Replace the asciinema.org embed script with a self-hosted asciinema player (v3.15.1), eliminating the "Recorded with asciinema" branding and the external dependency on asciinema.org. The player background and foreground colors now match the Furo theme in both light and dark mode. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
Warning Review limit reached
More reviews will be available in 54 minutes and 17 seconds. Learn how PR review limits work. Your organization has run out of usage credits. Purchase more in the billing tab. ⌛ How to resolve this issue?After more reviews become available, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans include higher PR review limits than trial, open-source, and free plans. In all cases, reviews become available again over time. During sustained high-volume PR review activity, CodeRabbit may temporarily slow when the next review becomes available. Please see our Fair Usage Limits Policy for further information. 📝 WalkthroughWalkthroughThis PR adds an Asciinema player to the documentation homepage. It introduces a complete CSS stylesheet for the player with nine theme variants, integrates the player into the Sphinx build configuration, records an interactive Jumpstarter CLI session, and updates the homepage to display the recording with playback controls and markers. ChangesAsciinema Demo Player
Estimated code review effort🎯 2 (Simple) | ⏱️ ~12 minutes Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 3
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@python/docs/source/_static/css/asciinema-player.css`:
- Around line 37-47: The fullscreen rules currently target only the standard
:fullscreen pseudo-class; add matching WebKit-prefixed selectors so
Safari/WebKit gets the same styles — specifically mirror the selectors
div.ap-wrapper:fullscreen, div.ap-wrapper:fullscreen .title-bar, and
div.ap-wrapper:fullscreen.hud .title-bar with their :-webkit-full-screen
equivalents (and also update the identical block mentioned around lines 320-325)
so the HUD/title/icon state renders correctly under WebKit fullscreen.
- Line 120: Replace the deprecated CSS property by changing the declaration that
currently uses "word-wrap: normal;" to use "overflow-wrap: normal;" instead
(locate the "word-wrap" declaration in the CSS block where word wrapping is set
and replace it), so the behavior remains the same and Stylelint no longer flags
the rule.
In `@python/docs/source/_static/demo.cast`:
- Around line 9-10: Sanitize all operator-identifiable data in the cast file by
replacing occurrences of the host/user/path and lease identifiers shown (e.g.
the ANSI title string "\u001b]0;raballew@silverblue", the file URI segment
"file://silverblue/var/home/raballew/jumpstarter", and any raw lease IDs
referenced elsewhere) with neutral placeholders like "USER@HOST",
"file:///home/user/project", and "LEASE_ID"; ensure you update every matching
ANSI escape sequence and plain-text occurrence (also check the other ranges
mentioned: 40-42, 93-97, 124-125, 165, 181) so no personal/system identifiers
remain before publishing.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
Run ID: e24101ba-173a-4c1b-97f5-665d78466c1d
⛔ Files ignored due to path filters (1)
python/docs/source/_static/js/asciinema-player.min.jsis excluded by!**/*.min.js
📒 Files selected for processing (5)
python/docs/source/_static/css/asciinema-player.csspython/docs/source/_static/css/custom.csspython/docs/source/_static/demo.castpython/docs/source/conf.pypython/docs/source/index.md
The minified asciinema-player JS contains variable names (BA, seeked) that trigger false positives in the typos spell checker. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…r-dev#705) ## Summary - Replace the asciinema.org embed script with a self-hosted asciinema player (v3.15.1), removing the "Recorded with asciinema" branding and the external dependency on asciinema.org - Player background/foreground colors match the Furo theme in both light and dark mode - Added timeline markers for key demo moments (lease device, power cycle, serial start, pytest) ## Test plan - [ ] Build docs locally (`cd python && uv run --group docs sphinx-build -M html docs/source docs/build`) and verify the player renders on the landing page - [ ] Verify no "Recorded with asciinema" branding is visible - [ ] Verify the terminal background matches the page background in both light and dark mode - [ ] Verify timeline markers appear as dots on the progress bar - [ ] Verify the player shows a preview frame at 5 seconds before playback starts - [ ] Click play and verify the recording plays correctly with looping 🤖 Generated with [Claude Code](https://claude.com/claude-code) --------- Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Summary
Test plan
cd python && uv run --group docs sphinx-build -M html docs/source docs/build) and verify the player renders on the landing page🤖 Generated with Claude Code