Files
librodrome/CLAUDE.md
Yvv 9caf11c8ab
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
Restructuration sections, contenu administrable, shadoks, palette été
- Structure par section : /numerique, /economique, /citoyenne (plus de /gestation)
- Chaque section a index + sous-pages avec contenu YAML administrable
- API content supporte les chemins imbriqués ([...path])
- Admin : liste des pages + éditeur par section
- Page /economique : monnaie libre (picto Ğ1), modèle éco, productions collectives, commande livre
- Page /citoyenne : decision (CTA Glibredecision), tarifs-eau (CTA SejeteralO)
- BookActions : composant partagé (player, PDF, chapitres, commande) sur home, eco et modele-eco
- GrateWizard remonté dans la section économique de la home
- Palette été par défaut, choix persisté en localStorage
- Fix lisibilité été (text-white/65 + variables CSS)
- Shadoks thématiques sur toutes les pages (8-10 par page, métiers variés)
- Redirections 301 : /gestation/*, /modele-eco/*, /decision, /lire/*
- README, CONTRIBUTING, CLAUDE.md mis à jour

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-14 16:13:46 +01:00

3.1 KiB

Librodrome

Site vitrine du projet Le Librodrome — livre + chansons sur l'économie du don.

Stack

  • Nuxt 4 (Vue 3, TypeScript, Nitro)
  • Modules : Nuxt Content, Pinia, UnoCSS, VueUse, Nuxt Image
  • Icônes : Lucide + Phosphor (via @iconify-json)
  • Package manager : pnpm
  • Déploiement : Docker + Traefik, CI via Woodpecker

Structure

app/
  pages/
    numerique/          # Autonomie numérique (index + [slug] détail)
    economique/         # Autonomie économique (index, monnaie-libre, commande, productions-collectives)
      modele-eco/       # Livre : sommaire + chapitres [slug]
    citoyenne/          # Autonomie citoyenne (index + [slug] détail)
    en-musique/         # Player audio
    evenement.vue       # Événement
    admin/              # Back-office (pages/, book/, songs, messages, media)
  components/
    book/Actions.vue    # Boutons partagés livre (player, PDF, chapitres, commande)
    home/               # BookSection, AxisBlock, AxisGrid, HeroSection, Messages
    admin/, player/, song/, ui/
  composables/          # useAudioPlayer, useBookData, useGrateWizard, usePageContent...
  stores/palette.ts     # 4 palettes saisonnières (été par défaut, persisté localStorage)
  assets/css/           # main.css (UnoCSS + overrides light mode)
site/
  pages/                # Contenu YAML par section (numerique/, economique/, citoyenne/)
  site.yml              # Config globale (nav, footer, GrateWizard)
  bookplayer.config.yml # Config player/chapitres
server/
  api/content/pages/[...path].get.ts   # GET pages YAML (chemins imbriqués)
  api/admin/content/pages/[...path].put.ts  # PUT pages YAML
  api/admin/content/pages.get.ts       # Liste toutes les pages
  middleware/redirects.ts              # 301 : /gestation, /modele-eco, /decision, /lire
docker/
  Dockerfile, docker-compose.yml, docker-compose.dev.yml

Ports dev (CRITIQUE)

Projet Port Config
librodrome 3000 nuxt.config.tsdevServer.port: 3000
GrateWizard 3001 package.jsonnext dev --port 3001
SejeteralO frontend 3009 frontend/nuxt.config.tsdevServer.port: 3009
SejeteralO backend 8000 Makefile → uvicorn --port 8000

Ne jamais changer ces ports.

Intégration GrateWizard

  • URL dev : app/app.config.tslocalhost:3001
  • URL prod : https://gratewizard.axiom-team.fr
  • Bloc GrateWizard dans la section économique de la home

Contenu administrable

  • YAML dans site/pages/ organisé par section (sous-dossiers)
  • API supporte les chemins imbriqués (numerique/logiciel-libre)
  • Admin : /admin/pages liste toutes les pages, /admin/pages/{path} édite en YAML
  • Git sync auto en prod (ADMIN_GIT_SYNC=true)

Commandes

pnpm dev          # Dev server sur :3000
pnpm build        # Build production

Conventions

  • Langue du site : français
  • Commits en français, style concis
  • CSS via UnoCSS (utility-first) + variables CSS palettes
  • Composants Vue SFC avec <script setup lang="ts">
  • Shadoks SVG inline thématiques sur chaque page (hidden mobile)