Skip to content

chore(deps-dev): upgrade eleventy 2->3 and markdown-it 13->14 in /docs#1984

Merged
elsapet merged 3 commits into
mainfrom
docs/eleventy-3-upgrade
Jun 23, 2026
Merged

chore(deps-dev): upgrade eleventy 2->3 and markdown-it 13->14 in /docs#1984
elsapet merged 3 commits into
mainfrom
docs/eleventy-3-upgrade

Conversation

@elsapet

@elsapet elsapet commented Jun 23, 2026

Copy link
Copy Markdown
Contributor

Supersedes dependabot PR #1976 (which bumps only the two packages and would not build under eleventy v3 without the config/CI changes below).

What

  • @11ty/eleventy 2.0.1 → 3.1.6
  • markdown-it 13.0.2 → 14.2.0
  • docs/.eleventy.js: config callback made async; EleventyHtmlBasePlugin / EleventyRenderPlugin moved to a dynamic import() inside it
  • CI Node 16 → 20 in docs.yml (build + Pages deploy) and lint_docs.yml (lint)

Why the config change

Eleventy v3 publishes its named exports as ESM-only, so the top-level require("@11ty/eleventy") throws on Node < 22.12. Rather than convert the whole CommonJS config (and all the local required modules) to ESM, only those two exports are dynamic-import()ed inside the now-async callback — the eleventy-recommended minimal fix.

Why Node 20

Eleventy v3 requires Node ≥18; gitly wants ≥20. Node 20 (active LTS) satisfies both.

Minimal churn

syntaxhighlight (4.2.0), eleventy-fetch (3.0.0), eleventy-plugin-toc (1.1.5) and markdown-it-emoji (2.0.2) are all compatible with v3 unchanged — no extra bumps, no markdown-it-emoji v3 import migration needed.

Verification

  • Clean npm ci + npm run build on Node 20-equivalent → exit 0, 880 files on v3.1.6 (identical count to v2), no warnings/errors
  • npm run lint → exit 0
  • Rendered _site checked: syntax highlighting (491 pages), mermaid (1), TOC (498) all render and coexist; 0 unrendered template/shortcode tags

🤖 Generated with Claude Code

Bumps @11ty/eleventy 2.0.1 -> 3.1.6 and markdown-it 13.0.2 -> 14.2.0 (#1976).

Eleventy v3 ships its named exports (EleventyHtmlBasePlugin,
EleventyRenderPlugin) as ESM-only, so the top-level require() in the
CommonJS config breaks on Node < 22.12. Resolved by making the config
callback async and dynamic-importing those exports inside it, keeping
the rest of the file CommonJS.

Eleventy v3 requires Node >=18, so the docs build/deploy and lint
workflows are bumped from Node 16 to Node 20 (also satisfies gitly's
>=20 engine requirement).

Plugins (syntaxhighlight 4.2.0, eleventy-fetch 3.0.0, eleventy-plugin-toc
1.1.5, markdown-it-emoji 2.0.2) verified compatible with v3 as-is, no
bumps required. Build produces 880 files identically to v2; syntax
highlighting, mermaid, and TOC all render correctly.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@elsapet elsapet requested a review from gotbadger June 23, 2026 14:11
Comment thread .github/workflows/docs.yml Outdated
@elsapet elsapet requested a review from gotbadger June 23, 2026 15:37
Comment thread docs/_data/rules.js
@elsapet elsapet merged commit 95ff53b into main Jun 23, 2026
9 checks passed
@elsapet elsapet deleted the docs/eleventy-3-upgrade branch June 23, 2026 15:41
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.

2 participants