I siti statici sono popolari per molte ragioni. Evitare soluzioni di overkill e mantenere un progetto semplice senza database, troppe dipendenze o configurazioni specifiche lato server (no PHP, no MySQL / MSSQL, .NET, Python, Ruby e così via) rendono molto semplice l'implementazione e la robustezza contro numerose possibili vulnerabilità. In definitiva, diventano pagine HTML di base per l'utente.
In questa guida, ti mostrerò come configurare il tuo ambiente di sviluppo con Hugo e creare il tuo primo sito web Hugo statico.
Il leggendario acronimo di design KISS - Keep It Simple, Stupid - può essere applicato a Hugo e come si avvicina allo spazio del generatore di siti Web statici.
Built in Go, Hugo raccoglie rapidamente le pagine statiche (impiega frazioni di millisecondi per compilare un sito di piccole dimensioni e può fare migliaia di pagine in pochi secondi).
Inoltre, Hugo fornisce strumenti essenziali per il flusso di lavoro del sito Web statico (inclusi strumenti di implementazione e migrazione), consentendo a sviluppatori e progettisti di concentrarsi sulle parti divertenti come esercitare la propria creatività e implementare la creatività in questione nella costruzione del sito Web.
Quando costruiamo siti Web basati sui contenuti, possiamo assumere alcune generalità su tutti i siti e Hugo fornisce un framework per questo. Nello specifico, possiamo prendere tipi di contenuto come post, categorie, recensioni o prodotti e organizzare i dati. Quindi, possiamo dare a ciascuno un aspetto specifico tramite modelli e fogli di stile.
Andando avanti, possiamo davvero guidarlo ovunque ci sia bisogno nello spazio sito web statico HTML / CSS / JS. Quando ci pensi pragmaticamente, è un grande spazio che lascia spazio alla creatività.
jQuery funzionerà correttamente e non vi è nulla che ti impedisca di utilizzare servizi di terze parti sulla tua pagina statica, se ne hai bisogno. Quindi non limitarti a pensare di non poter integrare altre librerie o applicazioni nei tuoi siti statici. Non è proprio il caso: puoi utilizzare qualsiasi delle librerie JavaScript disponibili.
Quindi per alcune pagine di un opuscolo aziendale tipo sito web, con un link a un modulo di Google per una pagina Contattaci. E se hai bisogno di visualizzare altri tipi di dati, puoi usare JavaScript per quell'aspetto del tuo sito.
Prendiamo, ad esempio, un piccolo negozio o un libero professionista con alcuni prodotti o servizi che non richiedono un'intera soluzione di e-commerce. Invece, richiedono solo informazioni sul prodotto e un link "contatto" sulla pagina. Hugo può farlo entro la fine della mattinata. L'hosting non è nemmeno un grosso problema - è un ripensamento, davvero, perché stiamo semplicemente servendo pagine HTML di base.
Hugo funziona bene anche per la documentazione del progetto sui progetti GNU. Ad esempio, pensa alle start-up o alle PMI che hanno bisogno di una presenza semplice.
Quello che Hugo non può fare è dinamico contenuto, ad esempio moduli basati su database, ricerca o sistemi utente. Se questo è ciò che stai cercando, allora certamente Hugo lo è non ciò che vuoi. Ma per le altre volte, quando ti ritrovi a dire "non possiamo semplicemente creare una pagina di base per questo?" I generatori di siti Web statici sono un'opzione solida. Inoltre, tieni presente che Hugo non è l'unico generatore di siti statici. Ci sono molti là fuori e sono in giro da molto tempo, ecco una lista di loro.
Per la creazione di blog di contenuti dal vivo come siti di notizie, Hugo potrebbe essere un'ottima soluzione per far saltare rapidamente una pagina per quella copertura da collegare dal tuo sito principale, scaricandola online in pochi minuti, il che significa che puoi continuare ad aggiungerlo velocemente e ridistribuire le modifiche molto velocemente. Ma per creare un intero sito di notizie con ricerca e molti scrittori, non sarebbe davvero appropriato usare Hugo.
A Hugo manca anche l'uso di strumenti più avanzati per la sua pipeline di asset come ES6 e Sass: se si desidera utilizzare tale tecnologia, è necessario includere Gulp o Grunt per portare a termine il lavoro; altrimenti, vanilla CSS e JavaScript funzionano meglio.
Hugo è scritto in Go e ha il supporto per molte piattaforme, per visualizzare tutte le versioni che puoi pubblicare qui
Per gli utenti macOS con HomeBrew, l'installazione può essere eseguita come segue:
prepara l'aggiornamento e prepara l'installazione hugo
Ulteriori informazioni sull'installazione per Mac OSX e Windows
Una volta installato Hugo, possiamo testare l'installazione eseguendo aiuto di hugo
nel prompt dei comandi o versione hugo
Ora che abbiamo installato Hugo, possiamo iniziare a creare il sito web. Esegui il seguente comando sostituendo 'your-sitename-here' con il nome del tuo progetto:
$ hugo nuovo sito your-sitename-qui
Questo creerà un'impalcatura per il tuo sito che potrai vedere nel tuo mirino
o nel tuo terminale tramite il albero
comando
Hugo ha creato 5 sottodirectory e 1 file, che usa per creare il sito web finale da qui che cosa significano tutti:
contenuti / prodotti
per il contenuto dei tuoi prodotti, ad esempioAbbiamo bisogno di aggiungere un post per vedere il sito che abbiamo appena creato, farlo usando il seguente comando:
$ hugo new post / first-post.md
Ora modifica il file in content / post / first-post.md, conterrà qualcosa di simile al seguente per impostazione predefinita:
+++ date = "2016-09-26T13: 19: 03 + 07: 00" title = "primo post" +++
Il contenuto dentro +++
è la configurazione di TOML per il post. Questa configurazione è chiamata materia prima. Ti consente di definire la configurazione del post insieme al suo contenuto. Per impostazione predefinita, ogni post avrà le proprietà di configurazione mostrate sopra.
Aggiungi del testo dopo il +++
così:
+++ date = "2016-09-26T13: 19: 03 + 07: 00" title = "primo post" +++ Ciao mondo!
Quindi possiamo vedere la funzionalità live reload che è integrata con Hugo, facciamo alcune modifiche al sito e vediamo cosa succede.
Per prima cosa avviare il server eseguendo
$ hugo server
Ora se apporti delle modifiche al tuo file, vedrai Hugo ricaricare all'istante.
Il tuo sito Web sarà disponibile all'indirizzo http: // localhost: 1313 ma resisti - vedrai comunque solo un pagina bianca vuota a questo punto, perché non abbiamo definito un tema!
Hugo ha una libreria di temi molto robusta e versatile che usa Go's html / template
biblioteca. I temi sono facili da utilizzare, l'installazione viene eseguita semplicemente clonando il repository di un tema nel temi
directory per il tuo sito Hugo.
Hugo non ha un tema predefinito, quindi tu dovere impostare uno.
Ci sono un sacco di temi open source tra cui scegliere.
Aggiungiamo un sacco di temi al nostro sito in modo da poter giocare con tutti loro e vedere ciò che ci piace. Fatelo eseguendo quanto segue nella nostra directory di Hugo:
$ git clone --recursive https://github.com/spf13/hugoThemes.git temi Clonazione in 'temi' ... remoto: conteggio oggetti: 880, fatto. remote: compressione di oggetti: 100% (5/5), fatto. remote: Totale 880 (delta 1), riutilizzato 0 (delta 0), 875 Oggetti riusati a pacchetto: 100% (880/880), 669,20 KiB | 288,00 KiB / s, fatto. Delta di risoluzione: 100% (506/506), fatto. Controllo della connettività ... fatto.
Ora vedrai un intero mucchio di temi clonati nel tuo sito. Ce ne sono molte quindi avrai tempo per una pausa mentre clona ...
Per usare un tema basta avviare Hugo con il -t
o --tema
parametro come questo
$ hugo -t ThemeName
O puoi aggiungere al tuo config.toml
:
tema: "ThemeName"
Il THEMENAME deve corrispondere al nome della directory all'interno / temi
.
Quando hai scelto un nome di tema dalla directory, avvia il tuo server con hugo server --theme = ThemeName
e dai un'occhiata a http: // localhost: 1313
Ecco alcuni esempi tratti da alcuni dei temi che abbiamo clonato, ho usato elemosinare
, croccante
ecactus
dare un'occhiata in giro ci sono tanti tra cui scegliere!
Così ora hai generato un sito web con un post di Hello World, cos'altro possiamo fare?
Creare un blog di base è davvero facile da fare con Hugo. Innanzitutto, devi definire un archetipo per il post predefinito, quindi crea un nuovo file in archetipi / default.md
e aggiungi il seguente come materia anteriore:
+++ tags = ["welding", "metal work"] categories = ["posts"] +++
Qui impostiamo alcuni tag predefiniti, per un blog sulla saldatura possiamo essere sicuri di volere questi tag su tutti i nostri post, e creiamo una categoria chiamata post solo così abbiamo un valore predefinito quando creiamo un post.
Ora aggiungi il tuo primo post tramite il terminale in questo modo:
$ hugo nuovo post / tig-welding-a-bike-frame.md
Questo creerà un post con l'archetipo che hai definito prima, ora puoi aprirlo in un editor di testo e iniziare a scrivere via nel formato markdown!
Aggiungiamo altri post:
$ hugo nuovo post / welding-a-roll-cage.md
Ancora una volta per aggiungere contenuti, basta aprire il file creato da Hugo e iniziare ad aggiungere contenuto alla fine del file dopo la questione frontale.
Per costruire una galleria fotografica con Hugo useremo l'eccellente strumento hugo-gallery
disponibile su GitHub.
Il suo utilizzo è così:
hugo-gallery
Il hugo-gallery
lo strumento creerà una nuova directory di post contenente un file di markdown per ogni immagine nella directory di origine che consente una presentazione ordinata. Leggerà tutti i file dal Percorso di origine
directory e salvarli nella directory statica del sito di Hugo.
Creerà una nuova directory all'interno della directory dei contenuti basata su Titolo
fornito ad es Contenuto / saldatura
Per esempio:
$ hugo-gallery static / images / welding-photos welding "Foto delle mie folli abilità di saldatura"
Visita localhost: 1313 / saldatura
per vedere il contenuto.
Hugo ha diversi strumenti per l'implementazione come hugomac, un'app di menu OSX che consente all'utente di pubblicare facilmente nell'hosting EC2. Nessuna riga di comando necessaria.
Inoltre, hugodeploy fornisce una configurazione SFTP da distribuire, oppure puoi semplicemente utilizzare le distribuzioni automatizzate fornite con Hugo.
I generatori di siti statici sono in circolazione da un po 'di tempo e Hugo si basa sul set di strumenti che rende facile e veloce il bombardamento di siti o persino la migrazione di un sito esistente da WordPress a Hugo. Ci sono molti strumenti per Hugo, inclusi gli editor di front-end che li controllano.
Andando avanti, sarà bello vedere più moduli per Hugo che forniscono supporto per cose come un modulo di contatto e il supporto per la galleria, o per i post correlati, ad esempio.
La roadmap di Hugo ha molte idee interessanti come il ridimensionamento dinamico delle immagini, il supporto per l'importazione di rsync e immagini dai provider di hosting e un hosting più semplice con AWS EC2 e integrazione con GitHub.
Se non stai usando Hugo, assicurati di controllare il progetto mentre si sviluppa!