mirror of
https://github.com/ArthurDanjou/artmcp.git
synced 2026-01-14 20:19:36 +01:00
- 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.
86 lines
2.1 KiB
TypeScript
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())
|
|
})
|
|
})
|
|
}
|
|
})
|