Files
artmcp/content.config.ts
Arthur DANJOU 74d747e29a Refactor experiences data format from JSON to Markdown
- Updated content.config.ts to change experiences source from JSON to Markdown files.
- Deleted JSON files for experiences: artdanjproduction, erisium, picard, and sevetys.
- Created corresponding Markdown files for each experience with structured front matter.
- Added new API endpoints for fetching experiences and projects in Markdown format.
- Removed unused ping API endpoint.
- Updated package.json with new dependencies for AI SDK and Zod.
- Added new resume files in PDF format for M1 2026 in English and French.
2025-11-12 23:23:05 +01:00

86 lines
2.1 KiB
TypeScript

import { defineCollection, defineContentConfig, z } from '@nuxt/content'
export default defineContentConfig({
collections: {
projects: defineCollection({
type: 'page',
source: 'projects/*.md',
schema: z.object({
slug: z.string(),
title: z.string(),
description: z.string(),
publishedAt: z.string(),
readingTime: z.number().optional(),
tags: z.array(z.string()),
cover: z.string(),
favorite: z.boolean().optional()
})
}),
usesCategories: defineCollection({
type: 'data',
source: 'uses/categories/*.json',
schema: z.object({
slug: z.string(),
name: z.object({
en: z.string(),
fr: z.string(),
es: z.string()
})
})
}),
uses: defineCollection({
type: 'data',
source: 'uses/*.json',
schema: z.object({
name: z.string(),
description: z.object({
en: z.string(),
fr: z.string(),
es: z.string()
}),
category: z.string()
})
}),
skills: defineCollection({
type: 'data',
source: 'skills.json',
schema: z.object({
body: z.array(z.object({
id: z.string(),
name: z.object({
en: z.string(),
fr: z.string(),
es: z.string()
}),
items: z.array(z.object({
name: z.string(),
icon: z.string()
}))
}))
})
}),
experiences: defineCollection({
type: 'data',
source: 'experiences/*.md',
schema: z.object({
title: z.object({
en: z.string(),
fr: z.string(),
es: z.string()
}),
company: z.string(),
companyUrl: z.string().url().optional(),
startDate: z.string(),
endDate: z.string().optional(),
location: z.string(),
description: z.object({
en: z.string(),
fr: z.string(),
es: z.string()
}),
tags: z.array(z.string())
})
})
}
})