0.2.7
ℹ️ [TLDR] 0.2.7 brings experimental support for an image
field when using files source.
✨ (Experimental) Support for image
Field with Files Source
When using source-files
as the content source, you can now use an image
field. This will process images that are colocated with your content files, resolving the image path to a rich object containing properties for the image file. This will also move the image into a path that will ensure the image is publicly available on your site.
image
Field Example (Files Source)
Given a document type definition that specifies a coverImage
field of type image
:
const Post = defineDocumentType(() => ({
name: 'Post',
filePathPattern: 'posts/*.md',
fields: {
coverImage: { type: 'image' },
},
}))
And a content file that references a colocated image file:
---
coverImage: ./image-a.png
---
# Hello world
Contentlayer will produce the following for the coverImage
property within the document:
"coverImage": {
"filePath": "posts/image-a.png",
"relativeFilePath": "image-a.png",
"format": "png",
"height": 480,
"width": 640,
"blurhashDataUrl": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAMAAADz0U65AAAACVBMVEV8Ou12OOBtM9E8a9LBAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAHElEQVQImWNgwAIYmZhgDEYwzcQEQiABRhDCAgADQQAWowgdtgAAAABJRU5ErkJggg=="
},
Date Improvements
date
values that include timezones work more consistently (see #9 for details, and thanks to @pard68 & @mshick for their contributions).
This change removes the date-fns
library in favor of the new Temporal API (via a polyfill).
Other Improvements
- There is now a
resolveCwd
when using the files content source to explicitly tell Contentlayer how to resolve the current working directory. This also changes the default resolution behavior. See #270 for the change, which closes #266. And thanks to @mshick for their contribution here. - Upgraded dependencies.
- Strengthen codebase with more tests.
🐞 Bug Fixes
- Fix and better error logging when fields are missing from
defineDocument
. See #268 for details.