diff options
author | 2023-01-18 08:43:58 -0500 | |
---|---|---|
committer | 2023-01-18 08:43:58 -0500 | |
commit | 7d72aeeae8c867af2ae6c018611e39c184f50619 (patch) | |
tree | 93015c571dc820db3e37e8eba93455014a048d7e /examples/blog/src/content/config.ts | |
parent | 006405d33c2b8eb1307cb84161659428e43efa51 (diff) | |
download | astro-7d72aeeae8c867af2ae6c018611e39c184f50619.tar.gz astro-7d72aeeae8c867af2ae6c018611e39c184f50619.tar.zst astro-7d72aeeae8c867af2ae6c018611e39c184f50619.zip |
Migrate blog and docs starters to content collections (#5858)
* docs: update README for `content/`
* chore: update env
* feat: update blog to use content collections
* chore: remove with-content starter
* fix: single quotes -> double
* feat: update docs starter to content collections
* refactor: config -> consts
* chore: import type
* edit: Astro will -> Use
Co-authored-by: Sarah Rainsberger <sarah@rainsberger.ca>
* chore: remove unused null check
* nit: spacing
* nit: `as Props` 1
Co-authored-by: Nate Moore <natemoo-re@users.noreply.github.com>
* nit: `as Props` 2
Co-authored-by: Nate Moore <natemoo-re@users.noreply.github.com>
* chore: consistent CONSTS usage
* chore: `type` imports at top
* chore: consistent quote usage on YAML
* chore: remove `as Props` from docs
Co-authored-by: Sarah Rainsberger <sarah@rainsberger.ca>
Co-authored-by: Nate Moore <natemoo-re@users.noreply.github.com>
Diffstat (limited to 'examples/blog/src/content/config.ts')
-rw-r--r-- | examples/blog/src/content/config.ts | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/examples/blog/src/content/config.ts b/examples/blog/src/content/config.ts new file mode 100644 index 000000000..b4e86c9f7 --- /dev/null +++ b/examples/blog/src/content/config.ts @@ -0,0 +1,21 @@ +import { defineCollection, z } from 'astro:content'; + +const blog = defineCollection({ + // Type-check frontmatter using a schema + schema: z.object({ + title: z.string(), + description: z.string(), + // Transform string to Date object + pubDate: z + .string() + .or(z.date()) + .transform((val) => new Date(val)), + updatedDate: z + .string() + .optional() + .transform((str) => (str ? new Date(str) : undefined)), + heroImage: z.string().optional(), + }), +}); + +export const collections = { blog }; |