content.config.ts — astro Source File
Architecture documentation for content.config.ts, a typescript file in the astro codebase. 3 imports, 0 dependents.
Entity Profile
Dependency Diagram
graph LR e7dce0db_0b3a_afb5_bbd5_09510a54a5df["content.config.ts"] 48f80d01_e646_3924_78f6_a9d836644746["astro:content"] e7dce0db_0b3a_afb5_bbd5_09510a54a5df --> 48f80d01_e646_3924_78f6_a9d836644746 0f49b6f2_8b44_baf8_7812_a8fa2dd0ca84["zod"] e7dce0db_0b3a_afb5_bbd5_09510a54a5df --> 0f49b6f2_8b44_baf8_7812_a8fa2dd0ca84 d47373dc_6761_5858_3027_a4a6472dd795["loaders"] e7dce0db_0b3a_afb5_bbd5_09510a54a5df --> d47373dc_6761_5858_3027_a4a6472dd795 style e7dce0db_0b3a_afb5_bbd5_09510a54a5df fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
import { defineCollection } from 'astro:content';
import { z } from 'astro/zod';
import { glob } from 'astro/loaders';
const withData = defineCollection({
loader: glob({ pattern: '**/*.{json,yaml,yml}', base: './src/content/with-data' }),
schema: z.object({
title: z.string(),
}),
});
const withCustomSlugs = defineCollection({
loader: glob({ pattern: '**/*.{md,mdx}', base: './src/content/with-custom-slugs' }),
// Ensure schema passes even when `slug` is present
schema: z
.object({
slug: z.string().optional(),
})
.strict(),
});
const withSchemaConfig = defineCollection({
loader: glob({
pattern: [
'**/*.{md,mdx}', // Include all markdown files
'!**/_*/**', // Exclude anything in directories starting with _
'!**/_*.{md,mdx}',// Exclude files starting with _
],
base: './src/content/with-schema-config',
// Preserve special characters like % in filenames
generateId: ({ entry }) => entry.replace(/\.(md|mdx)$/, ''),
}),
schema: z.object({
title: z.string(),
isDraft: z.boolean().default(false),
lang: z.enum(['en', 'fr', 'es']).default('en'),
publishedAt: z.date().transform((val) => new Date(val)),
}),
});
const withUnionSchema = defineCollection({
loader: glob({ pattern: '**/*.{md,mdx}', base: './src/content/with-union-schema' }),
schema: z.discriminatedUnion('type', [
z.object({
type: z.literal('post'),
title: z.string(),
description: z.string(),
}),
z.object({
type: z.literal('newsletter'),
subject: z.string(),
}),
]),
});
const withSymlinkedData = defineCollection({
loader: glob({ pattern: '**/*.{json,yaml,yml}', base: './src/content/with-symlinked-data' }),
schema: ({ image }) =>
z.object({
alt: z.string(),
src: image(),
}),
});
const withSymlinkedContent = defineCollection({
loader: glob({ pattern: '**/*.{md,mdx}', base: './src/content/with-symlinked-content' }),
schema: z.object({
title: z.string(),
date: z.date(),
}),
});
const withScripts = defineCollection({
loader: glob({ pattern: '**/*.{md,mdx}', base: './src/content/with-scripts' }),
});
export const collections = {
'with-data': withData,
'with-custom-slugs': withCustomSlugs,
'with-schema-config': withSchemaConfig,
'with-union-schema': withUnionSchema,
'with-symlinked-data': withSymlinkedData,
'with-symlinked-content': withSymlinkedContent,
'with-scripts': withScripts,
};
Domain
Subdomains
Functions
Dependencies
- astro:content
- loaders
- zod
Source
Frequently Asked Questions
What does content.config.ts do?
content.config.ts is a source file in the astro codebase, written in typescript. It belongs to the IntegrationAdapters domain, SsrAdapters subdomain.
What functions are defined in content.config.ts?
content.config.ts defines 1 function(s): withSymlinkedData.schema.
What does content.config.ts depend on?
content.config.ts imports 3 module(s): astro:content, loaders, zod.
Where is content.config.ts in the architecture?
content.config.ts is located at packages/astro/test/fixtures/content-collections/src/content.config.ts (domain: IntegrationAdapters, subdomain: SsrAdapters, directory: packages/astro/test/fixtures/content-collections/src).
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free