Grav, bello ma impossibile

KOoLiNuS, uno dei più attenti lettori di questo blog, mi ha suggerito di dare una occhiata a Grav, un moderno generatore di siti web statici,

follemente veloce, ridicolmente facile e favolosamente potente

L’ho provato per qualche giorno, con la prospettiva di verificare se potesse essere una alternativa a Jekyll, il generatore di siti web statici che ho deciso da tempo di usare per questo blog al posto di WordPress (non chiedetemi però quando avverrà).

Gli sviluppatori non esagerano, Grav è veramente bello e facile da usare.

Mi piace in particolare la possibilità di scaricare dei siti preconfezionati, contenenti il sistema base, il tema grafico e alcuni plugin già configurati, che implementano i tipi più comuni di sito web, dal blog al sito di fotografie, dal sito di presentazione di un prodotto a quello di e-commerce.

Installazione e uso di Grav

Premessa: tutti gli esempi seguenti verranno eseguiti nella directory Sites, contenuta nella Home dell’utente. Una volta creata questa directory dal Finder o dal Terminale, si noterà che l’icona della cartella ha impresso il simbolo di Safari. Per parecchie versioni di OS X infatti (fino a Lion se ricordo bene), Sites è stata una delle directory predefinite presenti nella Home degli utenti di OS X.
Nonostante Apple abbia rimossa da tempo questa directory, io continuo a trovarla molto comoda per gestire dei siti web di prova.

Grav può essere installato sia dalla linea di comando che scaricando un file zip contenente un sito già pronto e perfettamente funzionante.

Nel primo caso, basta lanciare il Terminale, spostarsi nella directory Sites ed eseguire in sequenza i comandi

    $ cd ~/Sites
    $ git clone https://github.com/getgrav/grav.git
    $ cd grav/
    $ bin/grav install

con i quali (1) si seleziona la directory di lavoro, (2) si scarica il codice di Grav dal sito del progetto, (3) ci si sposta nella directory grav/ del sito e (4) si installano il tema grafico e i plugin predefiniti.

Completata l’installazione, si può provare rapidamente che tutto funzioni eseguendo, sempre dalla directory grav/ il comando

$ php -S localhost:8000

e puntando il proprio browser all’indirizzo web

http://localhost:8000

per visualizzare in tutta la sua magnificenza grafica il sito web di default generato da Grav.

Sinoti che il comando php -S localhost:8000 esegue un server web basilare integrato in PHP, uno degli strumenti fondamentali per sviluppare applicazioni web, presente di default in OS X. Ovviamente nulla impedisce di usare al suo posto apache, il principe dei server web, presente anch’esso di default in OS X. Purtroppo è diventato difficile convincere apache ad usare la directory ~/Sites in aggiunta a quella predefinita, /Library/WebServer/Documents/.

Fra tutte le directory contenute in Grav, la più importante è la directory user/, che contiene le pagine del sito e i relativi plugin, temi e file di supporto.

Le pagine del sito sono contenute in user/pages/ e sono scritte in Markdown, uno degli strumenti più interessanti per scrivere testi per il web, che utilizza una sintassi molto più semplice e leggibile del classico codice HTML.

Il modo più semplice per aggiungere una nuova pagina al sito è spostarsi nella directory user/pages/

cd user/pages/

copiare la directory 01.home in, diciamo, 02.nuova_pagina

cp -p -r 01.home 02.nuova_pagina

e modificare opportunamente il contenuto del file default.md presente all’interno della directory 02.nuova_pagina.

Il titolo della pagina, definito nella intestazione del file default.md verrà usato per aggiungere automaticamente una nuova voce al menu del sito web.
Il prefisso numerico associato al nome di ciascuna directory stabiliscono l’ordine con cui compaiono le pagine nel menu del sito.

Se si vuole installare uno dei siti preconfezionati, bisogna invece scaricare il file zip relativo in ~/Sites/. Come già detto, contiene oltre al sistema base i plugin necessari ad implementare le funzionalità desiderate e il tema grafico previsto dagli sviluppatori per quel particolare tipo di sito web.

Una volta scompattato il file zip e rinominata la directory generata con un nome più conveniente (in questi casi non c’è bisogno di essere troppo creativi, grav va benissimo), basta spostarsi all’interno della directory del sito e lanciare il server web PHP

$ cd ~/Sites/grav
$ php -S localhost:8000

per attivare il nuovo sito web, visibile come già visto prima all’indirizzo

http://localhost:8000

Aggiornamento e installazione di plugin e temi

Il comando di Terminale gpm (grav package manager) permette di aggiornare il sistema e di installare i plugin e i temi di Grav. Il comando gpm deve essere eseguito posizionandosi nella directory grav/ del sitoe specificando la directory bin che contiene l’eseguibile.

I principali comandi implementati in gpm sono molto semplici:

$ bin/gpm index

che mostra la lista completa dei plugin e dei temi disponibili,

$ bin/gpm info nome_plugin
$ bin/gpm install nome_plugin
$ bin/gpm uninstall nome_plugin

che permettono rispettivamente di ottenere informazioni, installare o disinstallare un particolare plugin o un tema di Grav.

Inoltre il comando

$ bin/gpm self-upgrade

aggiorna Grav all’ultima versione disponibile, mentre

$ bin/gpm update

aggiorna i plugin o i temi già installati. Quest’ultimo può essere anche seguito dal nome del plugin (o del tema) da aggiornare.

Documentazione

La documentazione di Grav è fatta molto bene, anche se è piuttosto succinta e un po’ carente nei dettagli.

Purtroppo, data la relativa giovinezza del progetto, mancano ancora i tutorial online creati dagli utenti, che molte volte sono più utili della documentazione “ufficiale” per imparare ad usare un software come questo.

Molte volte, infatti, i programmatori non riescono a spiegare al meglio il funzionamento dei software che sviluppano, si perdono in dettagli inutili e tralasciano gli aspetti fondamentali. Gli utenti finali sono spesso più bravi e, avendo imparato ad usare il software da zero, si rendono conto meglio delle difficoltà che si incontrano nell’uso quotidiano del programma.

Bello ma impossibile

Tutto bene, allora? L’ho già detto, Grav è veramente bello e interessante, una opzione allettante se si vuole mettere su un nuovo sito web.
Ammetto che se partissi da zero potrei perfino considerare di usarlo al posto di Jekyll.

Ma non lo farò.

Innanzi tutto perché sono ormai andato troppo avanti con Jekyll, ho letto decine di articoli e di tutorial, ho una idea piuttosto chiara di quello che voglio fare e non mi va di buttare a mare il lavoro fatto finora.

Inoltre Grav va benissimo finché si sta dentro i recinti stabiliti dagli sviluppatori. Ma comincia a mostrare di essere ancora piuttosto immaturo se si prova ad uscire, anche di poco, da questi recinti.

La struttura delle directory e dei file che costituiscono un sito è troppo rigida.
Voglio creare una nuova pagina di un sito web statico? Devo andare in user/pages/ e aggiungere una directory con un nome qualunque, che deve però iniziare con un numero. In questa directory devo creare un file default.md che contiene il testo della pagina e il cui titolo definisce la voce di menu del sito web associata alla pagina.

Posso usare un’altro nome per il file al posto di default.md? Assolutamente no.
Come faccio se ho già una serie di file contenenti il testo delle pagine? Devo rinominarli uno ad uno e distribuirli in ciascuna delle directory numerate.
E se le pagine contengono già dei link che le collegano le une alle altre, non sarò mica obbligato a cambiare i link uno a uno? Probabilmente si.

E se voglio aggiungere delle pagine statiche ad un blog già pronto, ad esempio il bellissimo Notepad? Le pagine statiche devono andare in user/pages/, quelle del blog in user/blog/. Se provo ad aggiungere in user/ la directory pages/ contenente una o più pagine statiche, non c’è verso, continuerò comunque a vedere solo i post del blog.

Perfino i plugin e i temi installati da Terminale nel 50% dei casi non funzionano, senza che Grav dia delle indicazioni utili per capire il perché.

Sono sicuro che c’è un modo per superare questi problemi, ma io non ci sono riuscito e la documentazione non aiuta. Meglio aspettare che Grav maturi un po’.

Advertisements
Tagged with: , , , , ,
Pubblicato su software
11 comments on “Grav, bello ma impossibile
  1. frix ha detto:

    … e pensare che ad aprile, tra il serio ed il faceto, minacciavi di chiudere bottega!
    😏

    Mi piace

  2. fabioschiano ha detto:

    però mi sembra ne valesse la pena di continuare… personalmente con questa varietà di argomenti lo trovo molto gradevole da consultare… poi i risultati per gli accessi li conosci tu…

    Mi piace

  3. fabioschiano ha detto:

    Una cosa che ti ho promesso da tempo…

    ho realizzato un progetto in Ghost, al momento in fase di test avanzata (cioè a scappatempo) e ci ho scritto sopra uno’ di cose su come è stato creato…

    per me si allaccia perfettamente al discorso di come molti CMS o peggio generatori dinamici di siti siano poi veramente incompleti per un uso professionale… compreso quello di questo post…

    E’ un po’ lungo per scriverlo qui, e poi non voglio ancora pubblicizzare il blog in Ghost, inevitabilmente lo farei

    Ma a qualcosa, a tuo giudizio, più servire

    Se mi mandi un recapito mail (sul blog non lo trovo, ed ora ho fretta), ti mando il materiale e il link in anteprima e poi decidi che farne, liberamente…

    se vuoi, manda a fabio.?schiano?@?me.?com?

    (ovviamente togli i punti interrogativi 🙂

    Mi piace

    • Sabino Maggi ha detto:

      OK, pensavo che l’email fosse più visibile, a me compare perché sono loggato sull’account di WordPress.com, ma evidentemente non è così per tutti.
      Comunque la trovi cliccando sull’icona di Google+, in fondo alla pagina.
      Non capisco una cosa: perché ritieni che quello che hai fatto con Ghost sia troppo lungo per essere descritto qui? Non mi pare di essere mai particolarmente sintetico… 😉
      Comunque discutiamone privatamente e vediamo che fare. Io comunque sono ben felice di ospitare contributi scritti da altri, e questo naturalmente vale per tutti.

      Mi piace

  4. fabioschiano ha detto:

    grazie ti aggiorno max nel weekend

    Mi piace

    • kOoLiNuS ha detto:

      Fabio … se ti va possiamo ospitare il tuo post su Tevac (conosci?)

      Mi piace

      • kOoLiNuS ha detto:

        Ovviamente sempre che a Sabino non paia opportuno pubblicarlo qui !!!!

        Mi piace

        • Sabino Maggi ha detto:

          Non devo certo decidere io, semmai tocca all’autore. In ogni caso io non mi offendo di sicuro, so bene che Tevac offre una visibilità decisamente maggiore di questo blog.

          Mi piace

          • kOoLiNuS ha detto:

            Ribadisco… casomai tu volessi tenere questo blog SOLO come uno spazio tuo, solo allora accoglierei a braccia aperte il post di Fabio. Nel caso tu decida di rendere questo spazio aperto a collaborazioni esterne, il mio invito specifico decade!

            A braccia aperte, invece, sul menzionato Tevac raccogliamo i contributi di chiunque … vogliamo rendere Tevac un posto dove parlare di tecnologia in generale, con un occhio di riguardo – ma anche critico – verso Cupertino. Da questo intento nacque la struttura a Network che nel sito “madre” raccoglie i contributi di tutti quelli che volevano proseguire la propria collaborazione in uno spazio personale…

            Mi piace

          • Sabino Maggi ha detto:

            Assolutamente no, credo di averlo già scritto che sono aperto ai contributi di tutti. Ovviamente se sono adatti al blog. Contributi scopiazzati più o meno malamente dai siti internazionali di notizie, come si vedono nella maggior parte dei siti italiani dedicati al Mac (e non fatemi fare nomi, per una volta) non mi interessano, ma più o meno tutte le cose originali dovrebbero andare bene.

            Capisco bene che Tevac abbia la stessa impostazione, e guarda, se ho rifiutato la tua offerta di entrarci è solo perché voglio essere libero di organizzare e modificare nel tempo questo blog come preferisco, non solo come temi da affrontare (vedi i post domenicali) ma anche dal punto di vista funzionale e grafico (succederà succederà). Me lo chiede lo sviluppatore part-time che è in me. 😉

            Mi piace

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

Informativa
Questo sito utilizza cookie di terze parti per inviarti pubblicità e servizi in linea con le tue preferenze. Se vuoi saperne di più o negare il consenso a tutti o ad alcuni cookie, clicca qui. Scorrendo questa pagina, cliccando su un link o su qualunque altro elemento o proseguendo la navigazione in altra maniera, acconsenti all'uso dei cookie.
Follow MelaBit on WordPress.com
Categorie
Archivi
%d blogger hanno fatto clic su Mi Piace per questo: