mirror of
https://github.com/ArthurDanjou/artsite.git
synced 2026-01-14 15:54:13 +01:00
feat: ajouter de nouvelles collections et modifier la configuration de Nuxt
This commit is contained in:
@@ -1,8 +1,114 @@
|
|||||||
import { defineCollection } from '@nuxt/content'
|
import { defineCollection, z } from '@nuxt/content'
|
||||||
|
|
||||||
export const collections = {
|
export const collections = {
|
||||||
main: defineCollection({
|
index: defineCollection({
|
||||||
type: 'page',
|
type: 'page',
|
||||||
source: 'home/*.md'
|
source: 'index.md'
|
||||||
|
}),
|
||||||
|
projects: defineCollection({
|
||||||
|
type: 'data',
|
||||||
|
source: 'projects/*.md',
|
||||||
|
schema: z.object({
|
||||||
|
slug: z.string(),
|
||||||
|
title: z.string(),
|
||||||
|
type: z.string().optional(),
|
||||||
|
description: z.string(),
|
||||||
|
publishedAt: z.string(),
|
||||||
|
readingTime: z.number().optional(),
|
||||||
|
tags: z.array(z.string()),
|
||||||
|
cover: z.string().optional(),
|
||||||
|
favorite: z.boolean().optional(),
|
||||||
|
status: z.string().optional(),
|
||||||
|
emoji: z.string().optional()
|
||||||
|
})
|
||||||
|
}),
|
||||||
|
uses: defineCollection({
|
||||||
|
type: 'page',
|
||||||
|
source: 'uses.md'
|
||||||
|
}),
|
||||||
|
skills: defineCollection({
|
||||||
|
type: 'data',
|
||||||
|
source: 'skills.json',
|
||||||
|
schema: z.object({
|
||||||
|
description: z.string(),
|
||||||
|
skills: z.array(z.object({
|
||||||
|
id: z.string(),
|
||||||
|
name: z.string(),
|
||||||
|
description: z.string().optional(),
|
||||||
|
items: z.array(z.object({
|
||||||
|
name: z.string(),
|
||||||
|
icon: z.string().optional()
|
||||||
|
}))
|
||||||
|
}))
|
||||||
|
})
|
||||||
|
}),
|
||||||
|
experiences: defineCollection({
|
||||||
|
type: 'data',
|
||||||
|
source: 'experiences/*.md',
|
||||||
|
schema: z.object({
|
||||||
|
title: z.string(),
|
||||||
|
type: z.string().optional(),
|
||||||
|
company: z.string(),
|
||||||
|
companyUrl: z.string().url().optional(),
|
||||||
|
startDate: z.string(),
|
||||||
|
endDate: z.string().optional(),
|
||||||
|
duration: z.string().optional(),
|
||||||
|
location: z.string(),
|
||||||
|
description: z.string(),
|
||||||
|
tags: z.array(z.string()).optional(),
|
||||||
|
emoji: z.string().optional()
|
||||||
|
})
|
||||||
|
}),
|
||||||
|
education: defineCollection({
|
||||||
|
type: 'data',
|
||||||
|
source: 'education/*.md',
|
||||||
|
schema: z.object({
|
||||||
|
title: z.string(),
|
||||||
|
type: z.string().optional(),
|
||||||
|
degree: z.string().optional(),
|
||||||
|
institution: z.string(),
|
||||||
|
startDate: z.string(),
|
||||||
|
endDate: z.string().optional(),
|
||||||
|
duration: z.string().optional(),
|
||||||
|
location: z.string(),
|
||||||
|
description: z.string().optional(),
|
||||||
|
tags: z.array(z.string()).optional(),
|
||||||
|
emoji: z.string().optional()
|
||||||
|
})
|
||||||
|
}),
|
||||||
|
contact: defineCollection({
|
||||||
|
type: 'data',
|
||||||
|
source: 'contact.json',
|
||||||
|
schema: z.object({
|
||||||
|
contact: z.array(z.object({
|
||||||
|
id: z.string(),
|
||||||
|
name: z.string(),
|
||||||
|
description: z.string().optional(),
|
||||||
|
category: z.string().optional(),
|
||||||
|
icon: z.string().optional(),
|
||||||
|
value: z.string().url(),
|
||||||
|
username: z.string().optional(),
|
||||||
|
priority: z.number().optional()
|
||||||
|
}))
|
||||||
|
})
|
||||||
|
}),
|
||||||
|
hobbies: defineCollection({
|
||||||
|
type: 'page',
|
||||||
|
source: 'hobbies.md'
|
||||||
|
}),
|
||||||
|
languages: defineCollection({
|
||||||
|
type: 'data',
|
||||||
|
source: 'languages.json',
|
||||||
|
schema: z.object({
|
||||||
|
languages: z.array(z.object({
|
||||||
|
name: z.string(),
|
||||||
|
level: z.string(),
|
||||||
|
proficiency: z.string()
|
||||||
|
}))
|
||||||
|
})
|
||||||
|
}),
|
||||||
|
profile: defineCollection({
|
||||||
|
type: 'page',
|
||||||
|
source: 'profile.md'
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,7 +7,6 @@ export default defineNuxtConfig({
|
|||||||
'@nuxthub/core',
|
'@nuxthub/core',
|
||||||
'@nuxt/eslint',
|
'@nuxt/eslint',
|
||||||
'@vueuse/nuxt',
|
'@vueuse/nuxt',
|
||||||
'@nuxtjs/i18n',
|
|
||||||
'nuxt-studio'
|
'nuxt-studio'
|
||||||
],
|
],
|
||||||
|
|
||||||
@@ -63,28 +62,17 @@ export default defineNuxtConfig({
|
|||||||
},
|
},
|
||||||
|
|
||||||
runtimeConfig: {
|
runtimeConfig: {
|
||||||
api: {
|
discord: {
|
||||||
url: ''
|
userId: '',
|
||||||
|
id: ''
|
||||||
},
|
},
|
||||||
public: {
|
statusPage: '',
|
||||||
i18n: {
|
wakatime: {
|
||||||
baseUrl: ''
|
userId: '',
|
||||||
}
|
coding: '',
|
||||||
}
|
editors: '',
|
||||||
},
|
languages: '',
|
||||||
|
os: ''
|
||||||
routeRules: {
|
|
||||||
'/api/activity': {
|
|
||||||
proxy: `${process.env.NUXT_API_URL}/api/activity`
|
|
||||||
},
|
|
||||||
'/api/stats': {
|
|
||||||
proxy: `${process.env.NUXT_API_URL}/api/stats`
|
|
||||||
},
|
|
||||||
'/api/uses': {
|
|
||||||
proxy: `${process.env.NUXT_API_URL}/api/uses`
|
|
||||||
},
|
|
||||||
'/api/': {
|
|
||||||
proxy: `${process.env.NUXT_API_URL}/api/`
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
@@ -116,30 +104,6 @@ export default defineNuxtConfig({
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
i18n: {
|
|
||||||
strategy: 'no_prefix',
|
|
||||||
locales: [
|
|
||||||
{
|
|
||||||
label: 'English',
|
|
||||||
code: 'en',
|
|
||||||
language: 'en-EN',
|
|
||||||
icon: 'i-twemoji-flag-united-kingdom'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'Français',
|
|
||||||
code: 'fr',
|
|
||||||
language: 'fr-FR',
|
|
||||||
icon: 'i-twemoji-flag-france'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'Español',
|
|
||||||
code: 'es',
|
|
||||||
language: 'es-ES',
|
|
||||||
icon: 'i-twemoji-flag-spain'
|
|
||||||
}
|
|
||||||
],
|
|
||||||
defaultLocale: 'en'
|
|
||||||
},
|
|
||||||
studio: {
|
studio: {
|
||||||
route: '/studio',
|
route: '/studio',
|
||||||
repository: {
|
repository: {
|
||||||
|
|||||||
Reference in New Issue
Block a user