Dettagli Versione

v 0.0.147

29 January 2026, 14:30 4 file modificati
Messaggio di Commit aggiornamento 2026 01 29 15:30 [v 0.0.147]

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: