Skip to content

Conversation

matthewp
Copy link
Contributor

Changes

Testing

  • Added two new test cases in test/content-layer.test.js:
    • loads images with bare filenames in JSON - Tests bare filename resolution
    • loads images with relative paths in JSON - Ensures existing relative path behavior still works
  • Created rockets.json test fixture with both bare filename and relative path examples
  • Tests verify both formats resolve correctly to /_astro paths with proper image metadata
  • All test files are syntactically valid and follow existing test patterns

Docs

N/A, bug fix

Fixes #14456

The image() helper in content layer collections now normalizes bare
filenames (e.g., "cover.jpg") to relative paths (e.g., "./cover.jpg")
to ensure consistent resolution behavior with markdown frontmatter.

Without this normalization, bare filenames were passed directly to
Vite's resolver, which treated them as package imports rather than
relative file references, causing resolution failures.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
Adds a test case to verify that bare filenames (e.g., "cover.jpg")
work correctly in JSON content layer collections with the image()
helper, ensuring they are resolved the same way as in markdown
frontmatter.

The test includes:
- New rockets.json fixture with bare filename and relative path images
- Test assertions for both bare filename and relative path resolution
- Updated collections.json.js to include the new collection

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
Copy link

changeset-bot bot commented Oct 20, 2025

🦋 Changeset detected

Latest commit: 08f88ce

The changes in this PR will be included in the next version bump.

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

@github-actions github-actions bot added the pkg: astro Related to the core `astro` package (scope) label Oct 20, 2025
@matthewp matthewp changed the title Claude/review issue solution 011 cu jz v wzjca3so fi vr wxz s Fix bare images used in JSON content collections Oct 20, 2025
Copy link

codspeed-hq bot commented Oct 20, 2025

CodSpeed Performance Report

Merging #14590 will not alter performance

Comparing claude/review-issue-solution-011CUJzVWzjca3soFiVrWxzS (08f88ce) with main (7958c6b)1

Summary

✅ 6 untouched

Footnotes

  1. No successful run was found on main (ca1d331) during the generation of this report, so 7958c6b was used instead as the comparison base. There might be some changes unrelated to this pull request in this report.

Updates the bare filename normalization to properly skip:
- Alias paths starting with ~ (e.g., ~/assets/image.jpg)
- Alias paths starting with @ (e.g., @images/image.jpg)
- Parent directory paths starting with ../ (e.g., ../image.jpg)

This prevents breaking existing alias resolution while still
normalizing true bare filenames like "cover.jpg" to "./cover.jpg".

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
@matthewp matthewp marked this pull request as ready for review October 21, 2025 14:04
@matthewp matthewp merged commit 577d051 into main Oct 21, 2025
68 of 73 checks passed
@matthewp matthewp deleted the claude/review-issue-solution-011CUJzVWzjca3soFiVrWxzS branch October 21, 2025 15:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

pkg: astro Related to the core `astro` package (scope)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants