docs: create milestone v1.1 roadmap (4 phases, 13 requirements)
This commit is contained in:
+13
-13
@@ -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 |
|
||||
|
||||
@@ -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 `<NuxtImg>` 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 `<meta property="og:title">`, `<meta property="og:description">` et `<meta property="og:image">` 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 | - |
|
||||
|
||||
+9
-6
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user