ITA - Come usare jekyll
September 2017 (626 Words, 4 Minutes)
Jekyll è un semplice generatore di siti statici per blog. Il software è strutturato in maniera che i file html vengano genrati a partire da una serie di modelli e file di testo ( tipo Markdown ).
Jekyll è il motore dietro le pagine di GitHub, il che significa che è possibile utilizzare Jekyll per generare la pagina, il blog o il sito web del progetto dei server di GitHub.
Installazione
ubuntu/debian
apt install jekyll
centos/fedora
yum install jekyll
Uso di base
Creare un nuovo sito
Per inizializzare un nuovo sito con il nome mio blog eseguire jekyll new my_blog
verrà creata una cartella my_blog
:
~/Desktop/my_blog$ tree
.
├── about.md
├── _config.yml
├── css
│ └── main.scss
├── feed.xml
├── _includes
│ ├── footer.html
│ ├── header.html
│ ├── head.html
│ ├── icon-github.html
│ ├── icon-github.svg
│ ├── icon-twitter.html
│ └── icon-twitter.svg
├── index.html
├── js
│ ├── html5shiv.js
│ └── respond.js
├── _layouts
│ ├── default.html
│ ├── page.html
│ └── post.html
├── _posts
│ └── 2017-10-06-welcome-to-jekyll.markdown
└── _sass
├── _base.scss
├── _layout.scss
├── _normalize.scss
└── _syntax-highlighting.scss
File di configurazione
Questo è un esempio di file di configurazione :
# Welcome to Jekyll!
#
# This config file is meant for settings that affect your whole blog, values
# which you are expected to set up once and rarely need to edit after that.
# For technical reasons, this file is *NOT* reloaded automatically when you use
# 'jekyll serve'. If you change this file, please restart the server process.
# Site settings
title: ITA - Titolo
email: tua-email@dom.net
description: > # questo sigifica che gli a capo verranno ignorati fino a "baseurl:"
Qui inserirsci una desccrizione del tuo sito
baseurl: "" # il percorso del sito, es. /blog
url: "http://yourdomain.com" # protocollo e dominio di base
twitter_username: jekyllrb
github_username: jekyll
# Build settings
markdown: kramdown
Aggiungere un post
Per aggiungere un post basta copire il post di esempio presente nella cartella _post
ed editarlo, da notare che la data nel nome del file devono essere coerenti:
nome file
aaaa-mm-gg-titlo_articolo.markdown
header file
---
layout: post
title: ITA - "titolo articolo"
date: aaaa-mm-gg hh:mm:ss +tttt
category: news
---
Aggiungere una pagina statica
Per aggiungere una pagina statica partire dal modello della pagina about.md
, anche in questo caso modifcare i metadati in maniera coerente:
---
title: ITA - titolo pagina
permalink: /titolo-pagina/
layout: page
---
Generare il proprio stio
Per generare la i file statici del nostro sito si possono usare i seguenti comandi
jekyll build
# La cartella corrente verra generata in ./_site
jekyll build --destination <destinazione>
# La cartella corrente verrrà generata nella cartella <destinazione>
jekyll build --source <sorgente> --destination <destinazione>
# La cartella <sorgente> verra generata nella cartella <destinazione>
jekyll build --watch
# La posizione corrente verra generato in ./_site,
# nel caso ci siano cambiamenti verra rigenerato in automatico``
Per facilitare lo sviluppo di siti web Jekyll dispone di un server web integrato, richiamabile :
jekyll serve
# Il servver di sviluppo è disponibile su http://localhost:4000/
# Auto-regeneration: enabled. Use `--no-watch` to disable.
Per visualizzare il risultato inserire nella barra del browser http://localhost:4000/
jekyll serve --detach
# Come nel caso di `jekyll serve` viene lanciato il server di debug, ma in background.
# Per terminare l'esecuzione si può procedere con `kill -9 1234` dove "1234" è il PID.
# Per trovare il pid si può usare `ps aux | grep jekyll`.
Deploy con git
Per poter eseguire il deploy di un sito usando git è necessario che sul server remoto sia presente un utente in grado di scrivere la DocumentRoot del sito, e dovrebbe essere possibile aggiugere al file authorized_keys la propria chiave pubblica.
Da notare che sul server remoto devono essere installati :
- jekyll
- git
Successivamente si dovrà creare un repo git e modificarne l’hook di post-recive, tutto nel seguente modo:
laptop$ ssh deployer@example.com
server$ mkdir myrepo.git
server$ cd myrepo.git
server$ git --bare init
server$ cp hooks/post-receive.sample hooks/post-receive
server$ mkdir /var/www/myrepo
Dopo di che modificare il file hooks/post-receive aggiungendo le seguenti linee :
GIT_REPO=$HOME/myrepo.git
TMP_GIT_CLONE=$HOME/tmp/myrepo
PUBLIC_WWW=/var/www/myrepo
git clone $GIT_REPO $TMP_GIT_CLONE
bundle exec jekyll build -s $TMP_GIT_CLONE -d $PUBLIC_WWW
rm -Rf $TMP_GIT_CLONE
exit
In fine dal proprio pc aggingere la destinazione remota
laptops$ git remote add deploy deployer@example.com:~/myrepo.git
Adesso è possibile usare il comando per eseguire il deploy
laptops$ git push deploy master
Riferimenti
Quest'opera è distribuita con Licenza Creative Commons Attribuzione - Condividi allo stesso modo 4.0 Internazionale Theme Moonwalk