diff --git a/.planning/REQUIREMENTS.md b/.planning/REQUIREMENTS.md index 9d50f92..4bc54d4 100644 --- a/.planning/REQUIREMENTS.md +++ b/.planning/REQUIREMENTS.md @@ -92,16 +92,16 @@ | Requirement | Phase | Status | |-------------|-------|--------| -| BLOG-01 | TBD | Pending | -| BLOG-02 | TBD | Pending | -| BLOG-03 | TBD | Pending | -| BLOG-04 | TBD | Pending | -| BLOG-05 | TBD | Pending | -| BLOG-06 | TBD | Pending | -| BLOG-07 | TBD | Pending | -| SEO-10 | TBD | Pending | -| SEO-11 | TBD | Pending | -| SEO-12 | TBD | Pending | -| SEO-13 | TBD | Pending | -| SEO-14 | TBD | Pending | -| SEO-15 | TBD | Pending | +| BLOG-01 | Phase 5 | Pending | +| BLOG-04 | Phase 5 | Pending | +| BLOG-05 | Phase 5 | Pending | +| BLOG-02 | Phase 6 | Pending | +| BLOG-03 | Phase 6 | Pending | +| BLOG-06 | Phase 6 | Pending | +| SEO-10 | Phase 7 | Pending | +| SEO-11 | Phase 7 | Pending | +| SEO-12 | Phase 7 | Pending | +| SEO-13 | Phase 7 | Pending | +| SEO-15 | Phase 7 | Pending | +| BLOG-07 | Phase 8 | Pending | +| SEO-14 | Phase 8 | Pending | diff --git a/.planning/ROADMAP.md b/.planning/ROADMAP.md index 685be95..8d5c196 100644 --- a/.planning/ROADMAP.md +++ b/.planning/ROADMAP.md @@ -82,3 +82,86 @@ Plans: | 2. Content | 3/3 | Complete | 2026-04-21 | | 3. SEO & i18n | 1/1 | Complete | 2026-04-21 | | 4. Ship | 1/1 | Complete | 2026-04-21 | + +--- + +--- + +# Roadmap: Portfolio Killian' Dalcin — M1.1 + +**Milestone:** M1.1 — SEO Hytale — Autorité & Contenu +**Granularity:** Standard +**Coverage:** 13/13 requirements mapped + +--- + +## Phases (M1.1) + +- [ ] **Phase 5: @nuxt/content Setup & Renderer** - Integration @nuxt/content, markdown renderer complet avec syntax highlighting et images +- [ ] **Phase 6: Blog Pages** - Page listing /blog et page article /blog/[slug] SSR, bilingue, avec TOC et nav prev/next +- [ ] **Phase 7: SEO Blog** - useSeoMeta par article, JSON-LD Article, sitemap etendu, og:image, BreadcrumbList +- [ ] **Phase 8: Content & Cocon Semantique** - 2 articles seed Hytale, liens internes blog-hytale + +--- + +## Phase Details (M1.1) + +### Phase 5: @nuxt/content Setup & Renderer +**Goal**: Le systeme de contenu markdown est installe et rend fidelement le contenu technique — blocs de code colores, images optimisees, tables, alerts — sans configuration supplementaire dans les phases suivantes +**Depends on**: Phase 4 (M1 complete) +**Requirements**: BLOG-01, BLOG-04, BLOG-05 +**Success Criteria** (what must be TRUE): + 1. `@nuxt/content` est installe et configure dans `nuxt.config.ts` — `pnpm dev` demarre sans erreur + 2. Un article markdown de test avec un bloc Kotlin est rendu avec coloration syntaxique visible dans le navigateur + 3. Une image referencee dans un article s'affiche via `` avec les optimisations (lazy, format webp) + 4. Un tableau markdown et un callout/alert sont rendus avec le style correct +**Plans**: TBD +**UI hint**: yes + +### Phase 6: Blog Pages +**Goal**: Un visiteur peut naviguer vers /blog, parcourir la liste des articles, ouvrir un article, voir sa table des matieres et naviguer vers l'article precedent/suivant — le tout en SSR et en FR ou EN +**Depends on**: Phase 5 +**Requirements**: BLOG-02, BLOG-03, BLOG-06 +**Success Criteria** (what must be TRUE): + 1. `curl localhost:3000/blog` retourne du HTML SSR avec une liste d'articles (titre, description, date, tags) + 2. `curl localhost:3000/blog/[slug]` retourne le contenu de l'article rendu en HTML, pas de SPA shell vide + 3. La page article affiche une table des matieres generee depuis les headings du markdown + 4. Des liens "Article precedent" et "Article suivant" sont presents en bas de chaque article + 5. `curl localhost:3000/en/blog` retourne le listing en anglais — les articles ont leur version EN +**Plans**: TBD +**UI hint**: yes + +### Phase 7: SEO Blog +**Goal**: Chaque page blog est indexable avec des meta tags complets, un JSON-LD Article valide, et les URLs /blog figurent dans le sitemap — Google peut crawler et comprendre le contenu sans ambiguite +**Depends on**: Phase 6 +**Requirements**: SEO-10, SEO-11, SEO-12, SEO-13, SEO-15 +**Success Criteria** (what must be TRUE): + 1. `curl localhost:3000/blog/[slug]` retourne ``, `` et `` uniques dans le HTML + 2. Le meme curl retourne un JSON-LD de type `Article` avec `author`, `datePublished`, `headline` remplis + 3. `curl localhost:3000/sitemap.xml` contient les URLs `/blog/[slug]` et `/en/blog/[slug]` + 4. `og:image` pointe vers l'image de l'article ou vers un fallback branded — jamais vers og-image.png generique + 5. La page article contient un JSON-LD `BreadcrumbList` : Accueil → Blog → Titre de l'article +**Plans**: TBD + +### Phase 8: Content & Cocon Semantique +**Goal**: Le blog est lance avec au moins 2 articles Hytale de qualite, et un visiteur qui arrive sur /hytale decouvre les articles recents — le cocon semantique entre blog et page hytale est etabli +**Depends on**: Phase 7 +**Requirements**: BLOG-07, SEO-14 +**Success Criteria** (what must be TRUE): + 1. `/blog` liste au moins 2 articles avec le tag "hytale", avec titres, descriptions et dates reels + 2. Chaque article blog contient au moins un lien interne vers `/hytale` dans le corps du texte + 3. La page `/hytale` affiche une section "Articles recents" avec liens vers les 2 articles seed + 4. Les articles existent en FR et EN — `curl localhost:3000/en/blog` les liste en anglais +**Plans**: TBD +**UI hint**: yes + +--- + +## Progress (M1.1) + +| Phase | Plans Complete | Status | Completed | +|-------|----------------|--------|-----------| +| 5. @nuxt/content Setup & Renderer | 0/? | Not started | - | +| 6. Blog Pages | 0/? | Not started | - | +| 7. SEO Blog | 0/? | Not started | - | +| 8. Content & Cocon Semantique | 0/? | Not started | - | diff --git a/.planning/STATE.md b/.planning/STATE.md index 1297167..ceacc64 100644 --- a/.planning/STATE.md +++ b/.planning/STATE.md @@ -5,7 +5,7 @@ milestone_name: SEO Hytale — Autorité & Contenu status: In Progress last_updated: "2026-04-21T00:00:00.000Z" progress: - total_phases: 0 + total_phases: 4 completed_phases: 0 total_plans: 0 completed_plans: 0 @@ -22,15 +22,18 @@ progress: ## Current Focus -Phase: Not started (defining requirements) +Phase: Phase 5 — @nuxt/content Setup & Renderer Plan: — -Status: Defining requirements -Last activity: 2026-04-21 — Milestone v1.1 started +Status: Roadmap defined, ready to plan Phase 5 +Last activity: 2026-04-21 — M1.1 roadmap created (phases 5–8) ## Accumulated Context -- M1 complet — déployé en production sur killiandalcin.fr +- M1 complet — déployé en production sur killiandalcin.fr (phases 1–4) - Stack : Nuxt 4 SSR + Nuxt UI v3 + Tailwind v4 + pnpm - Blog/CMS était Out of Scope en M1, promu en priorité principale pour M1.1 -- Renderer markdown doit supporter : syntax highlighting, images, embeds, tables, alerts — utiliser un package existant (ex: @nuxtjs/mdc ou @nuxt/content) +- Renderer markdown doit supporter : syntax highlighting, images, embeds, tables, alerts — utiliser @nuxt/content - Objectif double : ranker sur "Hytale plugin developer" ET capter trafic longue traîne via contenu communauté +- Phase 5 ajoute @nuxt/content comme dépendance — vérifier compatibilité Nuxt 4 / compatibilityVersion 4 +- Articles bilingues : structure FR/EN dans content/ (ex: content/fr/blog/, content/en/blog/) +- og:image par article : image frontmatter ou fallback branded — jamais l'og-image.png générique M1