====== Pelican ======
Notes personnelles, selon mon avancement la compréhension du fonctionnement de Pelican.
Notes d'installation du générateur de sites statiques [[https://getpelican.com|Pelican]]. On me l'a conseillé parce que Python, parce que simple pour les idiots qui n'ont pas envie de se prendre le chou avec Hugo ou Jekyll.
Notes suite à une installation pour test sur un conteneur Debian 12 sous Proxmox.
===== Installation =====
On installe pip, Python3 était déjà installé sur mon conteneur Debian :
apt install python3-pip -y
==== Définir une environnement virtuel Python ====
=== Sous Linux ===
mkdir undossier
python3 -m venv ~/undossier
source undossier/bin/activate
=== Sous Windows ===
python -m venv undossier
.\undossier\Scripts\activate
Comme je suis une feignasse, j'ai fait un script PowerShell pour ne pas me faire chier sous Windows :
$path_global = "H:\Dev"
$path_venv = "Python\venv"
$py_activate = "Scripts\activate.ps1"
Set-Location -Path $path_global
powershell -noexit ".\$path_venv\$py_activate ; cd Pelican-test"
Et je le lance avec un batch (oui) en utilisant Windows Terminal :
@ECHO OFF
SET folder="H:\Dev"
wt PowerShell -c %folder%\venv.ps1
==== Installer Pelican ====
On installe Pelican :
pip install "pelican[markdown]"
===== Créer un premier site =====
On créé un dossier et on lance l'assistant de Pelican :
mkdir monsupersite
cd monsupersite
pelican-quickstart
On répond aux questions de l'assistant :
pelican-quickstart
Welcome to pelican-quickstart v4.10.1.
This script will help you create a new Pelican-based website.
Please answer the following questions so this script can generate the files
needed by Pelican.
> Where do you want to create your new web site? [.]
> What will be the title of this web site? Erreur503
> Who will be the author of this web site? Yahiko
> What will be the default language of this web site? [en] fr
> Do you want to specify a URL prefix? e.g., https://example.com (Y/n) Y
> What is your URL prefix? (see above example; no trailing slash) https://blog.erreur503.xyz
> Do you want to enable article pagination? (Y/n) Y
> How many articles per page do you want? [10] 5
> What is your time zone? [Europe/Rome] Europe/Paris
> Do you want to generate a tasks.py/Makefile to automate generation and publishing? (Y/n) Y
> Do you want to upload your website using FTP? (y/N) N
> Do you want to upload your website using SSH? (y/N) y
> What is the hostname of your SSH server? [localhost]
> What is the port of your SSH server? [22]
> What is your username on that server? [root]
> Where do you want to put your web site on that server? [/var/www]
> Do you want to upload your website using Dropbox? (y/N)
> Do you want to upload your website using S3? (y/N)
> Do you want to upload your website using Rackspace Cloud Files? (y/N)
> Do you want to upload your website using GitHub Pages? (y/N)
Done. Your new project is available at /root/pelican
===== Créer une page =====
Dans ''monsupersite/content'' on créé un fichier ''md''.
Title: Mon super article
Date: 2024/11/13 21:43
Category: 3615 Ma vie
Tags: pelican, ma vie, test, osef
Slug: mon-super-article
Authors: Lapinours
# Titre 1
## Titre 2
Wow, un **super** article sur `Pelican`.
Tellement _beau_ et **_frais_**.
===== Tester =====
Pour tester rapidement le site il est possible de lancer le serveur web intégré :
pelican -r -l
Le site sera accessible sur http://127.0.0.1:8000.
===== Publier =====
pelican /chemin/monsupersite/content -s /chemin/monsupersite/pelicanconf.py
Pour le développement du site, il est possible d'activer des chemins relatifs dans ''pelicanconfig.py''
# Uncomment following line if you want document-relative URLs when developing
RELATIVE_URLS = True
La commande ''make html'' permet aussi d'exporter le site en HTML en utilisant ''pelicanconfig.py''.
''make publish'' va publier le site selon le fichier de conf ''make publish''
===== Les thèmes =====
Les thèmes Pelican utilisent [[https://jinja.palletsprojects.com/en/stable/templates/|le moteur de template Jinja]].
Les documentations utiles :
* [[https://docs.getpelican.com/en/4.10.1/themes.html|Pelican - Themes]]
* [[https://jinja.palletsprojects.com/en/stable/templates/|Jinja - Template Designer Documentation]]
On va éditer le fichier de conf du site pour lui indiquer où est le thème :
THEME = "../themes/monsupertheme"
L'aborescence d'un thème est la suivante (traduite de la doc de Plecian) :
├── static
│ ├── css
│ └── images
└── templates
├── archives.html // Archives
├── article.html // Traite les pages pour chaque article
├── author.html // Traite les pages pour chaque auteur
├── authors.html // Liste de tous les auteurs
├── categories.html // Liste de toutes les catégorie
├── category.html // Traite les pages pour chaque catégories
├── index.html // L'index qui liste tous les articles
├── page.html // Traite les pages pour chaque page
├── period_archives.html // Affiche les archives
├── tag.html // Traite les pages pour chaque tag
└── tags.html // Liste tous les tags. Peut être un nuage de tags.