chore: modernize the docs site and refresh the README - #639
Merged
Conversation
Jekyll 4.3 -> 4.4 with a regenerated lockfile, plus jemoji so the `:white_check_mark:` shortcodes in the browser support table actually render (they are served as literal text today) and jekyll-sitemap for sitemap.xml/robots.txt. Fixes two long-standing site bugs: `url` had a trailing slash, so every canonical URL was emitted with a double slash, and `exclude` only covered `playwright/`, so the whole Go source tree was published to gh-pages (https://mxschmitt.github.io/playwright-go/run.go returns 200). Deployment moves to the official GitHub Pages actions (configure-pages/upload-pages-artifact/deploy-pages). Keeps our own Bundler build rather than actions/jekyll-build-pages, which would pin the site to the github-pages gem set and Jekyll 3.10. The build now runs `bundle exec jekyll build` with BUNDLE_GEMFILE set, so the lockfile is actually enforced. NOTE: needs Settings -> Pages -> Source switched to "GitHub Actions" before this can deploy. README gets the Documentation, API Reference and Other languages sections the python/java/dotnet READMEs have, a Capabilities list rewritten around locators, auto-wait, assertions and Trace Viewer, and drops the retired Go Report Card badge. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01BJLQbgGSvJhdge6fpNKWst
mxschmitt
force-pushed
the
chore/modernize-docs-site
branch
from
August 17, 2026 04:48
bf02614 to
2dce163
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Updates the Jekyll toolchain behind https://mxschmitt.github.io/playwright-go/, fixes a few things that were quietly broken on the published site, and brings the README up to par with the python/java/dotnet ones.
Verified with a real Jekyll 4.4.1 build (Ruby 3.4, Docker) against a copy of this tree.
Important
This needs Settings → Pages → Build and deployment → Source switched from "Deploy from a branch" to GitHub Actions before it can deploy. Until then the
deployjob will fail. Thegh-pagesbranch becomes unused afterwards.Dependencies
~> 4.3.0→~> 4.4(4.3.4 → 4.4.1), lockfile regenerated from scratch under Ruby 3.4 forarm64-darwin/x86_64-darwin/x86_64-linux.jekyll-remote-theme0.4.3 → 0.5.2,jekyll-readme-index0.3.0 → 0.4.0,jekyll-seo-tag2.8.0 → 2.9.0,kramdown2.4 → 2.5.2,rouge4.4 → 4.7,sass-embedded1.80 → 1.102.jekyll-sitemap— the site had nositemap.xmlorrobots.txt(/sitemap.xmlis a 404 today).jemoji, see below.:jekyll_pluginsgroup and listed in_config.yml.:white_check_mark:was rendering as literal textThe browser support table shows the raw shortcode on the website:
With
jemojithe same build emits<img class="emoji" … unicode/2705.png>, and 0 raw shortcodes remain.Alternative worth considering
jemojipulls inhtml-pipeline→nokogiri+activesupport(native compile in CI) and renders emoji as remote images fromgithubassets.com. playwright-python and playwright-dotnet instead just put the literal✅in their README — cheaper, no dependency, no external requests. Happy to switch if preferred.Site bugs fixed
The entire Go source tree was being published.
excludeonly listedplaywright/, so every.gofile pluscmd/,tests/,internal/,scripts/,patches/,examples/andgo.modwas copied into_siteand pushed togh-pages:After this change the site is exactly the 10 files it should be:
index.html,404.html,README.md,CONTRIBUTING.md,LICENSE,sitemap.xml,robots.txt,assets/css/*.Canonical URLs had a double slash.
urlwashttps://mxschmitt.github.io/with a trailing slash on top ofbaseurl, so every page emitted<link rel="canonical" href="https://mxschmitt.github.io//playwright-go/">.<meta name="description">said "Playwright is a Node.js library" on our own Go site. Also added an explicitlang: en-US.Deployment
Moves to the official GitHub Pages actions —
actions/configure-pages@v6→actions/upload-pages-artifact@v5→actions/deploy-pages@v5— withworkflow_dispatch, apagesconcurrency group and least-privilege permissions.Deliberately not using
actions/jekyll-build-pages: it builds with thegithub-pagesgem, which pins Jekyll 3.10 and the GitHub-whitelisted plugin set, and ignoresdocs/Gemfileentirely. Keeping our own Bundler build is what lets the site stay on 4.4.The build step was also broken in a quiet way — it ran
bundler installinsidedocs/and then a barejekyll buildfrom the repo root, soGemfile.lockwas never actually enforced. NowBUNDLE_GEMFILEis set job-wide and it runsbundle exec jekyll build. Ruby 3.3 → 3.4, plusbundler-cache: true.README
#### [Website] | [API reference] | [Example recipes]nav line, matching playwright-java.microsoft/playwright#readme; adds the missingalton the gopher image.GetByRole/GetByLabel/GetByPlaceholder/GetByText/GetByTestId), auto-wait plus web-first assertions viaNewPlaywrightAssertions(), isolation throughBrowserContext+StorageState(), Trace Viewer viacontext.Tracing()andplaywright show-trace, and network interception withpage.Route(). The old list predated locators, assertions and tracing entirely.use-local-chromeexample, sorts the list, "Headless" → "Headless and headed", one badge per line.<!-- GEN: -->markers preserved;scripts/update-readme-versionsstill matches.Follow-up, not in this PR
There's no
.github/dependabot.yml. The last Gemfile touch (#506) was "update jekyll and ruby to solve security alerts" — abundlerentry scoped to/docswould stop that from recurring. Left out to avoid unrequested PR noise.🤖 Generated with Claude Code
https://claude.ai/code/session_01BJLQbgGSvJhdge6fpNKWst