Supporting numeric id references#16672
Conversation
🦋 Changeset detectedLatest commit: e1bdcdf The changes in this PR will be included in the next version bump. This PR includes changesets to release 400 packages
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
26cfc42 to
2428ac7
Compare
ematipico
left a comment
There was a problem hiding this comment.
Please open an issue that replicates the bug
|
Here’s a minimal repro of the issue: https://stackblitz.com/edit/github-zhbmyehh?file=src%2Fcontent.config.ts,src%2Fcontent%2Fblog%2Ffirst-post.md,src%2Fcontent%2Fblog%2F1234.md&on=stackblitz Basically, if you have a content collection entry with an ID like related:
- my-related-postThe issue with numeric IDs like related:
- 1234YAML will interpret this as a number and the collection will fail validation. Currently the workaround is that you need to explicitly write: related
- "1234"I think it’s a reasonable change for us to make to coerce numbers as it simplifies authoring expectations. |
I reproduced the issue as Ema requested
This is actually a patch not a minor, so this block is no longer relevant.
This PR contains the following updates: | Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) | |---|---|---|---| | [astro](https://astro.build) ([source](https://github.com/withastro/astro/tree/HEAD/packages/astro)) | [`6.4.6` → `6.4.7`](https://renovatebot.com/diffs/npm/astro/6.4.6/6.4.7) |  |  | --- ### Release Notes <details> <summary>withastro/astro (astro)</summary> ### [`v6.4.7`](https://github.com/withastro/astro/blob/HEAD/packages/astro/CHANGELOG.md#647) [Compare Source](https://github.com/withastro/astro/compare/astro@6.4.6...astro@6.4.7) ##### Patch Changes - [#​17035](withastro/astro#17035) [`197e50e`](withastro/astro@197e50e) Thanks [@​astrobot-houston](https://github.com/astrobot-houston)! - Fixes `getRelativeLocaleUrl`, `getAbsoluteLocaleUrl`, and `getAbsoluteLocaleUrlList` to strip trailing slashes when `trailingSlash: 'never'` is configured - [#​16967](withastro/astro#16967) [`3719765`](withastro/astro@3719765) Thanks [@​astrobot-houston](https://github.com/astrobot-houston)! - Fixes double URL-encoded paths returning 400 Bad Request on on-demand routes Previously, any URL containing a double-encoded character (like `%255B`, which is `[` encoded twice) was unconditionally rejected with a `400 Bad Request` before middleware or route handlers could run. This broke embedded tools like Sanity Studio whose client-side router legitimately produces double-encoded URLs. The fix replaces the rejection approach with iterative decoding — multi-level percent-encoding is now fully resolved to its canonical form before being passed to middleware and route matching. This preserves the security fix for CVE-2025-66202 (middleware authorization bypass via double encoding) because middleware now always sees the fully decoded path, making bypass impossible. For example, `/api/%2561dmin` is decoded to `/api/admin`, which middleware can correctly block. - [#​17066](withastro/astro#17066) [`2f4d92a`](withastro/astro@2f4d92a) Thanks [@​matthewp](https://github.com/matthewp)! - Fixes prerendered redirect targets being incorrectly bundled into the SSR function in hybrid mode, causing massive bundle size inflation - [#​16882](withastro/astro#16882) [`621beb7`](withastro/astro@621beb7) Thanks [@​jettwayio](https://github.com/jettwayio)! - fix(render): honour compressHTML when joining head elements - [#​16892](withastro/astro#16892) [`8d753b0`](withastro/astro@8d753b0) Thanks [@​astrobot-houston](https://github.com/astrobot-houston)! - Fixes custom elements in MDX having their children's `slot` attribute stripped by the JSX runtime When custom elements (tags with hyphens like `<my-element>`) are used in MDX files, the `slot` HTML attribute on their children is now correctly preserved. Previously, the shared JSX runtime would treat `slot` as an Astro slot assignment and remove it from the output, breaking Shadow DOM named slot distribution for web components. - [#​16957](withastro/astro#16957) [`544ee76`](withastro/astro@544ee76) Thanks [@​thelazylamaGit](https://github.com/thelazylamaGit)! - Fixes stale inline CSS in server-rendered HTML after CSS file edits during dev When editing a CSS file (`.css`, `.scss`, etc.) during development, the inline `<style>` tags in server-rendered HTML would retain old CSS content instead of updating. This caused a brief flash of old CSS (FOUC) on fresh page loads before Vite's client-side HMR corrected the styles. The fix ensures that Astro's per-route dev CSS virtual modules are invalidated in both the SSR module graph and the module runner's evaluation cache when a style file changes, so the next page render picks up the fresh CSS. - [#​17044](withastro/astro#17044) [`2220d22`](withastro/astro@2220d22) Thanks [@​astrobot-houston](https://github.com/astrobot-houston)! - Fixes CSS from `client:only` islands leaking to unrelated pages when Rollup bundles non-CSS-importing modules into the same chunk as CSS-importing modules - [#​17040](withastro/astro#17040) [`7c4763d`](withastro/astro@7c4763d) Thanks [@​astrobot-houston](https://github.com/astrobot-houston)! - Fixes HMR not triggering for files inside the `src/middleware/` directory during dev - [#​16672](withastro/astro#16672) [`52fc862`](withastro/astro@52fc862) Thanks [@​martinheidegger](https://github.com/martinheidegger)! - Fixes support for numeric IDs in YAML frontmatter when using content collection references - [#​16762](withastro/astro#16762) [`9de80ae`](withastro/astro@9de80ae) Thanks [@​alexanderdombroski](https://github.com/alexanderdombroski)! - Adds a JSON schema to the Wrangler configuration file generated when running `astro add cloudflare` - [#​17046](withastro/astro#17046) [`ef771ec`](withastro/astro@ef771ec) Thanks [@​ematipico](https://github.com/ematipico)! - Improves the diagnostics emitted when Astro parses incorrect `.astro` files. </details> --- ### Configuration 📅 **Schedule**: (UTC) - Branch creation - At any time (no schedule defined) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yMjIuMSIsInVwZGF0ZWRJblZlciI6IjQzLjIyMi4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->
Changes
This PR adjusts the
referencezod support to allow numbers that are transformed to strings.This has been an issue with collection-A markdown content that references collection-B entries with
1234in the frontmatter as the yaml is parsed to numbers.Testing
Added a small unit test that tests the case.
Docs
/cc @withastro/maintainers-docs I am not if documentation for this is needed.