App Nuxt 3 + Nuxt UI qui lit les projets du CMS Grav et compose des portfolios A3 paysage exportés en PDF (gabarit book_v3) : composeur WYSIWYG, templates cover/toc/projet/grille/page libre, pipeline Playwright + Ghostscript, gel du contenu à la génération, partage public opt-in. Dépôt autonome : Dockerfile (base Playwright + Ghostscript + ffmpeg + rsync) inclus. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
43 lines
1.2 KiB
TypeScript
43 lines
1.2 KiB
TypeScript
export default defineNuxtConfig({
|
|
compatibilityDate: '2026-07-01',
|
|
devtools: { enabled: false },
|
|
telemetry: false,
|
|
|
|
modules: ['@nuxt/ui'],
|
|
components: [{ path: '~/components', pathPrefix: false }],
|
|
css: ['~/assets/css/main.css', '~/assets/css/theme.css'],
|
|
|
|
routeRules: {
|
|
// L'accueil est la liste des portfolios ; l'ancienne URL reste valide.
|
|
'/portfolios': { redirect: '/' },
|
|
},
|
|
|
|
app: {
|
|
head: {
|
|
title: 'Portfolios — Figures Libres',
|
|
htmlAttrs: { lang: 'fr' },
|
|
},
|
|
},
|
|
|
|
runtimeConfig: {
|
|
// Surchargées par les variables d'env NUXT_* (voir docker-compose.yml)
|
|
sessionSecret: 'dev-secret-figures-libres',
|
|
portfolioPassword: 'figureslibres',
|
|
internalToken: 'dev-internal-token',
|
|
contentSource: 'dev', // 'dev' (FS local) | 'prod' (cache rsync)
|
|
contentDir: '/content/02.projets',
|
|
dataDir: '/app/data',
|
|
// Mode prod : synchro rsync (phase 3)
|
|
syncRemote: '', // ex. user@host:/chemin/vers/user/pages/02.projets/
|
|
syncSshKey: '', // chemin de la clé privée dans le conteneur
|
|
public: {
|
|
appName: 'Portfolios Figures Libres',
|
|
},
|
|
},
|
|
|
|
nitro: {
|
|
// Les données (portfolios JSON, exports PDF, cache) vivent hors du bundle.
|
|
storage: {},
|
|
},
|
|
})
|