v 0.0.147
29 January 2026, 14:30
4 file
modificati
Messaggio di Commit
Modifiche
Added
CHANGELOG_IMPLEMENTATION
CHANGELOG_IMPLEMENTATION.md
commit 5157c076fa914ca0a47c1edd94a2583ffbd44841 Author: RickyMandich <[email protected]> Date: Thu Jan 29 15:30:07 2026 +0100 aggiornamento 2026 01 29 15:30 [v 0.0.147] diff --git a/CHANGELOG_IMPLEMENTATION.md b/CHANGELOG_IMPLEMENTATION.md new file mode 100644 index 0000000..0328f4e --- /dev/null +++ b/CHANGELOG_IMPLEMENTATION.md @@ -0,0 +1,281 @@ +# Implementazione Sistema di Changelog - Riepilogo + +## Cosa Γ¨ stato fatto + +Γ stato implementato un sistema automatico di tracciamento delle modifiche ai file markdown del vault, che genera changelog in formato JSON per ogni versione del progetto. + +## File Creati/Modificati + +### 1. Nuovo Script: `bash/generate-changelog.sh` +Script bash che genera automaticamente i file JSON di changelog. + +**FunzionalitΓ **: +- Legge la versione dall'ultimo commit git +- Identifica tutti i file `.md` modificati nel commit +- Estrae i nomi visualizzati da `.normalize/map.json` +- Genera il diff completo per ogni file modificato +- Crea un file JSON per la versione corrente +- Aggiorna l'indice globale delle versioni + +**Esecuzione**: Viene chiamato automaticamente da `all.sh` dopo il commit + +### 2. Modificato: `bash/all.sh` +Integrato il nuovo script nel workflow di deploy. + +**Nuova sequenza**: +1. Normalizzazione (`normalize.sh`) +2. Versioning (incremento versione) +3. Commit (`cmt.sh`) +4. **Generazione Changelog** (`generate-changelog.sh`) β NUOVO +5. Deploy FTP (`onlyFtpOfLastCmt.sh`) + +### 3. Modificato: `.gitignore` +Aggiornato per tracciare i file di changelog. + +**Modifiche**: +```gitignore +# Normalize directory - ignore all except map.json and changelogs +.normalize/* +!.normalize/map.json +!.normalize/changelogs/ +!.normalize/changelogs/*.json +``` + +Questo assicura che i changelog vengano: +- Tracciati da git +- Inclusi nei commit +- Caricati sul server via FTP + +### 4. Nuova Documentazione: `bash/CHANGELOG_SYSTEM.md` +Documentazione completa per i backend developer che implementeranno la visualizzazione dei changelog nella web app. + +**Contenuto**: +- Panoramica del sistema +- Workflow completo +- Struttura dei file generati +- Formato dettagliato dei dati JSON +- Esempi di integrazione Laravel +- Esempi di visualizzazione HTML +- Note tecniche e troubleshooting + +### 5. Aggiornato: `README.md` +Aggiunto riferimento al sistema di changelog nel README principale. + +## Struttura dei Dati Generati + +### Directory +``` +.normalize/changelogs/ +βββ index.json # Indice di tutte le versioni +βββ v_0_0_1.json # Changelog versione v 0.0.1 +βββ v_1_0_0.json # Changelog versione v 1.0.0 +βββ ... +``` + +### File Indice (`index.json`) +Contiene l'elenco di tutte le versioni ordinate dalla piΓΉ recente alla piΓΉ vecchia. + +**Esempio**: +```json +{ + "versions": [ + { + "version": "v 1.2.3", + "date": "2026-01-29 15:30:45", + "commit_hash": "abc123def456789", + "changes_count": 5 + }, + { + "version": "v 1.2.2", + "date": "2026-01-28 14:20:30", + "commit_hash": "def789ghi012345", + "changes_count": 3 + } + ] +} +``` + +**Utilizzo**: Per mostrare la lista delle versioni disponibili nella pagina changelog. + +### File Versione (`v_X_Y_Z.json`) +Contiene i dettagli completi delle modifiche per una specifica versione. + +**Esempio**: +```json +{ + "version": "v 1.2.3", + "date": "2026-01-29 15:30:45", + "commit_hash": "abc123def456789", + "commit_message": "aggiornamento 2026 01 29 15:30 [v 1.2.3] - Aggiunta nuova location", + "changes": [ + { + "file": "locations/phandalin.md", + "display_name": "Phandalin", + "status": "Modified", + "diff": "diff --git a/locations/phandalin.md b/locations/phandalin.md\nindex abc123..def456 100644\n--- a/locations/phandalin.md\n+++ b/locations/phandalin.md\n@@ -10,7 +10,7 @@\n Contenuto...\n-Vecchia riga\n+Nuova riga\n" + }, + { + "file": "artefatti/party/nuovo-artefatto.md", + "display_name": "Nuovo Artefatto", + "status": "Added", + "diff": "diff --git a/artefatti/party/nuovo-artefatto.md b/artefatti/party/nuovo-artefatto.md\nnew file mode 100644\nindex 0000000..abc1234\n--- /dev/null\n+++ b/artefatti/party/nuovo-artefatto.md\n@@ -0,0 +1,10 @@\n+# Nuovo Artefatto\n+\n+Descrizione...\n" + } + ] +} +``` + +**Campi Principali**: +- `version`: Versione nel formato "v X.Y.Z" +- `date`: Data e ora del commit (YYYY-MM-DD HH:MM:SS) +- `commit_hash`: Hash completo del commit git +- `commit_message`: Messaggio completo del commit +- `changes`: Array di modifiche + +**Campi di ogni modifica**: +- `file`: Percorso relativo del file +- `display_name`: Nome visualizzato (da map.json) +- `status`: Tipo di modifica (Added/Modified/Deleted/Renamed/Copied/Changed) +- `diff`: Diff completo in formato git unified diff + +**Utilizzo**: Per mostrare i dettagli di una versione specifica. + +## Come Funziona + +### Workflow Automatico + +1. **Utente modifica file** in Obsidian +2. **Utente esegue** `bash bash/all.sh` (con opzioni `-v`, `-p`, o `-m` se necessario) +3. **normalize.sh** aggiorna `map.json` +4. **all.sh** incrementa la versione +5. **cmt.sh** esegue commit con messaggio contenente la versione +6. **generate-changelog.sh** (NUOVO): + - Legge la versione dal commit appena fatto + - Usa `git diff-tree` per trovare i file `.md` modificati + - Per ogni file: + - Estrae il nome visualizzato da `map.json` + - Determina il tipo di modifica (Added/Modified/Deleted) + - Genera il diff completo con `git show` + - Crea il file JSON `v_X_Y_Z.json` + - Aggiorna `index.json` con la nuova versione +7. **onlyFtpOfLastCmt.sh** carica tutto su Altervista (inclusi i changelog) + +### Esempio Pratico + +**Scenario**: Aggiungi un nuovo artefatto e modifichi una location esistente. + +**Comandi**: +```bash +# Dopo aver modificato i file in Obsidian +bash bash/all.sh -m "Aggiunto nuovo artefatto e aggiornata Phandalin" +``` + +**Risultato**: +1. Versione incrementata: `v 1.2.3` β `v 1.2.4` +2. Commit creato: `"aggiornamento 2026 01 29 15:30 [v 1.2.4] - Aggiunto nuovo artefatto e aggiornata Phandalin"` +3. File generato: `.normalize/changelogs/v_1_2_4.json` con: + - 2 modifiche tracciate + - Diff completo per entrambi i file +4. `index.json` aggiornato con la nuova versione in cima alla lista +5. Tutto caricato su Altervista + +## Integrazione Backend + +### Endpoint Suggeriti per Laravel + +#### 1. Lista Versioni +```php +// routes/api.php o routes/web.php +Route::get('/changelog', [ChangelogController::class, 'index']); + +// ChangelogController.php +public function index() +{ + $indexPath = storage_path('app/vault/.normalize/changelogs/index.json'); + $index = json_decode(file_get_contents($indexPath), true); + return view('changelog.index', ['versions' => $index['versions']]); +} +``` + +#### 2. Dettagli Versione +```php +Route::get('/changelog/{version}', [ChangelogController::class, 'show']); + +public function show($version) +{ + $version = preg_replace('/[^a-zA-Z0-9_]/', '', $version); + $path = storage_path("app/vault/.normalize/changelogs/{$version}.json"); + + if (!file_exists($path)) { + abort(404); + } + + $changelog = json_decode(file_get_contents($path), true); + return view('changelog.show', ['changelog' => $changelog]); +} +``` + +## Documentazione Completa + +Per tutti i dettagli tecnici, esempi di codice e troubleshooting, consulta: + +π **`bash/CHANGELOG_SYSTEM.md`** + +Questo documento contiene: +- Formato completo dei dati JSON +- Esempi di integrazione Laravel +- Esempi di visualizzazione HTML/Blade +- Spiegazione del formato diff +- Note tecniche +- Troubleshooting + +## Note Importanti + +### File Tracciati +- β Solo file `.md` vengono tracciati +- β File in `.trash/` vengono ignorati +- β File in `bash/` vengono ignorati + +### Sincronizzazione +I changelog vengono automaticamente: +1. Tracciati da git (grazie al `.gitignore` aggiornato) +2. Inclusi nei commit +3. Caricati su Altervista via FTP + +### RetrocompatibilitΓ +Il sistema Γ¨ completamente retrocompatibile: +- Non modifica il workflow esistente +- Aggiunge solo un passaggio di generazione changelog +- Non richiede modifiche ai file esistenti +- Funziona con il sistema di versioning giΓ in uso + +## Prossimi Passi + +1. β Sistema implementato e pronto all'uso +2. β³ Testare con il prossimo deploy (eseguendo `bash bash/all.sh`) +3. β³ Implementare la visualizzazione nella web app Laravel +4. β³ (Opzionale) Generare changelog per versioni precedenti usando `git log` + +## Verifica Implementazione + +### File Creati +- β `bash/generate-changelog.sh` - Script di generazione changelog +- β `bash/CHANGELOG_SYSTEM.md` - Documentazione tecnica completa +- β `CHANGELOG_IMPLEMENTATION.md` - Questo documento di riepilogo + +### File Modificati +- β `bash/all.sh` - Integrato il nuovo script nel workflow +- β `.gitignore` - Configurato per tracciare i changelog +- β `README.md` - Aggiunto riferimento al sistema di changelog + +### Sintassi Verificata +- β `bash/generate-changelog.sh` - Nessun errore di sintassi +- β `bash/all.sh` - Nessun errore di sintassi + +### Pronto per il Test +Il sistema Γ¨ completamente implementato e pronto per essere testato al prossimo deploy. + +--- + +**Documentazione per Backend Developer**: `bash/CHANGELOG_SYSTEM.md` +**Workflow Visivo**: Vedi diagramma Mermaid nel task manager +
Added
CHANGELOG_QUICK_START
CHANGELOG_QUICK_START.md
commit 5157c076fa914ca0a47c1edd94a2583ffbd44841 Author: RickyMandich <[email protected]> Date: Thu Jan 29 15:30:07 2026 +0100 aggiornamento 2026 01 29 15:30 [v 0.0.147] diff --git a/CHANGELOG_QUICK_START.md b/CHANGELOG_QUICK_START.md new file mode 100644 index 0000000..25a7ab2 --- /dev/null +++ b/CHANGELOG_QUICK_START.md @@ -0,0 +1,126 @@ +# Sistema di Changelog - Quick Start + +## π― Cosa Fa + +Traccia automaticamente tutte le modifiche ai file `.md` per ogni versione e genera file JSON pronti per la web app. + +## π File Generati + +``` +.normalize/changelogs/ +βββ index.json # Lista di tutte le versioni +βββ v_0_0_1.json # Dettagli versione 0.0.1 +βββ v_0_0_2.json # Dettagli versione 0.0.2 +βββ ... +``` + +## π Come Funziona + +**Niente da fare!** Il sistema Γ¨ completamente automatico. + +Quando esegui: +```bash +bash bash/all.sh +``` + +Il sistema: +1. β Normalizza i file +2. β Incrementa la versione +3. β Fa il commit +4. β **Genera automaticamente il changelog** β NUOVO +5. β Carica tutto su Altervista (inclusi i changelog) + +## π Formato Dati + +### Index.json +```json +{ + "versions": [ + { + "version": "v 1.2.3", + "date": "2026-01-29 15:30:45", + "commit_hash": "abc123...", + "changes_count": 5 + } + ] +} +``` + +### v_1_2_3.json +```json +{ + "version": "v 1.2.3", + "date": "2026-01-29 15:30:45", + "commit_hash": "abc123...", + "commit_message": "aggiornamento 2026 01 29 15:30 [v 1.2.3]", + "changes": [ + { + "file": "locations/phandalin.md", + "display_name": "Phandalin", + "status": "Modified", + "diff": "diff --git a/locations/phandalin.md..." + } + ] +} +``` + +## π Documentazione + +### Per Te (Utente) +- **Quick Start**: Questo file +- **README.md**: Aggiornato con info sul changelog + +### Per Backend Developer +- **`bash/CHANGELOG_SYSTEM.md`**: Documentazione tecnica completa +- **`bash/CHANGELOG_EXAMPLES.md`**: Esempi concreti di JSON e codice Laravel +- **`CHANGELOG_IMPLEMENTATION.md`**: Riepilogo implementazione + +## π§ File Modificati + +- β `bash/all.sh` - Integrato il nuovo script +- β `.gitignore` - Configurato per tracciare i changelog +- β `README.md` - Aggiunto riferimento al sistema + +## π File Creati + +- β `bash/generate-changelog.sh` - Script di generazione +- β `bash/CHANGELOG_SYSTEM.md` - Documentazione tecnica +- β `bash/CHANGELOG_EXAMPLES.md` - Esempi pratici +- β `CHANGELOG_IMPLEMENTATION.md` - Riepilogo implementazione +- β `CHANGELOG_QUICK_START.md` - Questo file + +## β Verifica + +- β Sintassi script verificata +- β Integrazione in `all.sh` completata +- β `.gitignore` configurato +- β Documentazione completa + +## π¬ Prossimi Passi + +1. **Testa il sistema**: Al prossimo deploy, verifica che i file JSON vengano generati in `.normalize/changelogs/` +2. **Passa ai backend developer**: Condividi `bash/CHANGELOG_SYSTEM.md` e `bash/CHANGELOG_EXAMPLES.md` +3. **Implementa nella web app**: I backend developer possono creare la pagina changelog usando i file JSON + +## π‘ Note + +- Solo file `.md` vengono tracciati +- File in `.trash/` e `bash/` vengono ignorati +- I changelog vengono caricati automaticamente su Altervista +- Il sistema Γ¨ completamente retrocompatibile + +## π Problemi? + +Se qualcosa non funziona, controlla: +1. Il commit contiene modifiche a file `.md`? +2. Il messaggio di commit contiene `[v X.Y.Z]`? +3. Lo script `generate-changelog.sh` ha i permessi di esecuzione? + +Per dettagli: vedi `bash/CHANGELOG_SYSTEM.md` sezione "Troubleshooting" + +--- + +**Tutto pronto!** π + +Il sistema Γ¨ implementato e funzionerΓ automaticamente al prossimo deploy. +
Modified
README
README.md
commit 5157c076fa914ca0a47c1edd94a2583ffbd44841 Author: RickyMandich <[email protected]> Date: Thu Jan 29 15:30:07 2026 +0100 aggiornamento 2026 01 29 15:30 [v 0.0.147] diff --git a/README.md b/README.md index b101c4c..cca10e9 100644 --- a/README.md +++ b/README.md @@ -16,7 +16,8 @@ Lo script principale che gestisce l'intero processo di deploy: 1. **Normalizzazione**: Aggiorna `map.json` con i nuovi file `.md` (modalitΓ non interattiva) 2. **Versioning**: Incrementa automaticamente la versione del progetto 3. **Commit**: Esegue commit su git con la nuova versione -4. **Deploy**: Carica i file modificati via FTP su Altervista +4. **Changelog**: Genera automaticamente il changelog JSON per questa versione +5. **Deploy**: Carica i file modificati via FTP su Altervista ### Utilizzo ```bash @@ -41,4 +42,21 @@ Il sistema mantiene un mapping tra i nomi dei file normalizzati (kebab-case) e i Il mapping Γ¨ gestito automaticamente in `.normalize/map.json`. -Per maggiori dettagli, vedi `bash/normalizeREADME.md`. \ No newline at end of file +Per maggiori dettagli, vedi `bash/normalizeREADME.md`. + +### Sistema di Changelog + +Il sistema traccia automaticamente tutte le modifiche ai file `.md` per ogni versione: + +- **File generati**: `.normalize/changelogs/` + - `index.json`: Indice di tutte le versioni + - `v_X_Y_Z.json`: Dettagli delle modifiche per ogni versione +- **Contenuto**: Per ogni versione vengono tracciati: + - Lista dei file `.md` modificati + - Tipo di modifica (Added/Modified/Deleted) + - Diff completo delle modifiche + - Data, commit hash e messaggio + +I file di changelog sono in formato JSON e pronti per essere integrati nella web app. + +Per la documentazione completa e l'integrazione backend, vedi `bash/CHANGELOG_SYSTEM.md`. \ No newline at end of file
Modified
Tel'Aran'Rhiod
universi/telaranrhiod.md
commit 5157c076fa914ca0a47c1edd94a2583ffbd44841 Author: RickyMandich <[email protected]> Date: Thu Jan 29 15:30:07 2026 +0100 aggiornamento 2026 01 29 15:30 [v 0.0.147] diff --git a/universi/telaranrhiod.md b/universi/telaranrhiod.md index 49152ac..8d34d98 100644 --- a/universi/telaranrhiod.md +++ b/universi/telaranrhiod.md @@ -1,5 +1,5 @@ #dm -**Tel'Aran'Rhiod** Γ¨ il nome dato a un **reame onirico primordiale**, un luogo sospeso tra sogno e realtΓ . Non Γ¨ un piano parallelo vero e proprio, ma una **dimensione riflessa**, dove il mondo materiale viene percepito come attraverso la superficie increspata di un lago: riconoscibile, ma mutevole, instabile e soggetto alla volontΓ , alla memoria e agli impulsi di chi vi cammina. +**Tel'Aran'Rhiod** Γ¨ il nome dato a un **reame onirico primordiale**, un luogo sospeso tra sogno e realtΓ . Γ un piano parallelo vero e proprio dove il piano originale del segnatore viene percepito come attraverso la superficie increspata di un lago: riconoscibile, ma mutevole, instabile e soggetto alla volontΓ , alla memoria e agli impulsi di chi vi cammina. In Tel'Aran'Rhiod esistono solo due categorie di presenze: