# Phase 6: Blog Pages - Discussion Log > **Audit trail only.** Do not use as input to planning, research, or execution agents. > Decisions are captured in CONTEXT.md — this log preserves the alternatives considered. **Date:** 2026-04-22 **Phase:** 06-blog-pages **Areas discussed:** Layout listing /blog, Chrome article (TOC + header), Nav prev/next article, Visibilité blog & article de test --- ## Layout listing /blog ### Q1 — Format de la liste | Option | Description | Selected | |--------|-------------|----------| | Grille de cards | Pattern /projects, 1/2/3 col responsive | ✓ | | Liste verticale pleine largeur | Cards larges empilées, style éditorial | | | Hybride : hero + grille | Dernier article en hero, suivants en grille | | **User's choice:** Grille de cards (recommended) ### Q2 — Infos par card (multi-select) | Option | Description | Selected | |--------|-------------|----------| | Titre + description + date | Minimum vital | ✓ | | Tags (UBadge) | Visuels seulement, non-cliquables | ✓ | | Image cover (frontmatter `image`) | 16/9 ou 3/2 via NuxtImg | ✓ | | Reading time | Calculé depuis word count | ✓ | **User's choice:** Tous les 4 ### Q3 — Fallback image cover | Option | Description | Selected | |--------|-------------|----------| | Pas de fallback, pas d'image | Cards sans image si absent | ✓ | | Gradient branded générique | Bloc coloré avec titre overlay | | | og-image.png branded du site | Réutiliser l'OG existant | | **User's choice:** Pas de fallback (recommended) ### Q4 — Hero section en haut de /blog | Option | Description | Selected | |--------|-------------|----------| | Hero comme /projects | Slogan + H1 + subtitle + stats | ✓ | | Header minimal | H1 + subtitle uniquement | | | Aucun header | Direct sur la grille | | **User's choice:** Hero comme /projects (recommended) --- ## Chrome article (TOC + header) ### Q1 — Placement TOC (premier essai) **User's choice (free text):** "what table des matières c'est quoi ???" — demande d'explication, pas un choix. ### Q1bis — Placement TOC après explication vulgarisée | Option | Description | Selected | |--------|-------------|----------| | Sidebar sticky droite + drawer mobile | Pattern blog dev moderne, tutos longs | ✓ | | Inline en haut de l'article, dépliable | Plus simple SSR pur | | | Pas de TOC | Retire la feature (⚠ roadmap criterion) | | **User's choice:** Sidebar sticky droite + drawer mobile (recommended) **Notes:** l'utilisateur ne connaissait pas le terme "Table des matières". Explication fournie avec exemple concret (tuto Hytale à 5 sections) avant de présenter le choix. ### Q2 — Header article (multi-select) | Option | Description | Selected | |--------|-------------|----------| | Titre H1 + date + tags badges | Minimum vital | ✓ | | Image cover en hero | Aspect 21/9 si frontmatter `image` | ✓ | | Reading time | Cohérent avec listing | ✓ | | Breadcrumb visuel (Accueil > Blog > Titre) | UBreadcrumb Nuxt UI | ✓ | **User's choice:** Tous les 4 ### Q3 — Largeur max body markdown | Option | Description | Selected | |--------|-------------|----------| | max-w-3xl (~768px) | Déjà en place, standard | ✓ | | max-w-4xl (~896px) | Plus large pour blocs code | | **User's choice:** max-w-3xl (recommended) ### Q4 — Highlight heading courant au scroll | Option | Description | Selected | |--------|-------------|----------| | Oui, IntersectionObserver | Heading visible surligné brand-500 | ✓ | | Non, liens d'ancre statiques | Plus simple, moins JS | | **User's choice:** Oui, IntersectionObserver (recommended) --- ## Nav prev/next article ### Q1 — Style des liens prev/next | Option | Description | Selected | |--------|-------------|----------| | Cards riches : titre + date + flèche | Pattern docs Nuxt/Stripe | ✓ | | Liens texte simples | Minimaliste | | | Cards avec image cover | Plus visuel mais cassé si pas d'image | | **User's choice:** Cards riches (recommended) ### Q2 — Comment déterminer prev/next | Option | Description | Selected | |--------|-------------|----------| | surround() de @nuxt/content | Helper officiel, zero logique custom | ✓ | | Query custom triée par date | Plus verbeux mais contrôle total | | **User's choice:** surround() (recommended) ### Q3 — Ordre des articles | Option | Description | Selected | |--------|-------------|----------| | Date frontmatter descendant | Plus récent en premier | ✓ | | Alphabetic par titre | Style docs/références | | | Ordre de fichier | Alphabétique slug | | **User's choice:** Date descendant (recommended) ### Q4 — Edge cases (pas de voisin) | Option | Description | Selected | |--------|-------------|----------| | Afficher seul le lien existant | Case vide à droite ou gauche | ✓ | | Lien de fallback vers /blog | Toujours 2 actions | | | Cacher la section si 1 seul article | Pas de section du tout | | **User's choice:** Afficher seul le lien existant (recommended) --- ## Visibilité blog & article de test ### Q1 — Que faire de `test-kotlin-syntax.md` | Option | Description | Selected | |--------|-------------|----------| | Masquer via `draft: true` | Pattern standard @nuxt/content | ✓ | | Déplacer vers `content/_drafts/` | Ignoré complètement, 404 URL | | | Le garder visible dans /blog | Risque blog vide/démo | | | Renommer en article réel "Guide Markdown" | Contenu permanent | | **User's choice:** draft: true (recommended) ### Q2 — Lien "Blog" dans AppHeader.vue | Option | Description | Selected | |--------|-------------|----------| | Oui, entre 'Hytale' et 'Projects' | Blog = levier SEO majeur | ✓ | | Oui, en fin de nav (après Fiverr) | Moins proéminent | | | Non, accessible via footer uniquement | Nav épurée | | **User's choice:** Oui, entre Hytale et Projects (recommended) ### Q3 — Empty state listing /blog | Option | Description | Selected | |--------|-------------|----------| | "Articles à venir" + CTA contact | Pattern /projects noResults | ✓ | | Rediriger /blog vers / si vide | Cache le blog | | | Page 404 si vide | Dur sur SEO | | **User's choice:** "Articles à venir" + CTA contact (recommended) ### Q4 — Structure URLs finale | Option | Description | Selected | |--------|-------------|----------| | /fr/blog + /en/blog + slugs, pas d'alias | Pattern phase 5, pas de changement | ✓ | | Ajouter /fr/articles alias | Scope creep | | **User's choice:** Pattern phase 5 (recommended) --- ## Claude's Discretion - Nom exact du composable reading time - Structure interne du composant TOC (UDrawer vs `
`) - Format exact de la date i18n - Classes Tailwind exactes du hero cover (21/9 vs 16/9) - Emplacement exact du breadcrumb ## Deferred Ideas - Filtrage par tag cliquable (backlog) - Recherche full-text blog (backlog) - Pagination / infinite scroll (backlog) - JSON-LD Article + BreadcrumbList (Phase 7) - useSeoMeta enrichi par article (Phase 7) - Sitemap étendu (Phase 7) - OG image generator (backlog SEO-06) - Articles Hytale réels + cocon /hytale (Phase 8) - Alias /articles, tags page, RSS feed (backlog)