Générateur de portfolios PDF Figures Libres (app Nuxt autonome)

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>
This commit is contained in:
2026-07-05 18:37:09 +02:00
co-authored by Claude Opus 4.8
commit 59dfbe4155
79 changed files with 18587 additions and 0 deletions
+23
View File
@@ -0,0 +1,23 @@
<script setup lang="ts">
// Met à l'échelle le canvas A3 paysage (1587,4×1122,5) pour l'aperçu (§8.4).
const PAGE_W = 1587.4
const wrapper = ref<HTMLElement>()
const scale = ref(0.5)
let observer: ResizeObserver | undefined
onMounted(() => {
observer = new ResizeObserver(([entry]) => {
scale.value = entry.contentRect.width / PAGE_W
})
if (wrapper.value) observer.observe(wrapper.value)
})
onBeforeUnmount(() => observer?.disconnect())
</script>
<template>
<div ref="wrapper" class="relative w-full overflow-hidden" style="aspect-ratio: 1190.55 / 841.89">
<div class="absolute left-0 top-0 origin-top-left" :style="{ transform: `scale(${scale})` }">
<slot />
</div>
</div>
</template>