Questo sito è costruito utilizzando Hugo, un framework per la creazione di siti web statici.
Questo repository contiene tutto il codice sorgente necessario per generare il sito olografix.org. Il sito è multilingua (italiano, inglese e spagnolo) e presenta diverse sezioni:
- Attività: workshop, corsi, eventi passati e futuri
- Progetti: iniziative portate avanti dall'associazione
- Photogallery: raccolta di foto degli eventi passati
- Sezione sulla sede e sulle informazioni dell'associazione
Per contribuire al sito, avrai bisogno di:
- Hugo Extended - Istruzioni di installazione
- Git
- VS Code con l'estensione Front Matter CMS (consigliato)
# Clona il repository
git clone https://github.com/Metro-Olografix/olografix.org.git
cd olografix.org
# Avvia il server di sviluppo
hugo server -DOra puoi vedere il sito in esecuzione all'indirizzo http://localhost:1313
Front Matter CMS è un'estensione per VS Code che semplifica la gestione dei contenuti Hugo. Il repository è già configurato per utilizzarla.
- Apri VS Code
- Installa l'estensione Front Matter CMS (
eliostruyf.vscode-front-matter) dal marketplace - Apri la cartella del repository in VS Code
Una volta installata, vedrai l'icona di Front Matter nella barra laterale sinistra (icona con la "FM").
Dashboard: Clicca sull'icona per aprire la dashboard dove puoi:
- Vedere tutti i contenuti del sito organizzati per tipo
- Creare nuove attività, progetti o pagine
- Modificare i contenuti esistenti
Creare una nuova attività:
- Apri la dashboard di Front Matter
- Clicca su "Create content"
- Seleziona il tipo di contenuto (es. "attivita")
- Compila i campi del frontmatter tramite l'interfaccia grafica
- Scrivi il contenuto nel pannello dell'editor
Modificare un contenuto esistente:
- Apri un file
.mddalla dashboard o dall'explorer - Il pannello laterale di Front Matter mostrerà tutti i campi del frontmatter
- Modifica i valori direttamente dall'interfaccia grafica
- Non devi ricordare la sintassi del frontmatter
- Autocompletamento dei campi
- Validazione automatica dei valori
- Anteprima delle date in formato leggibile
- Gestione semplificata delle immagini
Ci sono due metodi per contribuire, a seconda che tu faccia parte o meno dell'organizzazione Metro Olografix su GitHub:
Se sei membro dell'organizzazione:
- Crea un nuovo branch direttamente nel repository:
git checkout -b nome-del-branch
- Effettua le modifiche e committa:
git add . git commit -m "Descrizione delle modifiche"
- Pusha il tuo branch:
git push origin nome-del-branch
- Vai su GitHub e crea una Pull Request dal tuo branch verso il branch main.
Se NON sei membro dell'organizzazione:
- Fai un fork del repository tramite il pulsante "Fork" in alto a destra su GitHub
- Clona il tuo fork:
git clone https://github.com/TUO-USERNAME/olografix.org.git
- Crea un branch per le tue modifiche:
git checkout -b nome-del-branch
- Effettua le modifiche e committa:
git add . git commit -m "Descrizione delle modifiche"
- Pusha il tuo branch:
git push origin nome-del-branch
- Vai sul tuo fork su GitHub e crea una Pull Request verso il repository originale.
Le attività sono uno degli elementi più importanti del sito. Ecco come aggiungerne una nuova:
- Crea un nuovo file markdown nella cartella
content/italiano/attivita/con un nome significativo (es:workshop-arduino.md) - Aggiungi il frontmatter necessario seguendo questo template:
---
title: "Nome dell'Attività"
subtitle: "Una breve descrizione dell'attività"
date: "2023-11-15T18:30:00" # Data di inizio dell'evento
endDate: "2023-11-15T20:30:00" # Data di fine (opzionale)
recurring: false # true se l'evento è ricorrente
recurrenceType: "weekly" # weekly, bi-weekly, monthly (se ricorrente)
recurrenceDay: "wednesday" # giorno della settimana (se ricorrente)
recurrenceCount: 10 # numero di ricorrenze (se ricorrente)
location: "Sede Metro Olografix - Viale Marconi 278/1, Pescara" # Luogo dell'evento
locationUrl: "https://www.openstreetmap.org/node/12539021893" # Link alla mappa
externalUrl: "" # URL dell'evento esterno (opzionale)
---
Qui inserisci la descrizione dettagliata dell'attività. Puoi usare il markdown per formattare il testo.
**Materiale necessario**:
- Item 1
- Item 2
**Contenuti del workshop**:
1. Introduzione a...
2. Come funziona...
3. Esercitazioni pratiche- Per rendere l'attività disponibile anche in altre lingue, crea file corrispondenti nelle cartelle
content/english/attivita/econtent/spanish/attivita/con lo stesso nome file.
Per aggiungere una traduzione di un contenuto esistente:
- Identifica il file che vuoi tradurre nella cartella della lingua originale
- Crea un file con lo stesso nome nella cartella della lingua di destinazione
- Copia il frontmatter, traducendo i campi
title,subtitlee il contenuto - Assicurati che i parametri come
date,recurring, ecc. siano identici
Esempio per tradurre in inglese:
- Da:
content/italiano/attivita/workshop-golang.md - A:
content/english/attivita/workshop-golang.md
olografix.org/
├── content/ # Contenuti del sito
│ ├── italiano/ # Contenuti in italiano
│ │ ├── attivita/ # Eventi e workshop
│ │ ├── progetti/ # Progetti dell'associazione
│ │ └── photogallery/ # Galleria fotografica
│ ├── english/ # Contenuti in inglese
│ └── spanish/ # Contenuti in spagnolo
├── layouts/ # Template e layout
│ ├── _default/
│ ├── partials/
│ └── shortcodes/
├── static/ # File statici (CSS, JS, immagini)
├── assets/ # Asset gestiti da Hugo
└── config.toml # Configurazione del sito
Per gli eventi ricorrenti, è importante compilare correttamente i campi:
recurring: truerecurrenceType: specificare il tipo (weekly, bi-weekly, monthly)recurrenceDay: specificare il giorno della settimanarecurrenceCount: specificare il numero di occorrenze
Per i progetti con un sito esterno dedicato:
- Usa
externalUrlnel frontmatter per specificare l'URL esterno - Opzionalmente, usa
footerUrlper un pulsante nel footer
Il sito supporta tre lingue:
- Italiano (predefinito)
- Inglese
- Spagnolo
Le traduzioni per l'interfaccia si trovano nei file:
i18n/it.tomli18n/en.tomli18n/es.toml
Prima di fare una pull request, assicurati che:
- Il sito funzioni correttamente in locale (
hugo server) - Il contenuto sia formattato correttamente
- Tutte le traduzioni necessarie siano presenti
- I link interni ed esterni funzionino