Skip to content

Update: dependency updates (katex, lodash, ava 7, jsdom 29) - #55

Merged
Aetf merged 2 commits into
developfrom
chore/dependency-updates
Aug 6, 2026
Merged

Update: dependency updates (katex, lodash, ava 7, jsdom 29)#55
Aetf merged 2 commits into
developfrom
chore/dependency-updates

Conversation

@Aetf

@Aetf Aetf commented Aug 6, 2026

Copy link
Copy Markdown
Owner

The safe half of the dependency sweep. Everything here is verified and mergeable on its own; the Hexo 8 work is split out into a separate branch because it is blocked on an upstream release.

In-range updates (npm update)

hexo-cli                  4.3.1   -> 4.3.2
hexo-excerpt              1.3.0   -> 1.3.1
hexo-fs                   4.1.1   -> 4.1.3
hexo-renderer-markdown-it 7.1.0   -> 7.1.1
hexo-renderer-stylus      3.0.0   -> 3.0.1
katex                     0.16.8  -> 0.16.47
lodash                    4.17.21 -> 4.18.1

Snapshots were regenerated for the KaTeX bump. The complete set of content changes is numeric precision in inline styles — KaTeX now rounds to four decimals — plus one accent-placement fix:

margin-right:0.02778em -> 0.0278em
margin-right:0.03588em -> 0.0359em
margin-right:0.05017em -> 0.0502em
margin-right:0.07153em -> 0.0715em
margin-right:0.10764em -> 0.1076em
left:-0.1944em         -> -0.25em

No structural markup change. post.js.snap churns only its ava version stamp — the human-readable post.js.md companion is byte-identical.

Major bumps

  • ava 5 -> 7, jsdom 22 -> 29. Both devDependencies only. ava 6 renamed ignoredByWatcher to watchMode.ignoreChanges and ava 7 hard-errors on the old key, so ava.config.mjs is updated. Node floors (^20.19) are satisfied by .nvmrc's 20 and by CI's node-version: latest.

43/43 tests pass; headless render of /, /blog, /about, /projects, /research and a post is clean with zero console errors.

Deliberately not updated

katex stays on ^0.16. 0.18.0's breaking change is "prefix css classes". The npm package only does the server-side render here — the matching stylesheet comes from cdnjs at whatever version NexT's _vendors.yml pins, currently 0.16.9. Bumping the package alone would emit prefixed class names against unprefixed CSS and render every equation as unstyled text, and custom/styles/math.styl's .katex selector would stop matching too. This can only move once NexT's vendored KaTeX does.

Split out of this PR

  • Hexo 6 -> 8 is on chore/hexo-8. It works and is verified, but it is blocked on a hexo-next-publist release (Fix: support Hexo 7/8, and pin @primer/css back to ^17 hexo-next-publist#197) — the published 2.2.1 fails to load on Hexo 8, so CI would fail here.
  • The muse.js entry in tools/link_check_skip.txt says "remove after next-theme/hexo-theme-next@0708dc7e is included in a release". We are now well past 8.24.0 and I could find no muse.js reference in the build, so it is plausibly dead — but I did not want to remove a link-check skip in a PR about dependency versions.

🤖 Generated with Claude Code

Aetf and others added 2 commits August 5, 2026 22:07
`npm update` within the existing semver ranges:

  hexo-cli                  4.3.1  -> 4.3.2
  hexo-excerpt              1.3.0  -> 1.3.1
  hexo-fs                   4.1.1  -> 4.1.3
  hexo-renderer-markdown-it 7.1.0  -> 7.1.1
  hexo-renderer-stylus      3.0.0  -> 3.0.1
  katex                     0.16.8 -> 0.16.47
  lodash                    4.17.21 -> 4.18.1

Snapshots regenerated for the KaTeX bump. The only content change is
numeric precision in inline styles (KaTeX now rounds to 4 decimals,
e.g. `margin-right:0.03588em` -> `0.0359em`) plus one accent-placement
fix (`left:-0.1944em` -> `-0.25em`). No structural markup change.
`post.js.snap` churns only its ava version stamp — the human-readable
`post.js.md` companion is byte-identical.

43/43 tests pass; headless render of /, /blog, /about, /projects,
/research and a post is clean.

Co-Authored-By: Claude <noreply@anthropic.com>
Both are devDependencies only (test harness). ava 6 renamed the
`ignoredByWatcher` config key to `watchMode.ignoreChanges`, which ava 7
now hard-errors on, so ava.config.mjs is updated accordingly. Node
engine floors (ava ^20.19, jsdom ^20.19) are satisfied by .nvmrc's 20
and by CI's `node-version: latest`.

43/43 tests pass with no snapshot changes.

Co-Authored-By: Claude <noreply@anthropic.com>
@Aetf
Aetf force-pushed the chore/dependency-updates branch from 0c33524 to 6bdaaba Compare August 6, 2026 05:07
@Aetf
Aetf merged commit a9a1dfb into develop Aug 6, 2026
1 of 2 checks passed
@Aetf
Aetf deleted the chore/dependency-updates branch August 6, 2026 18:47
Aetf added a commit that referenced this pull request Aug 6, 2026
All three are Hexo 8-era releases (hexo-generator-feed 4 depends on
hexo-util 4, hexo-generator-index 4 on hexo-pagination 3), so they sit
on top of the Hexo 8 bump rather than in the earlier dependency batch.

Diffed a clean build against a clean pre-bump build. Every HTML page is
identical once the random prism code-block ids are normalised. Only two
outputs change, both from hexo-generator-feed 4's rewritten generator:

* `atom.xml` — reordered elements, and it now emits a feed-level
  `<rights>` plus a per-entry `<author>`. Parsed both with ElementTree:
  same 21 entries, same ids, same titles, all still carrying `<content>`.
  Strictly richer, nothing dropped.

* `search.xml` — same 21 entries in a different order. Compared per-URL
  content hashes: identical set, identical content, order only. It is a
  search corpus, so order carries no meaning.

Post listing order and pagination are unchanged. 43/43 tests pass and a
headless render of /, /blog, /about, /projects, /research and a post is
clean.

katex stays on ^0.16 — see #55 for why 0.18 can't move until NexT's
vendored KaTeX CSS does.

Co-Authored-By: Claude <noreply@anthropic.com>
Aetf added a commit that referenced this pull request Aug 6, 2026
All three are Hexo 8-era releases (hexo-generator-feed 4 depends on
hexo-util 4, hexo-generator-index 4 on hexo-pagination 3), so they sit
on top of the Hexo 8 bump rather than in the earlier dependency batch.

Diffed a clean build against a clean pre-bump build. Every HTML page is
identical once the random prism code-block ids are normalised. Only two
outputs change, both from hexo-generator-feed 4's rewritten generator:

* `atom.xml` — reordered elements, and it now emits a feed-level
  `<rights>` plus a per-entry `<author>`. Parsed both with ElementTree:
  same 21 entries, same ids, same titles, all still carrying `<content>`.
  Strictly richer, nothing dropped.

* `search.xml` — same 21 entries in a different order. Compared per-URL
  content hashes: identical set, identical content, order only. It is a
  search corpus, so order carries no meaning.

Post listing order and pagination are unchanged. 43/43 tests pass and a
headless render of /, /blog, /about, /projects, /research and a post is
clean.

katex stays on ^0.16 — see #55 for why 0.18 can't move until NexT's
vendored KaTeX CSS does.

Co-Authored-By: Claude <noreply@anthropic.com>
Aetf added a commit that referenced this pull request Aug 6, 2026
All three are Hexo 8-era releases (hexo-generator-feed 4 depends on
hexo-util 4, hexo-generator-index 4 on hexo-pagination 3), so they sit
on top of the Hexo 8 bump rather than in the earlier dependency batch.

Diffed a clean build against a clean pre-bump build. Every HTML page is
identical once the random prism code-block ids are normalised. Only two
outputs change, both from hexo-generator-feed 4's rewritten generator:

* `atom.xml` — reordered elements, and it now emits a feed-level
  `<rights>` plus a per-entry `<author>`. Parsed both with ElementTree:
  same 21 entries, same ids, same titles, all still carrying `<content>`.
  Strictly richer, nothing dropped.

* `search.xml` — same 21 entries in a different order. Compared per-URL
  content hashes: identical set, identical content, order only. It is a
  search corpus, so order carries no meaning.

Post listing order and pagination are unchanged. 43/43 tests pass and a
headless render of /, /blog, /about, /projects, /research and a post is
clean.

katex stays on ^0.16 — see #55 for why 0.18 can't move until NexT's
vendored KaTeX CSS does.

Co-Authored-By: Claude <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant