Commit Graph

21 Commits

Author SHA1 Message Date
kayjaydee f72170b4f3 feat(rebrand): align jobTitle + meta + i18n on Hytale Plugin Developer (REBRAND-01/02/03)
- app/pages/index.vue: JSON-LD utilise siteConfig.jobTitle (Hytale Plugin Developer)
  + siteConfig.contact.email au lieu de hardcode "Developpeur Full Stack"
- nuxt.config.ts: site.name "Developpeur Full Stack" → "Hytale Plugin Developer"
- app/data/site.ts: description "Professional Full Stack Developer..." →
  "Hytale Plugin Developer & Web Developer..."
- i18n/fr.json + en.json: refonte positionnement sur 14 clés
  - a11y.logoLabel, seo.home/about/contact, about.title/intro/approach/cta,
    home.cta2, contact.title/subtitle/faq.projectTypes, projects.subtitle
  - Le titre principal "Hytale Plugin Developer & [Freelance] Web Dev"
  - Les 2 occurrences "full stack" restantes sont contextuelles (skills)

Laisse les projets web/bot existants (virtual-tour, flowboard, xinko...) visibles,
mentionne Hytale plugins car Phase 10 (5 démos) est planifiée.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-22 22:55:37 +02:00
kayjaydee 93f781f789 fix(nuxt.config): add hook to prevent Docker build hangs due to esbuild zombie process 2026-04-22 22:36:50 +02:00
kayjaydee 654842ba44 feat(07-01): wire global schema.org Person + WebSite and sitemap sources
- nuxt.config.ts: register 'nuxt-schema-org' module + sitemap.sources=['/api/__sitemap__/urls']
- app/utils/seo-person.ts: KILLIAN_PERSON_ID + killianPerson (derived from siteConfig, email excluded)
- app/app.vue: useSchemaOrg([definePerson(killianPerson), defineWebSite({name, inLanguage})]) appended (D-12)
- Verified SSR: /fr emits JSON-LD Person @id=#killian + WebSite (curl, pas d'hydratation)
2026-04-22 11:13:51 +02:00
kayjaydee 127db8b77a feat(blog): add dynamic blog post rendering with i18n support and error handling in [slug].vue 2026-04-22 00:20:52 +02:00
kayjaydee 839c584b0a refactor(config): update nuxt.config.ts to enhance module configuration, remove deprecated files, and improve contact form validation with zod schema 2026-04-21 23:15:04 +02:00
kayjaydee 20a5b5d85f feat(config): add route rules for blog redirection to French version with 301 status code 2026-04-21 19:36:43 +02:00
kayjaydee 7cd1531e06 fix(05): update test.vue path to /fr/blog prefix, add compatibilityDate 2026-04-21 16:55:57 +02:00
kayjaydee 277b407361 feat(05): i18n strategy prefix — /fr/blog and /en/blog explicit routes, update collection prefixes 2026-04-21 16:49:32 +02:00
kayjaydee 2ea6af0fff fix(05): install @iconify-json/lucide, pre-bundle zod in vite optimizeDeps 2026-04-21 16:41:23 +02:00
kayjaydee c5be72bdd9 fix(05-02): single dark theme for code blocks — github-dark always, remove dual-theme CSS 2026-04-21 16:35:06 +02:00
kayjaydee 3381b2efb3 feat(05-01): configure @nuxt/content with Shiki dual-theme and typography plugin
- Add '@nuxt/content' to modules array in nuxt.config.ts
- Add content block: Shiki dual-theme github-light/github-dark
- Add Shiki langs: kotlin, java, typescript, shell, bash, json, vue, html, css
- Add experimental.sqliteConnector: 'native' (Node 22 native SQLite)
- Add @plugin "@tailwindcss/typography" in main.css
2026-04-21 14:33:54 +02:00
kayjaydee c8dac9ac88 fix: update portfolio branding to "Killian' DAL-CIN" across all documentation and components
- Corrected the name in various files including CLAUDE.md, README.md, and configuration files to reflect the updated branding.
- Ensured consistency in the use of the new name throughout the project, enhancing brand identity.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-08 19:54:46 +02:00
kayjaydee a8f2874413 fix: use array syntax for components config with pathPrefix
Nuxt requires array syntax when configuring pathPrefix per directory.
Object syntax { pathPrefix: false } doesn't register component dirs.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-08 18:48:19 +02:00
kayjaydee e88a33987a fix: add pathPrefix: false to components config for auto-import
Nuxt prefixes components in subdirectories (layout/AppHeader → LayoutAppHeader).
Setting pathPrefix: false allows using <AppHeader>, <HeroSection>, etc. directly.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-08 18:47:05 +02:00
kayjaydee 21450afb20 feat(03-01): install deps, migrate site config, add SMTP runtimeConfig, wrap UApp
- Install nodemailer, zod, @types/nodemailer
- Create app/data/site.ts with migrated siteConfig from src/config/site.ts
- Add SiteConfig, ContactInfo, SocialLink, FiverrService, FiverrConfig to shared/types
- Add smtpHost/smtpUser/smtpPass/smtpTo to private runtimeConfig
- Wrap app.vue with UApp for useToast() support
2026-04-08 18:32:24 +02:00
kayjaydee 00b4f3c79c fix(i18n): move locale files to i18n/locales/ for @nuxtjs/i18n resolution
@nuxtjs/i18n resolves langDir relative to its own i18n/ directory,
not the project root. Moved fr.json and en.json accordingly.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-08 16:33:07 +02:00
kayjaydee 09cfc0aaf3 fix(02): resolve 3 typecheck errors and i18n langDir path
- useSetLocale → destructured setLocale from useI18n()
- addSeoAttributes → seo option for useLocaleHead()
- process.env → import.meta.env for Nuxt compatibility
- langDir: 'locales/' → 'app/locales/' (Nuxt 4 resolves from project root)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-08 16:31:58 +02:00
kayjaydee d27b9a3d3c feat(02-01): design system, color-mode, sitemap config
- Brand color #85cb85 as CSS @theme with full shade palette
- app.config.ts maps Nuxt UI primary to brand
- colorMode with cookie storage, dark default, no FOUC
- i18n baseUrl and site.url for absolute SEO URLs
- Static og:image placeholder in public/

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-08 16:17:04 +02:00
kayjaydee c6744ab107 fix(01): WR-01 complete i18n config with strategy, langDir and locale files 2026-04-08 15:17:00 +02:00
kayjaydee 184e1257fe fix(01): CR-01 move gtag ID to runtime config env var 2026-04-08 15:16:50 +02:00
kayjaydee 9fbbce07e0 feat(01-01): initialize Nuxt 4 project with all modules
- nuxt.config.ts with compatibilityVersion 4, SSR, 6 modules
- app/app.vue and app/pages/index.vue minimal setup
- pnpm as package manager with all dependencies installed
- TypeScript strict mode enabled
- .gitignore updated for Nuxt (.nuxt, .output, .env)
- tsconfig.json extends .nuxt/tsconfig.json
2026-04-08 14:51:52 +02:00