Astuces pour Pelican
Quelques astuces liées à l'utilisation de Pelican
Ça au-dessus, c'est le titre dans le corps de texte.
Liens spécifiques à Pelican
Pour faire un lien vers une autre page, avant génération par Pelican, on peut utiliser le nom et le chemin des fichiers ainsi :
Ceci :
[Ici]({filename}/pages/astuces-pelican.md)
Donne cela :
Publication
Voir les astuces sur le site officiel
Génération
Après avoir ouvert un terminal dans le répertoire de travail,
en mode "classique" hors-ligne
pelican --autoreload --listen
Ă€ la place, on peut utiliser la commande suivante :
invoke livereload
Mais cela nécessite bien entendu l'installation de l'un puis l'autre.
Publication
Si tout est bien configuré, la simple commande suivante permet de générer puis publier (en ssh) le site directement :
invoke publish
Cela signifie que lors de la création initiale du dossier avec un pelican quick-start
, il faut demander la publication en ssh. Cela va créer des paramètres de configuration dans le fichier task.py
.
'ssh_user': 'XYZ_system',
'ssh_host': 'XYZ.ftp.infomaniak.com',
'ssh_port': '22',
'ssh_path': '/home/clients/df5ea29924d39c3be8785734f13169c6/sites/nom-site.tld',
Le site est publié sur Infomaniak. Les paramètres de connexion d'utilisateur et hôte se retrouve dans le manager. Information surprenante, ces informations sont identiques pour le ssh et le ftp.
Au début le chemin que j'avais indiqué n'était pas le bon ; j'avais juste mis /sites/nom-site.tld
. Finalement en me connectant (avec un terminal) ssh XYZ_system@XYZ.ftp.infomaniak.com
puis avec un pwd
j'ai pu avoir le début du chemin /home/clients/df5ea29924d39c3be8785734f13169c6
. La fin du chemin sites/[…]
.
Autres commandes
Puis on peut visualiser le site généré en local à l'adresse localhost:8000
Configuration
Dans le fichier pelicanconf.py
, penser à décommenter la ligne qui permet d'avoir des URLs relatives :
RELATIVE_URLS = True
Pour appliquer un thème particulier, ajouter la ligne suivante
THEME = "notmyidea"
Création de thèmes
J'ai fouillé un peu ; je n'ai pas trouvé ça très intuitif ; mais c'est souvent le cas avec ce moteur de site. Finalement cela se résume ainsi :
- Récupérer un thème, en particulier dans cette grande liste : https://github.com/getpelican/pelican-themes . Dans mon cas j'ai choisi Haerwu, parce qu'il a été mis à jour récemment et que je le trouvais bien sur le site de l'auteur.
- Créer un dossier
mes-themes
- puis un sous-dossier
haerwu
. - Dans ce dernier dossier y déployer ceux issus du thème :
static
ettemplates
. -
Dans le fichier de conf, ajouter cette ligne :
THEME = "./mes-themes/haerwu"
« Tadam! »
Renouveler les étapes 3 à 5 pour tester un autre thème.
Avec l'option pelican --autoreload --listen
, la génération du site avec le thème se fait à la volée ; il reste nécessaire de rafraîchir la page pour voir le résultat.
Ajustement sur le thème
J'ai dupliqué le thème pour l'appeler mon-haerwu
. Dans page.html
, en pied-de-page, j'ai ajouté la date de création avec le bloc suivant (il y avait déjà , et uniquement, la date de modification). C'était page.locale_date
que je cherchais.
<p>
Créé le {{ page.locale_date }}
{% if page.modified %}
— dernière mise-à -jour: {{ page.locale_modified }}
{% endif %}
</p>
Formatage d'une page lors de sa création
- Cela ne concerne pas des billets (au sens blog), mais des pages (donc statique).
- La page se trouve dans le sous-dossier
pages
. - Elle est globalement constituée comme un fichier markdown « classique ».
- Elle doit cependant contenir un entête complémentaire (voir ci-dessous).
En-tête complémentaire dans le corps de la page
Obligatoire :
title: Astuce
date: 2023-10-27
Facultatif
date: 2010-10-03 10:20
modified: 2010-10-04 18:40
tags: thats, awesome
category: yeah
slug: my-super-post
author: Anne Au-Nîmes
summary: Short version for index and feeds
Une page peut contenir l'en-tête suivant afin d'être la page par-défaut :
save_as: index.html
Aussi le statut peut-ĂŞtre utile pour masquer une page ponctuellement ; on retrouve donc, au choix parmi trois
status: draft
status: hidden
status: published
Syntaxe markdown par défaut
Présentation
- Les listes
- doivent
- avoir 4 espaces d'indentation
- pour créer une sous-liste.
- 2 espaces ne sont pas suffisants
- mais utiliser des Ă©toiles est acceptables aussi
On doit - mettre une ligne vide - entre paragraphe et liste
Les citations
multi-niveaux marchent
— en « s'ouvrant », mais pas en se fermant
sauf si on met un chevron avec un ligne vide1
Italique toujours, gras un jour. Et dans le texte sans un_dersco_re par contre.
Le ~~barré~~ ne fonctionne pas,
ni le ==surlignage==.
Avec 2 espaces en fin de ligne, puis un saut de ligne,
on reste dans le mĂŞme paragraphe.
un | deux |
---|---|
youpi | ça |
marche | !!! |
Les blocs de code
c'est OK
avec des `triple-quotes` aussi
Enfin, le site original Daring Fireball indique cette syntaxe :
This is an example reference-style link.
Cela permet de ne pas trop surcharger le paragraphe de rédaction.
Ionos indique cela
Dans le texte ordinaire 2 vous pouvez facilement placer des notes de bas de page 3
Sources
- Les listes
- doivent
- avoir 4 espaces d'indentation
- pour créer une sous-liste.
- 2 espaces ne sont pas suffisants
* mais utiliser des Ă©toiles est acceptables aussi
On doit
- mettre une ligne vide
- entre paragraphe et liste
> Les citations
>> multi-niveaux marchent
>>> — en « s'ouvrant »,
> mais pas en se fermant
>
> sauf si on met un chevron avec un ligne vide[^A1]
[^A1]: Astuce trouvée ici : https://www.markdownguide.org/basic-syntax/
*Italique* _toujours_, __gras__ **un jour**. Et d**an**s le texte sans un_dersco_re par contre.
Le ~~barré~~ ne fonctionne pas,
ni le ==surlignage==.
Avec 2 espaces en fin de ligne, puis un saut de ligne,
on reste dans le mĂŞme paragraphe.
| un | deux |
| ------ | ---- |
| youpi | ça |
| marche | !!! |
Les blocs de code
c'est OK
```
avec des `triple-quotes` aussi
```
Enfin, le [site original Daring Fireball](https://daringfireball.net/projects/markdown/syntax) indique cette syntaxe :
This is [an example][id] reference-style link.
Cela permet de ne pas trop surcharger le paragraphe de rédaction.
[id]: http://example.com/ "Optional Title Here"
[Ionos](https://www.ionos.fr/digitalguide/sites-internet/developpement-web/markdown/) indique cela
Dans le texte ordinaire [^1] vous pouvez facilement placer des notes de bas de page [^2]
[^1]: Vous trouverez ici le texte de la note de bas de page.
[^2]: **Note de page de page** peut aussi être *formatée*.
Et celles-ci comprennent mĂŞme plusieurs lignes
Autres ressources
Outre la documentation officielle (qu'il est possible de télécharger en pdf à partir de ReadTheDocs), voici quelques autres ressources :
- chez Bortzmeyer
- Zeste de Savoir
- https://connect.ed-diamond.com/GNU-Linux-Magazine/glmf-184/utiliser-pelican-comme-moteur-de-blog
Dernière mise-à -jour : 2023-12-23