Appunti di pubblicazione con Pelican

Appunti sulla formattazione Markdown e pubblicazione con Pelican, il generatore di pagine statiche che alimenta questo sito.

Installazione

Con Debian 9, volendo su una VM (senza compartimentare e stando con la versione stable di Python e Pelican).

apt install pelican markdown python3-pip

Configurazione

Il manuale di pelican

mkdir -p ~/Sites/yoursite

pelican-quickstart -p

Viene generata la cartella content che deve contenere i post.md

emacs ~/Sites/mysite/content/primopost.md

Headers

Ogni post.md inizia con le definizioni:

Title: Prima viene il corvo
Date: 02 31 2019
Category: disco
Tags: Calvino, resistenza
Slug: 2018-einaudi-calvino-italo-prima-viene-il-corvo
Authors: Italo Calvino
Summary: Questo è il riassunto che verrà visualizzato nell'index e nei feed.

Solo il campo: Titolo è necessario.

Meglio definire qualche categoria a priori. È possibile anche usare i folder per creare una categoria, ma meglio definirle negli header.

Le tags secondo me possono andare a pioggia e pazienza se ripetono anche qualche categoria. Per fortuna non sono case-sensitive.

Come Authors posso mettere diversi autori separati da una virgola, o posso usare: "Author" se il sito, come in questo caso, ha un autore solo. Per questo motivo qui, cliccando sul nome dell'autore, invece che fornire la lista dei suoi post, si trova la pagina informazioni.

Lo slug serve a definire l'url della pagina, che altrimenti viene derivato dal titolo. Ad esempio mi piace che l'url contenga anno-riferimento-titolo-proposito (es. 2011-giornale-titoloarticolo-recensione)

Capita tre volte di nominare un post:

  • Nel nome del post.md
  • nel Titolo
  • nell'url

Meglio farci un pensiero e trovare un metodo, ad esempio usare il nomefile come slug e andare giù piatti nel titolo.

Ad esempio il post dell'articolo Hackmeeting 2010:

nomefile: 2010-ilmanifesto-hackmeeting-roma-scambio-e-libera-comunicazione.md

Title:    Hackmeeting Roma (Scambio e libera comunicazione)

Slug:     2010-ilmanifesto-hackmeeting-roma-scambio-e-libera-comunicazione

Sintassi di scrittura

Il markdown si scrive come testo normale, supporta i seguenti marcatori:

*italico*

**grassetto*

# Capitoli
## Capitoletti

> evidenza

[TAB] codice

[TAB] #!python
      righe numerate

Creare link

Link esterno

[chumbarolling](https://www.youtube.com/watch?v=tf7kDY1krw8)

Immagine

![foto]({attach}/images/immagine.jpg)

Link a un articolo nel sito

[link a un articolo]({filename}/howto/pelican.md)

Link a una tag, categoria, autore

[link a una tag]({tag}pelican)
[link a una categoria]({category}disco)
[link a un autore]({author}Daniele Salvini)

Link a un file

[link a un file]({attach}/media/archive.zip)

[link a un file](/media/pubkey.asc.asc)

Tema

Tenere il tema default, usare un template, o scrivere il proprio tema.

Sviluppo

make newpost NAME='anno-riferimento-titolo-proposito'

make html

make serve

(goto) http://localhost:8000/

Pubblicazione

make newpost NAME='anno-riferimento-titolo-proposito'

make clean

make html

make publish

make rsync_upload