mirror of
https://github.com/FreshRSS/FreshRSS.git
synced 2026-05-14 02:03:55 -04:00
Jekyll 3 is unmaintained and its safe_yaml dependency breaks on Ruby 3.4+ where base64 left the default stdlib. The docs workflow already runs `bundle exec jekyll build` directly, so GitHub Pages' Jekyll 3 lock does not apply here. Changes: * Pin `jekyll ~> 4.3`. Replace `jekyll-commonmark-ghpages` (pinned to Jekyll 3) with upstream `jekyll-commonmark`. Drop unused `jekyll-paginate`. Add `gem 'base64'` so the lockfile stays valid on Ruby 3.4+ where it became a bundled gem. * Move CommonMark options into `_config.yml` to match what the `-ghpages` variant enabled by default: SMART, FOOTNOTES, UNSAFE (so inline HTML like `<br>` in tables still renders), plus the strikethrough, autolink, table, and tagfilter extensions. Set Rouge as the highlighter. * Strip the leading slash from `defaults.scope.path` (`/en/*` to `en`). Jekyll 4 requires no leading slash, otherwise `page.lang` silently fails to propagate and `jekyll-i18n_tags` crashes the build. * Pass `generateId=true` to the existing `anchor_headings.html` include so headings get slugified IDs. The `-ghpages` variant produced these by default. * Bump CI Ruby to 3.4.9 and `cache-version` to invalidate the old Jekyll 3 gem cache on the first run. Build is about 9x faster (1.0s vs 9.2s). Compared the rendered output page by page against the Jekyll 3 baseline; remaining differences are whitespace, footnote class names (no CSS depends on either set), and one HTML entity (`↩`) becoming the literal `↩`. Visually and functionally the same. Co-authored-by: Bjørn A. Andersen <polybjorn@users.noreply.github.com>