Restructuration sections, contenu administrable, shadoks, palette été
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
- 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>
This commit is contained in:
58
CLAUDE.md
58
CLAUDE.md
@@ -14,26 +14,36 @@ Site vitrine du projet Le Librodrome — livre + chansons sur l'économie du don
|
||||
|
||||
```
|
||||
app/
|
||||
pages/ # Routes : index, lire/, ecouter/, autonomie, evenement, gratewizard, a-propos, admin/
|
||||
components/ # admin, book, content, home, layout, player, song, ui
|
||||
composables/ # useAudioPlayer, useBookData, useGrateWizard, usePlaylist, usePageContent, useSiteContent...
|
||||
assets/css/ # main.css (UnoCSS)
|
||||
data/
|
||||
pages/ # Contenu YAML par page (home, lire, ecouter, autonomie, evenement...)
|
||||
site.yml # Config globale du site
|
||||
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/ # Endpoints API (admin, health)
|
||||
middleware/ # Auth middleware
|
||||
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 # Build multi-stage (dev + prod)
|
||||
docker-compose.yml # Production (Traefik)
|
||||
docker-compose.dev.yml # Dev Docker
|
||||
Dockerfile, docker-compose.yml, docker-compose.dev.yml
|
||||
```
|
||||
|
||||
## Ports dev (CRITIQUE)
|
||||
|
||||
Chaque projet a un port fixe pour éviter les conflits Nuxt auto-increment :
|
||||
|
||||
| Projet | Port | Config |
|
||||
|--------|------|--------|
|
||||
| **librodrome** | **3000** | `nuxt.config.ts` → `devServer.port: 3000` |
|
||||
@@ -41,32 +51,32 @@ Chaque projet a un port fixe pour éviter les conflits Nuxt auto-increment :
|
||||
| **SejeteralO frontend** | **3009** | `frontend/nuxt.config.ts` → `devServer.port: 3009` |
|
||||
| **SejeteralO backend** | **8000** | Makefile → `uvicorn --port 8000` |
|
||||
|
||||
Script de gestion : `/home/yvv/Documents/PROD/DEV/dev-ports.sh` (status/kill/clean/start)
|
||||
|
||||
**Ne jamais changer ces ports.** Si un port est occupé, tuer le process parasite plutôt que laisser Nuxt auto-incrémenter.
|
||||
**Ne jamais changer ces ports.**
|
||||
|
||||
## Intégration GrateWizard
|
||||
|
||||
- URL dev configurée dans `app/app.config.ts` → `localhost:3001`
|
||||
- URL dev : `app/app.config.ts` → `localhost:3001`
|
||||
- URL prod : `https://gratewizard.axiom-team.fr`
|
||||
- Ouverture en popup via `composables/useGrateWizard.ts`
|
||||
- GrateWizard est un projet Next.js séparé (`/home/yvv/Documents/PROD/DEV/GrateWizard`)
|
||||
- Bloc GrateWizard dans la section économique de la home
|
||||
|
||||
## Contenu
|
||||
## Contenu administrable
|
||||
|
||||
Le contenu des pages est dans `data/pages/*.yml` et chargé via `composables/usePageContent.ts`. Le contenu riche (articles) utilise Nuxt Content avec des fichiers Markdown.
|
||||
- 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
|
||||
|
||||
```bash
|
||||
pnpm dev # Dev server sur :3000
|
||||
pnpm build # Build production
|
||||
pnpm generate # Génération statique
|
||||
```
|
||||
|
||||
## Conventions
|
||||
|
||||
- Langue du site : français
|
||||
- Commits en français, style concis
|
||||
- CSS via UnoCSS (utility-first), pas de framework CSS externe
|
||||
- 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)
|
||||
|
||||
Reference in New Issue
Block a user