Skip to content

fix(embed): scope cached includes to their page context - #2820

Open
xu91102 wants to merge 1 commit into
docsifyjs:developfrom
xu91102:fix/embed-cache-route
Open

xu91102 wants to merge 1 commit into
docsifyjs:developfrom
xu91102:fix/embed-cache-route

Conversation

@xu91102

@xu91102 xu91102 commented Sep 28, 2026

Copy link
Copy Markdown
Contributor

Summary

Pages in different directories can display the wrong embedded file when their Markdown is identical. For example, both /first/ and /second/ can contain [snippet](snippet.js ':include :type=code'), while each directory has its own snippet.js. Visiting the first page and then the second currently keeps displaying the first directory's code.

The prerender cache is keyed only by raw Markdown, even though relative include resolution depends on the content base and current route. Include those two values in the cache key. The browser regression navigates first → second → first and checks the actual rendered code each time.

Related issue, if any:

Reproduced on develop at d823dbe51c1b2dea4c2091e2b952ded0d1e16616; no matching open fix found.

What kind of change does this PR introduce?

  • Bugfix

For any code change,

  • Related documentation has been updated, if needed (no public API change)
  • Related tests have been added or updated

Does this PR introduce a breaking change?

  • No

Validation

  • The browser regression failed before the fix: the second page rendered the first page's snippet. It passes after the fix, including navigation back to the first page.
  • npm run test:e2e:chromium -- test/e2e/embed.test.js --workers=1 --reporter=line: passed.
  • npm run test:jest -- --runInBand: 128 tests and 46 snapshots passed.
  • npm run build, npm run lint, npm run typecheck, and git diff --check: passed.
  • Independent read-only review: no required changes.

Browser coverage: Chromium via Playwright; Firefox, WebKit, and unrelated E2E suites were not run locally.

Developed with assistance from OpenAI Codex; regression and fix validated locally.

@vercel

vercel Bot commented Sep 28, 2026

Copy link
Copy Markdown

Someone is attempting to deploy a commit to the Docsify Team on Vercel.

A member of the Team first needs to authorize it.

This branch has not been deployed

No deployments
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