Update dependencies and fix site build - #6
Merged
Conversation
Toolchain - Jekyll 3.8.5 -> 4.4.x; jekyll-feed 0.6 -> 0.17. Jekyll 3.8 does not run on Ruby 3.x, so the site could not be built or served locally. - Add webrick, which Ruby 3.0 dropped from stdlib and `jekyll serve` needs. - Drop the minima theme gem and `theme:` setting. The site ships its own layouts in _layouts, so minima only contributed an unused stylesheet and a pile of Sass deprecation warnings on every build. - Modernize the Windows platform list and wdm constraint; regenerate the lock. Front-end libraries - jQuery 1.12.4 -> 3.7.1 (CVE-2020-11022 / CVE-2020-11023 XSS). - Bootstrap 3.3.7 -> 3.4.1 (CVE-2018-14041 / CVE-2019-8331 XSS); drop-in upgrade that also adds jQuery 3 support. - Remove lib/php-mail-form/validate.js and its script tag; the site has no contact form, so it was loading on every page for nothing. Layout and markup fixes - Reference assets with relative_url instead of relative paths. Previously a 404 served at a nested URL loaded no CSS or JS at all. - Fix the grid on the home page and the two archived index pages: an outer col-*-12 combined with col-*-offset-1 totals 13 columns, so every page scrolled sideways (26px on desktop, 16px on mobile). The offsets now live on the inner columns and the rendered layout is unchanged. - Fill in the <title> and description meta tag fallbacks from _config.yml. - Remove the `rel="shortcut icon" href="#"` hack, which makes some browsers re-request the page itself as the favicon. - Add display=swap and preconnect hints to the Google Fonts request. Analytics - Remove the Universal Analytics tag. Google shut UA down in July 2023, so it had been loading a dead script and collecting nothing. _includes/analytics.html now emits a GA4 tag as soon as `google_analytics:` is set in _config.yml. CI - Add a workflow that builds the site on Ruby 3.3 and fails on broken internal links. Verified with a headless browser: all pages return 200, jQuery 3.7.1 and the Bootstrap and easing plugins load, smooth scrolling and the mobile navbar toggle work, no horizontal overflow at 1280/768/390px, no JS errors, and every internal link and PDF resolves. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01SiYeacL7eeoxKTFKqcS9Xg
Replaces the build-only workflow with a build-and-deploy one. GitHub's "deploy from a branch" mode builds with its own pinned Jekyll 3.10 and ignores the Gemfile, so production was running a different Jekyll than local development. Building the artifact here and publishing it with actions/deploy-pages puts production on Jekyll 4.4. - Deploy only on push to master; pull requests run the same build, the link check, and a guard that _site/CNAME survived, without publishing. - baseurl stays "" on purpose: the site is served from an apex custom domain, so the configure-pages baseurl output must not be applied. - configure-pages runs with enablement so it can flip the Pages source itself where permitted, and is non-fatal so a permissions failure surfaces as a clear deploy error rather than a confusing build one. - concurrency never cancels an in-progress deploy, which would risk leaving the live site half-published. Verified locally: a frozen/deployment-mode bundle install resolves against the committed lockfile, and JEKYLL_ENV=production jekyll build plus both checks pass. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01SiYeacL7eeoxKTFKqcS9Xg
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.
Toolchain
Ruby 3.x, so the site could not be built or served locally.
jekyll serveneeds.theme:setting. The site ships its ownlayouts in _layouts, so minima only contributed an unused stylesheet and a
pile of Sass deprecation warnings on every build.
Front-end libraries
upgrade that also adds jQuery 3 support.
contact form, so it was loading on every page for nothing.
Layout and markup fixes
404 served at a nested URL loaded no CSS or JS at all.
col--12 combined with col--offset-1 totals 13 columns, so every page
scrolled sideways (26px on desktop, 16px on mobile). The offsets now live on
the inner columns and the rendered layout is unchanged.
rel="shortcut icon" href="#"hack, which makes some browsersre-request the page itself as the favicon.
Analytics
had been loading a dead script and collecting nothing. _includes/analytics.html
now emits a GA4 tag as soon as
google_analytics:is set in _config.yml.CI
links.
Verified with a headless browser: all pages return 200, jQuery 3.7.1 and the
Bootstrap and easing plugins load, smooth scrolling and the mobile navbar
toggle work, no horizontal overflow at 1280/768/390px, no JS errors, and every
internal link and PDF resolves.
Co-Authored-By: Claude Opus 5 noreply@anthropic.com
Claude-Session: https://claude.ai/code/session_01SiYeacL7eeoxKTFKqcS9Xg