From 557861aa955ee0a0efb97bc4e0a57f6f3b255b8b Mon Sep 17 00:00:00 2001 From: kayjaydee Date: Tue, 21 Apr 2026 14:35:24 +0200 Subject: [PATCH] =?UTF-8?q?docs(05-01):=20complete=20@nuxt/content=20setup?= =?UTF-8?q?=20plan=20=E2=80=94=20SUMMARY=20created?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../05-01-SUMMARY.md | 95 +++++++++++++++++++ 1 file changed, 95 insertions(+) create mode 100644 .planning/phases/05-nuxt-content-setup-renderer/05-01-SUMMARY.md diff --git a/.planning/phases/05-nuxt-content-setup-renderer/05-01-SUMMARY.md b/.planning/phases/05-nuxt-content-setup-renderer/05-01-SUMMARY.md new file mode 100644 index 0000000..1baff7a --- /dev/null +++ b/.planning/phases/05-nuxt-content-setup-renderer/05-01-SUMMARY.md @@ -0,0 +1,95 @@ +--- +phase: 05-nuxt-content-setup-renderer +plan: "01" +subsystem: cms-infrastructure +tags: [nuxt-content, shiki, tailwind-typography, sqlite, i18n, collections] +dependency_graph: + requires: [] + provides: [nuxt-content-module, shiki-dual-theme, bilingual-collections, typography-plugin] + affects: [nuxt.config.ts, content.config.ts, app/assets/css/main.css] +tech_stack: + added: + - "@nuxt/content@3.13.0" + - "@tailwindcss/typography@0.5.19" + patterns: + - "Shiki dual-theme via theme.default + theme.dark (github-light/github-dark)" + - "SQLite connecteur natif Node 22 via experimental.sqliteConnector: 'native'" + - "Collections i18n: prefix_except_default — blog_fr=/blog, blog_en=/en/blog" + - "@plugin CSS syntax pour Tailwind v4 plugins" +key_files: + created: + - content.config.ts + modified: + - nuxt.config.ts + - app/assets/css/main.css + - .gitignore +decisions: + - "sqliteConnector: 'native' (Node 22) — évite better-sqlite3 et ses bindings natifs" + - "Prefixes collections alignés sur i18n.strategy: prefix_except_default (FR sans prefix, EN avec /en/)" + - "Shiki langs: kotlin, java, typescript, shell, bash, json, vue, html, css" +metrics: + duration: "~10 minutes" + completed: "2026-04-21" + tasks_completed: 3 + tasks_total: 3 + files_created: 1 + files_modified: 3 +--- + +# Phase 05 Plan 01: @nuxt/content Install & Configuration Summary + +Installation et configuration de @nuxt/content v3 avec Shiki dual-theme, collections bilingues FR/EN, et plugin @tailwindcss/typography pour le portfolio Nuxt 4. + +## Tasks Completed + +| Task | Name | Commit | Files | +|------|------|--------|-------| +| 1 | Installer @nuxt/content et @tailwindcss/typography | c64709d | package.json, pnpm-lock.yaml | +| 2 | Configurer nuxt.config.ts et main.css | 3381b2e | nuxt.config.ts, app/assets/css/main.css | +| 3 | Créer content.config.ts avec collections bilingues | 8319789 | content.config.ts | +| — | Fix: .data dans .gitignore | f49fab2 | .gitignore | + +## Decisions Made + +1. **sqliteConnector: 'native'** — Node 22 inclut SQLite natif, évite la dépendance `better-sqlite3` et ses bindings C++ à compiler. +2. **Prefixes i18n des collections** — alignés sur `prefix_except_default` : `blog_fr` → `/blog` (FR = locale par défaut, pas de prefix), `blog_en` → `/en/blog`. +3. **Schema Zod minimal** — `title`, `description`, `date` requis + `tags`, `image` optionnels. Les champs `author` et `og:image` seront ajoutés en Phase 7. + +## Deviations from Plan + +### Auto-fixed Issues + +**1. [Rule 2 - Missing] .data/ non tracké dans .gitignore** +- **Found during:** Après Task 3 (smoke test `pnpm dev`) +- **Issue:** `@nuxt/content` génère un répertoire `.data/content/` (base SQLite runtime) non ignoré par git +- **Fix:** Ajout de `.data` dans `.gitignore` +- **Files modified:** .gitignore +- **Commit:** f49fab2 + +## Verification Results + +``` +grep '"@nuxt/content"' package.json → "@nuxt/content": "^3.13.0" +grep "'@nuxt/content'" nuxt.config.ts → '@nuxt/content' +grep "github-dark" nuxt.config.ts → dark: 'github-dark' +grep "sqliteConnector" nuxt.config.ts → sqliteConnector: 'native' +grep "nativeSqlite" nuxt.config.ts → (rien — correct) +grep '@plugin' app/assets/css/main.css → @plugin "@tailwindcss/typography"; +grep "blog_fr\|blog_en" content.config.ts → blog_fr + blog_en +pnpm dev → Nuxt 4.4.2 démarre sur :3000 sans erreur +``` + +## Known Stubs + +Aucun — cette phase ne produit pas de rendu UI, uniquement de l'infrastructure. + +## Threat Flags + +Aucun nouveau vecteur introduit au-delà de ce qui est documenté dans le threat_model du plan. + +## Self-Check: PASSED + +- content.config.ts existe : FOUND +- nuxt.config.ts contient '@nuxt/content' : FOUND +- app/assets/css/main.css contient @plugin typography : FOUND +- Commits c64709d, 3381b2e, 8319789, f49fab2 : FOUND