nuovo sito fatto con pelican
Go to file
2020-10-21 13:29:21 +02:00
content Margins and fix manifesto again 2020-10-21 00:25:15 +02:00
plugins fixed events plugin to create output folder if missing 2019-05-01 12:51:00 +02:00
themes Fix margin left in news 2020-10-21 13:29:21 +02:00
.gitignore prima versione del sito in pelican 2019-03-23 22:29:32 +01:00
.gitmodules Removed submodule minimo 2020-10-20 11:50:47 +02:00
Makefile Makefile fix for ansible testing 2019-04-30 22:38:45 +02:00
pelicanconf.py Margins and fix manifesto again 2020-10-21 00:25:15 +02:00
publishconf.py re-enabled tag feeds 2019-11-19 16:20:18 +01:00
README.md Fix readme 2020-10-20 20:58:49 +02:00
tasks.py prima versione del sito in pelican 2019-03-23 22:29:32 +01:00

PELICAN WEBSITE HOWTO

TL;DR:

Per avere un setup di test locale:

virtualenv -p /usr/bin/python3 env
source env/bin/activate

pip install pelican
pip install icalendar
pip install markdown

Ogni volta che si decide di lanciare il sito da un terminale diverso occorrerà fare soltanto:

source env/bin/activate

Per provare il sito sul proprio pc:

make devserver

e poi aprire nel proprio browser 127.0.0.1:8000

CONFIGURAZIONE GENERALE

pelicanconf.py:

in questo file si definiscono un tot di variabili, si rimanda alla documentazione di pelican per una descrizione piu' approfondita, che definiscono come pelican gestisce i contenuti. Due di queste variabili sono fondamentali per definire l'output del sito e sono:

  • THEME - che definisce il tema usato. Al momento usiamo minimunit, un tema derivato dal tema "minimo" di dan (https://git.abbiamoundominio.org/dan/minimo)

  • MENUITEM - che definisce il "menu" che compare nella parte superiore di ogni pagina.

    • HOME (index)
    • BLOG (lista degli articoli con anteprima (articles.html), volendo ci sarebbe anche la pagina archives.html che contiene la lista degli articoli ma senza anteprima.
    • CATEGORIE (lista delle categorie degli articoli, cliccabile)
    • TAG (lista dei tag degli articoli, cliccabile)
    • CONTATTI (pagina che riporta i contatti)
    • RSS (link al feed rss (atom))
  • PLUGINS - che definisce quali plugins sono attivi

publishconf.py

questo file definisce solo il SITEURL in produzione e l'indirizzo dei feed rss e atom creati.

Makefile

e' il makefile standard con le istruzioni per SSH per caricare il sito e un nuovo comando "production" per copiare il sito al suo posto (ma funziona solo se viene lanciato da zaphoda)

MODIFICARE IL SITO/AGGIUNGERE CONTENUTI

per lavorare sul sito clonare il repository:

git clone ssh://git@git.abbiamoundominio.org:10022/unit/website-pelican.git

i contenuti stanno nella cartella "content", vengono scritti in markdown e sono di due tipi:

  • pagine statiche (nella sottocartella "pages")
  • articoli tipo blog (nella sottocartella "blog")

una volta elaborati da pelican vengono salvati nella cartella "output" che e' quella che conterrà i files .html del sito vero e proprio

le pagine e gli articoli si scrivono in formato markdown e devono contenere dei metadati:

per le pagine statiche questi sono obbligatori:

  • Title: titolo (il titolo che poi compare a video nella pagina finale html)
  • Slug: nome_pagina (il nome con cui la pagina sara' salvata nella cartella output)

ci sono altri metadati facoltativi, ad es. 404.md usa: Save_as: 404.html che fa override della direttiva PAGE_SAVE_AS e permette di salvare la pagina come 404.html nella root invece che nella sottocartella 404

per gli articoli invece i metadati sono ad es.:

  • Title: Comunicato Unit hacklab su annuncio sgombero Macao
  • Author: Unit
  • Category: comunicato
  • Date: 2018-09-26
  • Tags: sgombero

e' possibile anche inserire dei parametri aggiuntivi per impostare un calendario ics, utile per gli eventi:

  • Event-start: 2019-04-25 10:30
  • Event-duration: 2h
  • Event-location: somewhere
  • Event-recurring: weekly until 2019-06-20

ci sono maggiori dettagli in plugins/events-readme.md

IMMAGINI NEL SITO

le immagini nel sito/pagine/articoli devono essere salvate in due cartelle:

  • media (che contiene i materiali delle pagine, pdf, immagini etc.)
  • images (che contiene le immagini della struttura del sito, al momento solo il logo))

FEED RSS

gli articoli finiscono nel feed rss, le pagine no, quindi se si crea una pagina e' bene fare anche un articolo che la "presenti".

MANDARE LE MODIFICHE IN PRODUZIONE

lanciando make pelican puo' rigenerare i contenuti, prende i files markdown e genera gli html salvandoli nella cartella output.

Vedere il Makefile per tutte le opzioni, cmq le due piu' importanti sono:

make devserver

rigenera i contenuti e fa partire un webserver su localhost:8000 dove si possono vedere le modifiche

make production (funziona solo avete clonato il repository su zaphoda)

copia la cartella output in /var/www/unit.abbiamoundominio.org dove viene servita da nginx.

**nota: ** quando si rigenera il sito le pagine e gli articoli sono salvati: nella cartella output/nome_pagina/index.html (come definito nella variabile PAGE_SAVE_AS in pelicanconf.py) e nella cartella output/blog/data-titolo.html (come definito nella variabile ARTICLE_SAVE_AS in pelicanconf.py)