From a5840488cd8821ece33fbcd9ac0c0a4419e611f7 Mon Sep 17 00:00:00 2001 From: pollutri Date: Thu, 28 May 2026 18:05:10 +0200 Subject: [PATCH] Aggiornato il README con la documentazione --- README.md | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index be3005d..ded00a3 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Captive Portal CMS — Casa della Scuola -CMS per portali captive: gestione di card informative, gallerie, flip-book e contenuti kiosk a schermo intero, con un'area di amministrazione locale. Stack: Next.js 16 (App Router, Turbopack), React 19, TypeScript, Tailwind v4. Persistenza su file (nessun database). Pensato per girare su **server Ubuntu offline**. +CMS per portali captive: gestione di card informative, gallerie, flip-book e contenuti kiosk a schermo intero, con un'area di amministrazione locale. Stack: Next.js 16 (App Router, Turbopack), React 19, TypeScript, Tailwind v4. Persistenza su file (nessun database). Pensato per girare su **server offline**. --- @@ -36,7 +36,7 @@ npm run build npm start ``` -> **Server offline:** la macchina di produzione non ha accesso a internet. NON eseguire `npm install` lì. Installa le dipendenze su una macchina con internet (stesso OS, Linux), poi copia l'intera cartella `node_modules` sul server insieme al progetto buildato. Su Ubuntu basta `npm run build` (se `node_modules` è presente) + `npm start`. +> **Server offline:** la macchina di produzione non ha accesso a internet. NON eseguire `npm install` lì. Installa le dipendenze su una macchina con internet (stesso OS, Linux), poi copia l'intera cartella `node_modules` sul server insieme al progetto buildato. Sul server basta `npm run build` (se `node_modules` è presente) + `npm start`. --- @@ -132,6 +132,11 @@ Ogni campo compilabile dall'admin ha un limite (vedi [`TEXT_LIMITS`](#limiti-tes Gli URL (`actionUrl`) accettano solo gli schemi `http`, `https`, `mailto`, `tel`. Schemi come `javascript:` vengono rifiutati. +### Caratteri non-ASCII (emoji, cirillico, CJK…) + +- **Nei campi di testo**: conservati integralmente (il salvataggio è UTF-8). Due avvertenze: (1) il conteggio caratteri usa le unità UTF-16, quindi un emoji "pesa" 2 o più posizioni del limite (es. `🎉` ne conta 11), mentre cirillico/CJK contano 1 ciascuno; (2) se il font scelto non ha i glifi (es. un font latino con testo cirillico), il browser fa fallback a un font di sistema o mostra quadratini □. +- **Nei nomi dei file caricati**: i caratteri non-ASCII vengono rimossi dalla normalizzazione del nome (`città_🎉.jpg` → `…-citta.jpg`, `日本語.png` → `…-file.png`). Il file funziona sempre, ma il nome originale non-ASCII non viene preservato. Vedi [Sicurezza degli input → Nomi file](#sicurezza-degli-input). + --- ## Sicurezza degli input @@ -245,14 +250,11 @@ Sul server servono alcuni binari di sistema (richiamati direttamente, non via np | `zip` | Creazione backup / preset | Pulsante "Scarica backup" e "Salva preset" → `503` | | `unzip` | Ripristino backup / factory reset | Pulsanti di ripristino → `503` | -Verifica su Ubuntu: +Verifica su server: ```bash which ffmpeg ffprobe zip unzip ``` -Se mancano: -```bash -sudo apt install ffmpeg zip unzip -``` +Se mancano, installali con il gestore pacchetti del sistema (i nomi dei pacchetti sono `ffmpeg`, `zip`, `unzip`). ---