nuovo sito fatto con pelican
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

README.md 4.4 KiB

9 months ago
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152
  1. # PELICAN WEBSITE HOWTO
  2. ## TL;DR:
  3. Per avere un setup di test locale:
  4. ```
  5. virtualenv -p /usr/bin/python3 env
  6. source env/bin/activate
  7. pip install pelican
  8. pip install icalendar
  9. pip install markdown
  10. ```
  11. Ogni volta che si decide di lanciare il sito da un terminale diverso occorrerà
  12. fare soltanto:
  13. ```
  14. source env/bin/activate
  15. ```
  16. Per provare il sito sul proprio pc:
  17. ```
  18. make devserver
  19. ```
  20. e poi aprire nel proprio browser [127.0.0.1:8000](http://127.0.0.1:8000)
  21. ## CONFIGURAZIONE GENERALE
  22. ### pelicanconf.py:
  23. in questo file si definiscono un tot di variabili, si rimanda alla documentazione di pelican
  24. per una descrizione piu' approfondita, che definiscono come pelican gestisce i contenuti.
  25. Due di queste variabili sono fondamentali per definire l'output del sito e sono:
  26. - THEME - che definisce il tema usato.
  27. Al momento usiamo minimunit, un tema derivato dal tema "minimo" di dan (https://git.abbiamoundominio.org/dan/minimo)
  28. - MENUITEM - che definisce il "menu" che compare nella parte superiore di ogni pagina.
  29. - HOME (index)
  30. - 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.
  31. - CATEGORIE (lista delle categorie degli articoli, cliccabile)
  32. - TAG (lista dei tag degli articoli, cliccabile)
  33. - CONTATTI (pagina che riporta i contatti)
  34. - RSS (link al feed rss (atom))
  35. - PLUGINS - che definisce quali plugins sono attivi
  36. ### publishconf.py
  37. questo file definisce solo il SITEURL in produzione e l'indirizzo dei feed rss e atom creati.
  38. ### Makefile
  39. e' il makefile standard con le istruzioni per SSH per caricare il sito
  40. e un nuovo comando "production" per copiare il sito al suo posto
  41. (ma funziona solo se viene lanciato da zaphoda)
  42. ## MODIFICARE IL SITO/AGGIUNGERE CONTENUTI
  43. per lavorare sul sito clonare il repository:
  44. > git clone ssh://git@git.abbiamoundominio.org:10022/unit/website-pelican.git
  45. i contenuti stanno nella cartella "content", vengono scritti in markdown e sono di due tipi:
  46. - **pagine** statiche (nella sottocartella "pages")
  47. - **articoli** tipo blog (nella sottocartella "blog")
  48. una volta elaborati da pelican vengono salvati nella cartella "output" che e' quella
  49. che conterrà i files .html del sito vero e proprio
  50. le pagine e gli articoli si scrivono in formato markdown e devono contenere dei metadati:
  51. per le **pagine** statiche questi sono obbligatori:
  52. - Title: titolo (il titolo che poi compare a video nella pagina finale html)
  53. - Slug: nome_pagina (il nome con cui la pagina sara' salvata nella cartella output)
  54. ci sono altri metadati facoltativi, ad es. 404.md usa:
  55. Save_as: 404.html
  56. che fa override della direttiva PAGE_SAVE_AS e permette di salvare la pagina come 404.html nella root invece che nella sottocartella 404
  57. per gli **articoli** invece i metadati sono ad es.:
  58. - Title: Comunicato Unit hacklab su annuncio sgombero Macao
  59. - Author: Unit
  60. - Category: comunicato
  61. - Date: 2018-09-26
  62. - Tags: sgombero
  63. e' possibile anche inserire dei parametri aggiuntivi per impostare un calendario ics, utile per gli eventi:
  64. - Event-start: 2019-04-25 10:30
  65. - Event-duration: 2h
  66. - Event-location: somewhere
  67. - Event-recurring: weekly until 2019-06-20
  68. ci sono maggiori dettagli in plugins/events-readme.md
  69. #### IMMAGINI NEL SITO
  70. le immagini nel sito/pagine/articoli devono essere salvate in due cartelle:
  71. - media (che contiene i materiali delle pagine, pdf, immagini etc.)
  72. - images (che contiene le immagini della struttura del sito, al momento solo il logo))
  73. #### FEED RSS
  74. gli articoli finiscono nel feed rss, le pagine no, quindi se si crea una pagina
  75. e' bene fare anche un articolo che la "presenti".
  76. ## MANDARE LE MODIFICHE IN PRODUZIONE
  77. lanciando make pelican puo' rigenerare i contenuti, prende i files markdown e genera gli html salvandoli
  78. nella cartella output.
  79. Vedere il Makefile per tutte le opzioni, cmq le due piu' importanti sono:
  80. > make devserver
  81. rigenera i contenuti e fa partire un webserver su localhost:8000 dove si possono vedere le modifiche
  82. > make production (funziona solo avete clonato il repository su zaphoda)
  83. copia la cartella output in /var/www/unit.abbiamoundominio.org dove viene servita da nginx.
  84. **nota: **
  85. quando si rigenera il sito le pagine e gli articoli sono salvati:
  86. nella cartella output/nome_pagina/index.html
  87. (come definito nella variabile PAGE_SAVE_AS in pelicanconf.py)
  88. e nella cartella output/blog/data-titolo.html
  89. (come definito nella variabile ARTICLE_SAVE_AS in pelicanconf.py)