<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom"><title>docs.pelican.bernatchez.net</title><link href="https://docs.pelican.bernatchez.net/lang-version.fr/" rel="alternate"/><link href="https://docs.pelican.bernatchez.net/lang-version.fr/feeds/fr.atom.xml" rel="self"/><id>https://docs.pelican.bernatchez.net/lang-version.fr/</id><updated>2026-05-09T12:59:29+00:00</updated><entry><title>Configurer un nouveau site Bunny</title><link href="https://docs.pelican.bernatchez.net/lang-version.fr/newbunny-fr.html" rel="alternate"/><published>2026-05-09T12:59:29+00:00</published><updated>2026-05-09T12:59:29+00:00</updated><author><name>Pierre Bernatchez</name></author><id>tag:docs.pelican.bernatchez.net,2026-05-09:/lang-version.fr/newbunny-fr.html</id><summary type="html">&lt;p class="first last"&gt;Configurer un nouveau site dans le service bunny.net&lt;/p&gt;
</summary><content type="html">&lt;p&gt;Exemple d'étapes pour configurer votre compte bunny.net afin
d'accueillir un nouveau site.&lt;/p&gt;
&lt;p&gt;Dans cet exemple, notre nouveau site s'appelle : &lt;strong&gt;dummy.example.net&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Modifiez les noms selon le nom de votre site.&lt;/p&gt;
&lt;ol class="arabic simple"&gt;
&lt;li&gt;Connectez-vous à votre compte bunny.net à l'adresse : &lt;a class="reference external" href="https://dash.bunny.net/"&gt;https://dash.bunny.net/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Créez une zone de stockage standard nommée : &lt;strong&gt;dummy-example-net&lt;/strong&gt; &lt;a class="footnote-reference" href="#imagename1" id="footnote-reference-1"&gt;[1]&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="line-block"&gt;
&lt;div class="line"&gt;&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;img alt="Le résultat" class="img-responsive" src="../images/addstorage1.png" /&gt;
&lt;div class="line-block"&gt;
&lt;div class="line"&gt;&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;img alt="Le résultat" class="img-responsive" src="../images/addstorage2.png" /&gt;
&lt;table class="docutils footnote" frame="void" id="imagename1" rules="none"&gt;
&lt;colgroup&gt;&lt;col class="label" /&gt;&lt;col /&gt;&lt;/colgroup&gt;
&lt;tbody valign="top"&gt;
&lt;tr&gt;&lt;td class="label"&gt;&lt;a class="fn-backref" href="#footnote-reference-1"&gt;[1]&lt;/a&gt;&lt;/td&gt;&lt;td&gt;L'image montre « docs-pelican-bernatchez-net », devrait afficher « dummy-example-net »&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;div class="line-block"&gt;
&lt;div class="line"&gt;&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;ol class="arabic simple"&gt;
&lt;li&gt;Créez une zone de tirage nommée : &lt;strong&gt;dummy-example-net-zone&lt;/strong&gt; &lt;a class="footnote-reference" href="#imagename2" id="footnote-reference-2"&gt;[2]&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="line-block"&gt;
&lt;div class="line"&gt;&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;img alt="Le résultat" class="img-responsive" src="../images/addpullzone1.png" /&gt;
&lt;div class="line-block"&gt;
&lt;div class="line"&gt;&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;img alt="Le résultat" class="img-responsive" src="../images/addpullzone2.png" /&gt;
&lt;table class="docutils footnote" frame="void" id="imagename2" rules="none"&gt;
&lt;colgroup&gt;&lt;col class="label" /&gt;&lt;col /&gt;&lt;/colgroup&gt;
&lt;tbody valign="top"&gt;
&lt;tr&gt;&lt;td class="label"&gt;&lt;a class="fn-backref" href="#footnote-reference-2"&gt;[2]&lt;/a&gt;&lt;/td&gt;&lt;td&gt;Affiche « docs-pelican-bernatchez-net-zone », devrait afficher « dummy-example-net-zone »&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;div class="line-block"&gt;
&lt;div class="line"&gt;&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;ol class="arabic simple"&gt;
&lt;li&gt;Connectez-vous à votre compte de service DNS.&lt;/li&gt;
&lt;li&gt;Sur votre serveur DNS, créez un enregistrement : &lt;strong&gt;dummy.example.net CNAME dummy-example-net-zone.b-cdn.net&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;De retour sur bunny.net, ajoutez un nom d'hôte personnalisé &lt;strong&gt;dummy.example.net&lt;/strong&gt; à la zone de tirage &lt;a class="footnote-reference" href="#addcustom" id="footnote-reference-3"&gt;[3]&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="line-block"&gt;
&lt;div class="line"&gt;&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;img alt="Le résultat" class="img-responsive" src="../images/add-custom-hostname.png" /&gt;
&lt;table class="docutils footnote" frame="void" id="addcustom" rules="none"&gt;
&lt;colgroup&gt;&lt;col class="label" /&gt;&lt;col /&gt;&lt;/colgroup&gt;
&lt;tbody valign="top"&gt;
&lt;tr&gt;&lt;td class="label"&gt;&lt;a class="fn-backref" href="#footnote-reference-3"&gt;[3]&lt;/a&gt;&lt;/td&gt;&lt;td&gt;Affiche « docs.pelican.bernatchez.net », devrait afficher « dummy.example.net »&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;div class="line-block"&gt;
&lt;div class="line"&gt;&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;Lors de cet ajout, profitez-en pour confirmer que le certificat fonctionne correctement&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Votre site est maintenant prêt à être servi.
Vous pouvez y publier du contenu.&lt;/p&gt;
</content><category term="pelican"/><category term="pelican"/><category term="git"/></entry><entry><title>Tout faire tenir sur une page</title><link href="https://docs.pelican.bernatchez.net/lang-version.fr/pagefit-fr.html" rel="alternate"/><published>2026-04-26T01:36:19+00:00</published><updated>2026-04-26T01:36:19+00:00</updated><author><name>Pierre Bernatchez</name></author><id>tag:docs.pelican.bernatchez.net,2026-04-26:/lang-version.fr/pagefit-fr.html</id><summary type="html">&lt;p class="first last"&gt;Faire tenir toute la recette sur une page&lt;/p&gt;
</summary><content type="html">&lt;img alt="Le résultat" class="img-responsive" src="../images/pagefit.jpg" /&gt;
&lt;div class="line-block"&gt;
&lt;div class="line"&gt;&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Mes recettes se composent d'une image et des instructions pour la préparer
en dessous. Pour l'impression en format « .pdf », j'essaie de tout faire
tenir sur une seule page. Cela signifie que je dois garder l'image petite.&lt;/p&gt;
&lt;p&gt;En pratique, je prends une photo avec mon téléphone portable. Ensuite,
je l'ouvre avec la visionneuse Shotwell et je recadre la partie qui
m'intéresse.&lt;/p&gt;
&lt;p&gt;Ensuite, quelle que soit l'image obtenue, je la réduis à environ 1000 pixels de large.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;commande de réduction&lt;/em&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;convert&lt;span class="w"&gt; &lt;/span&gt;original.jpg&lt;span class="w"&gt; &lt;/span&gt;-resize&lt;span class="w"&gt; &lt;/span&gt;1000x&lt;span class="w"&gt; &lt;/span&gt;pagefit.jpg
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;em&gt;extrait qui inclut l'image dans la source RST&lt;/em&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;|

&lt;span class="p"&gt;..&lt;/span&gt; &lt;span class="ow"&gt;image&lt;/span&gt;&lt;span class="p"&gt;::&lt;/span&gt; ../images/pagefit.jpg
    &lt;span class="nc"&gt;:class:&lt;/span&gt; img-responsive
    &lt;span class="nc"&gt;:scale:&lt;/span&gt; 30%
    &lt;span class="nc"&gt;:alt:&lt;/span&gt; Le résultat
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;J'ai inclus une telle image ci-dessus à titre d'illustration.&lt;/p&gt;
</content><category term="pelican"/><category term="pelican"/><category term="git"/><category term="image"/></entry><entry><title>Création d'un site .rst</title><link href="https://docs.pelican.bernatchez.net/lang-version.fr/newsite-fr.html" rel="alternate"/><published>2026-04-16T01:47:25+00:00</published><updated>2026-04-16T01:47:25+00:00</updated><author><name>Pierre Bernatchez</name></author><id>tag:docs.pelican.bernatchez.net,2026-04-16:/lang-version.fr/newsite-fr.html</id><summary type="html">&lt;p class="first last"&gt;Création de site .rst dans un projet git&lt;/p&gt;
</summary><content type="html">&lt;p&gt;Nous parcourons le processus de création d'un nouveau sous-répertoire de site dans notre
dépôt git afin de documenter les étapes de démarrage d'un nouveau site.&lt;/p&gt;
&lt;p&gt;Ceci ne couvre pas la création réelle de l'infrastructure d'hébergement
dans bunny.net. Nous ne passons donc par aucune étape relative à
la publication dans cet exemple.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;mypelican_static_sites&lt;/strong&gt; est le projet de dépôt git où nous le configurons.&lt;/p&gt;
&lt;p&gt;Nous créons un nouveau site appelé : &lt;strong&gt;dummy.bernatchez.net&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Créer le nouveau répertoire du site et le peupler&lt;/strong&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="c1"&gt;# créer&lt;/span&gt;
&lt;span class="nb"&gt;cd&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;HOME&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;/repos/mypelican_static_sites
mkdir&lt;span class="w"&gt; &lt;/span&gt;dummy.bernatchez.net

&lt;span class="c1"&gt;# peupler&lt;/span&gt;
cp&lt;span class="w"&gt; &lt;/span&gt;-r&lt;span class="w"&gt; &lt;/span&gt;-P&lt;span class="w"&gt; &lt;/span&gt;init.files/*&lt;span class="w"&gt; &lt;/span&gt;dummy.bernatchez.net/
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;Ajouter ces nouveaux fichiers propres au site au contrôle de révision git&lt;/strong&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="nb"&gt;cd&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;HOME&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;/repos/mypelican_static_sites/dummy.bernatchez.net
&lt;span class="c1"&gt;# les ajouts git sont à déterminer&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;Référencer les articles pelican/ préexistants dans notre site factice&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Il suffit que le répertoire existe sous content/ pour cela.
Le Makefile se charge de peupler le sous-répertoire.&lt;/p&gt;
&lt;p&gt;Nous allons ajouter un fichier placeholder.txt dans ce répertoire afin que
git clone crée le sous-répertoire à l'avenir.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="nb"&gt;cd&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;HOME&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;/repos/mypelican_static_sites/dummy.bernatchez.net
mkdir&lt;span class="w"&gt; &lt;/span&gt;content/pelican

&lt;span class="c1"&gt;# ceci assure que le répertoire pelican/ sera créé lors des futurs git clone&lt;/span&gt;
cp&lt;span class="w"&gt; &lt;/span&gt;content/pages/placeholder.txt&lt;span class="w"&gt; &lt;/span&gt;content/pelican/placeholder.txt
git&lt;span class="w"&gt; &lt;/span&gt;add&lt;span class="w"&gt; &lt;/span&gt;content/pelican/placeholder.txt
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;Ajouter les lignes suivantes à la fin de « .gitignore »&lt;/strong&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="nb"&gt;cd&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;HOME&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;/repos/mypelican_static_sites

cat&lt;span class="w"&gt; &lt;/span&gt;&amp;gt;&amp;gt;.gitignore&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;&amp;lt;&amp;lt;EOFGITIGNORE&lt;/span&gt;
&lt;span class="s"&gt;##&lt;/span&gt;
&lt;span class="s"&gt;## BEGIN added for a new site&lt;/span&gt;
&lt;span class="s"&gt;##&lt;/span&gt;

&lt;span class="s"&gt;# dummy.bernatchez.net softlinks&lt;/span&gt;

&lt;span class="s"&gt;dummy.bernatchez.net/content/favicon.ico&lt;/span&gt;
&lt;span class="s"&gt;dummy.bernatchez.net/content/images/&lt;/span&gt;
&lt;span class="s"&gt;dummy.bernatchez.net/content/site-only/&lt;/span&gt;
&lt;span class="s"&gt;dummy.bernatchez.net/content/pages/&lt;/span&gt;
&lt;span class="s"&gt;dummy.bernatchez.net/content/pelican/&lt;/span&gt;

&lt;span class="s"&gt;dummy.bernatchez.net/content/images/*&lt;/span&gt;
&lt;span class="s"&gt;dummy.bernatchez.net/content/site-only/*&lt;/span&gt;
&lt;span class="s"&gt;dummy.bernatchez.net/content/pages/*&lt;/span&gt;
&lt;span class="s"&gt;dummy.bernatchez.net/content/pelican/*&lt;/span&gt;


&lt;span class="s"&gt;# dummy.bernatchez.net bucket is all generated&lt;/span&gt;
&lt;span class="s"&gt;dummy.bernatchez.net/bucket/&lt;/span&gt;
&lt;span class="s"&gt;dummy.bernatchez.net/bucket/*&lt;/span&gt;

&lt;span class="s"&gt;##&lt;/span&gt;
&lt;span class="s"&gt;## END additions for a new site&lt;/span&gt;
&lt;span class="s"&gt;##&lt;/span&gt;
&lt;span class="s"&gt;EOFGITIGNORE&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="nb"&gt;cd&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;HOME&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;/repos/mypelican_static_sites
git&lt;span class="w"&gt; &lt;/span&gt;add&lt;span class="w"&gt; &lt;/span&gt;.gitignore
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;Placer les fichiers personnalisables sous contrôle de version&lt;/strong&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="nb"&gt;cd&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;HOME&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;/repos/mypelican_static_sites/dummy.bernatchez.net

git&lt;span class="w"&gt; &lt;/span&gt;add&lt;span class="w"&gt; &lt;/span&gt;Makefile
git&lt;span class="w"&gt; &lt;/span&gt;add&lt;span class="w"&gt; &lt;/span&gt;deploy.bunny
git&lt;span class="w"&gt; &lt;/span&gt;add&lt;span class="w"&gt; &lt;/span&gt;favicon.ico
git&lt;span class="w"&gt; &lt;/span&gt;add&lt;span class="w"&gt; &lt;/span&gt;login.bunny
git&lt;span class="w"&gt; &lt;/span&gt;add&lt;span class="w"&gt; &lt;/span&gt;names.bunny
git&lt;span class="w"&gt; &lt;/span&gt;add&lt;span class="w"&gt; &lt;/span&gt;notes.txt
git&lt;span class="w"&gt; &lt;/span&gt;add&lt;span class="w"&gt; &lt;/span&gt;pelicanconf-en.py
git&lt;span class="w"&gt; &lt;/span&gt;add&lt;span class="w"&gt; &lt;/span&gt;pelicanconf-es.py
git&lt;span class="w"&gt; &lt;/span&gt;add&lt;span class="w"&gt; &lt;/span&gt;pelicanconf-fr.py
git&lt;span class="w"&gt; &lt;/span&gt;add&lt;span class="w"&gt; &lt;/span&gt;publishconf-en.py
git&lt;span class="w"&gt; &lt;/span&gt;add&lt;span class="w"&gt; &lt;/span&gt;publishconf-es.py
git&lt;span class="w"&gt; &lt;/span&gt;add&lt;span class="w"&gt; &lt;/span&gt;publishconf-fr.py
git&lt;span class="w"&gt; &lt;/span&gt;add&lt;span class="w"&gt; &lt;/span&gt;purge.bunny
git&lt;span class="w"&gt; &lt;/span&gt;add&lt;span class="w"&gt; &lt;/span&gt;puta2p.sh

&lt;span class="nb"&gt;cd&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;HOME&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;/repos/mypelican_static_sites/dummy.bernatchez.net/pages
git&lt;span class="w"&gt; &lt;/span&gt;add&lt;span class="w"&gt; &lt;/span&gt;*.rst

&lt;span class="nb"&gt;cd&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;HOME&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;/repos/mypelican_static_sites/dummy.bernatchez.net/content
git&lt;span class="w"&gt; &lt;/span&gt;add&lt;span class="w"&gt; &lt;/span&gt;binaries&lt;span class="w"&gt; &lt;/span&gt;images&lt;span class="w"&gt; &lt;/span&gt;sitepdfs

&lt;span class="nb"&gt;cd&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;HOME&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;/repos/mypelican_static_sites/dummy.bernatchez.net/pages-media
git&lt;span class="w"&gt; &lt;/span&gt;add&lt;span class="w"&gt; &lt;/span&gt;*
&lt;span class="nb"&gt;cd&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;HOME&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;/repos/mypelican_static_sites/dummy.bernatchez.net/pages-pdfs
git&lt;span class="w"&gt; &lt;/span&gt;add&lt;span class="w"&gt; &lt;/span&gt;placeholder.txt
&lt;span class="nb"&gt;cd&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;HOME&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;/repos/mypelican_static_sites/dummy.bernatchez.net/site-only-pdfs
git&lt;span class="w"&gt; &lt;/span&gt;add&lt;span class="w"&gt; &lt;/span&gt;placeholder.txt
&lt;span class="nb"&gt;cd&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;HOME&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;/repos/mypelican_static_sites/dummy.bernatchez.net/site-only
git&lt;span class="w"&gt; &lt;/span&gt;add&lt;span class="w"&gt; &lt;/span&gt;*.rst
&lt;/pre&gt;&lt;/div&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="c1"&gt;# Valider vos ajouts git&lt;/span&gt;

&lt;span class="nb"&gt;cd&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;HOME&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;/repos/mypelican_static_sites/dummy.bernatchez.net/
git&lt;span class="w"&gt; &lt;/span&gt;commit&lt;span class="w"&gt; &lt;/span&gt;-m&lt;span class="w"&gt; &lt;/span&gt;new-dummy-site
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;Générer cette première révision du site&lt;/strong&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="nb"&gt;cd&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;HOME&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;/repos/mypelican_static_sites/dummy.bernatchez.net/
make&lt;span class="w"&gt; &lt;/span&gt;html

&lt;span class="c1"&gt;# réviser et continuer la maintenance selon les besoins&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
</content><category term="pelican"/><category term="pelican"/><category term="git"/></entry><entry><title>Message de bienvenue</title><link href="https://docs.pelican.bernatchez.net/lang-version.fr/sitehome-fr.html" rel="alternate"/><published>2026-03-22T00:38:24+00:00</published><updated>2026-03-22T00:38:24+00:00</updated><author><name>Pierre Bernatchez</name></author><id>tag:docs.pelican.bernatchez.net,2026-03-22:/lang-version.fr/sitehome-fr.html</id><summary type="html">&lt;p class="first last"&gt;Bienvenue sur le site&lt;/p&gt;
</summary><content type="html">&lt;p&gt;&lt;strong&gt;Bienvenue sur ce site.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Ce site a pour but de fournir, avec de la documentation, un soutien à
toute personne assurant la maintenance du code source des sites web
générés par Pelican contenus dans notre dépôt git. Ce site est destiné
à ne pas être publié et à être consulté uniquement depuis le système
de fichiers local.&lt;/p&gt;
</content><category term="introduction"/><category term="Message de bienvenue"/></entry><entry><title>Contacts</title><link href="https://docs.pelican.bernatchez.net/lang-version.fr/contacts-fr.html" rel="alternate"/><published>2026-03-22T00:34:39+00:00</published><updated>2026-03-22T00:34:39+00:00</updated><author><name>Pierre Bernatchez</name></author><id>tag:docs.pelican.bernatchez.net,2026-03-22:/lang-version.fr/contacts-fr.html</id><summary type="html">&lt;p class="first last"&gt;Contacts&lt;/p&gt;
</summary><content type="html">&lt;p&gt;Veuillez adresser toutes vos questions à l'administrateur actuel du site.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Administrateur Actuel Du Site&lt;/em&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;pierre@bernatchez.net
&lt;/pre&gt;&lt;/div&gt;
</content><category term="Site web"/><category term="personnes"/><category term="administrateurs"/><category term="parties intéressées"/></entry><entry><title>À propos</title><link href="https://docs.pelican.bernatchez.net/lang-version.fr/siteabout-fr.html" rel="alternate"/><published>2026-03-22T00:29:07+00:00</published><updated>2026-03-22T00:29:07+00:00</updated><author><name>Pierre Bernatchez</name></author><id>tag:docs.pelican.bernatchez.net,2026-03-22:/lang-version.fr/siteabout-fr.html</id><summary type="html">&lt;p class="first last"&gt;Justification du site&lt;/p&gt;
</summary><content type="html">&lt;p&gt;&lt;strong&gt;Version du site&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;2026-05-10T00:29:55+00:00&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Description&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Ce site est organisé comme un blog. Les articles les plus récents
apparaissent sur la page d'accueil.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Structure&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Il y a quatre méthodes pour trouver des articles.&lt;/p&gt;
&lt;ol class="arabic simple"&gt;
&lt;li&gt;La page d'accueil répertorie les articles les plus récents par ordre chronologique.&lt;/li&gt;
&lt;li&gt;Les catégories regroupent les articles par catégorie.&lt;/li&gt;
&lt;li&gt;Les mots-clés regroupent les articles par mot-clé.&lt;/li&gt;
&lt;li&gt;Les archives présentent un tableau de tous les articles par ordre chronologique.&lt;/li&gt;
&lt;/ol&gt;
</content><category term="pages"/><category term="à propos"/></entry><entry><title>Comment créer des correctifs de fichiers (patch)</title><link href="https://docs.pelican.bernatchez.net/lang-version.fr/patchhowto-fr.html" rel="alternate"/><published>2025-05-24T18:23:52+00:00</published><updated>2025-05-24T18:23:52+00:00</updated><author><name>Pierre Bernatchez</name></author><id>tag:docs.pelican.bernatchez.net,2025-05-24:/lang-version.fr/patchhowto-fr.html</id><summary type="html">&lt;p class="first last"&gt;Comment créer des correctifs de fichiers (patch)&lt;/p&gt;
</summary><content type="html">&lt;div class="section" id="un-seul-fichier"&gt;
&lt;h2&gt;Un seul Fichier&lt;/h2&gt;
&lt;p&gt;Voici comment créer un fichier correctif que vous appliquerez ensuite
sur un système cible pour modifier l'un de ses fichiers.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Obtenir la copie originale&lt;/strong&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;cp&lt;span class="w"&gt; &lt;/span&gt;/pathtofile/myfile.conf&lt;span class="w"&gt; &lt;/span&gt;/pathtofile/myfile.conf.orig
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;Modifier le fichier manuellement&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;À l’aide de n’importe quel éditeur, apportez manuellement les
modifications souhaitées au fichier /pathtofile/myfile.conf.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Capturez la différence dans un patch&lt;/strong&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;diff&lt;span class="w"&gt; &lt;/span&gt;-u&lt;span class="w"&gt; &lt;/span&gt;/pathtofile/myfile.conf.orig&lt;span class="w"&gt; &lt;/span&gt;/pathtofile/myfile.conf&lt;span class="w"&gt; &lt;/span&gt;&amp;gt;myfile.patch
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;Essayez le patch&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Annulez les modifications manuelles que vous avez apportées.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;patch&lt;span class="w"&gt; &lt;/span&gt;-R&lt;span class="w"&gt; &lt;/span&gt;-p0&lt;span class="w"&gt; &lt;/span&gt;&amp;lt;myfile.patch
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Refaites vos modifications.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;patch&lt;span class="w"&gt; &lt;/span&gt;-p0&lt;span class="w"&gt; &lt;/span&gt;&amp;lt;myfile.patch
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="section" id="repertoire-recursif"&gt;
&lt;h2&gt;Répertoire récursif&lt;/h2&gt;
&lt;p&gt;Dans cet exemple, nous regroupons toutes les modifications apportées à
une arborescence de thèmes Pelican dans un seul fichier correctif.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Dupliquer&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Nous commençons par dupliquer l’arbre complet.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;cp&lt;span class="w"&gt; &lt;/span&gt;-r&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;HOME&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;/pelican-themes&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;HOME&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;/pelican-themes.orig
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;CONSEIL&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;J'ai tendance à conserver ma copie originale et à la réutiliser
fréquemment lorsque je modifie des éléments. Pour éviter de modifier
par inadvertance quelque chose dans la version originale et de
compromettre ainsi toutes les modifications ultérieures, j'aime
protéger les fichiers .orig.&lt;/p&gt;
&lt;p&gt;Ce n'est pas indispensable, mais cela m'a bien servi.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;chmod&lt;span class="w"&gt; &lt;/span&gt;-w&lt;span class="w"&gt; &lt;/span&gt;--recursive&lt;span class="w"&gt; &lt;/span&gt;pelican-themes.orig/
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;Créer un fichier de correctif&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Nous effectuons maintenant toutes les modifications souhaitées dans le
répertoire pelican-themes. Une fois cela fait, nous créons le fichier
patch intégrant toutes les modifications.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="nb"&gt;cd&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;HOME&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;/pelican-themes
diff&lt;span class="w"&gt; &lt;/span&gt;-Naru&lt;span class="w"&gt; &lt;/span&gt;../pelican-themes.orig&lt;span class="w"&gt; &lt;/span&gt;.&lt;span class="w"&gt; &lt;/span&gt;&amp;gt;&lt;span class="w"&gt; &lt;/span&gt;../pelican-themes.patch
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Note:&lt;/p&gt;
&lt;blockquote&gt;
&lt;div class="line-block"&gt;
&lt;div class="line"&gt;-N --new-fil traiter les fichiers absents comme vides&lt;/div&gt;
&lt;div class="line"&gt;-a --text traiter tous les fichiers comme du texte&lt;/div&gt;
&lt;div class="line"&gt;-r --recursive comparer récursivement les sous-répertoires&lt;/div&gt;
&lt;div class="line"&gt;-u -U --unified[=NUM] Émettre NUM lignes de contexte unifié (par défaut 3)&lt;/div&gt;
&lt;/div&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;strong&gt;Annuler les modifications&lt;/strong&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="nb"&gt;cd&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;HOME&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;/pelican-themes
patch&lt;span class="w"&gt; &lt;/span&gt;-Rs&lt;span class="w"&gt; &lt;/span&gt;-p0&lt;span class="w"&gt; &lt;/span&gt;&amp;lt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;HOME&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;/pelican-themes.patch
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Note:&lt;/p&gt;
&lt;blockquote&gt;
&lt;div class="line-block"&gt;
&lt;div class="line"&gt;N'oubliez pas que les répertoires créés par patch doivent être supprimés manuellement.&lt;/div&gt;
&lt;div class="line"&gt;-R  --reverse Supposons que le patch a été créé avec les anciens et les nouveaux fichiers échangés&lt;/div&gt;
&lt;div class="line"&gt;-s  --silent  Silencieusement&lt;/div&gt;
&lt;div class="line"&gt;-pN Supprimez le plus petit préfixe de fichier contenant N barres obliques. 0 signifie préfixe complet.&lt;/div&gt;
&lt;/div&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;strong&gt;Appliquer les modifications du correctif&lt;/strong&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="nb"&gt;cd&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;HOME&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;/pelican-themes
patch&lt;span class="w"&gt; &lt;/span&gt;-s&lt;span class="w"&gt; &lt;/span&gt;-p0&lt;span class="w"&gt; &lt;/span&gt;&amp;lt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;HOME&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;/pelican-themes.patch
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
</content><category term="modification"/><category term="patch"/><category term="mise à jour"/><category term="révision"/><category term="modification"/><category term="correction"/><category term="différence"/><category term="comment faire"/></entry><entry><title>Configurer un index de package privé de projet</title><link href="https://docs.pelican.bernatchez.net/lang-version.fr/personal-pypi-fr.html" rel="alternate"/><published>2025-05-24T18:23:52+00:00</published><updated>2025-05-24T18:23:52+00:00</updated><author><name>Pierre Bernatchez</name></author><id>tag:docs.pelican.bernatchez.net,2025-05-24:/lang-version.fr/personal-pypi-fr.html</id><summary type="html">&lt;p class="first last"&gt;Configuration de l'index de package Primate DevPI pour nos packages.&lt;/p&gt;
</summary><content type="html">&lt;p&gt;&lt;strong&gt;Aperçu&lt;/strong&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Ce document décrit la configuration d'un index de package privé comme un moyen plus pratique de distribuer des packages Python.&lt;/p&gt;
&lt;p&gt;La nécessité d'utiliser quelque chose comme celle-ci se développe à mesure que nous ajoutons des mainteneurs et des packages à maintenir.&lt;/p&gt;
&lt;p&gt;Nos packages Python doivent être compatisés avec l'index de package Python standard PYPI.&lt;/p&gt;
&lt;p&gt;Nous utilisons un index de packages privé jusqu'à ce que nous soyons prêts à mettre un colis à la disposition du grand public,
Ensuite, nous passons à PYPI.&lt;/p&gt;
&lt;p&gt;Cet outil que nous utilisons maintient nos packages compatibles avec PYPI lorsque nous le mettons à la disposition là-bas.&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="https://devpi.net/docs/devpi/devpi/stable/+doc/quickstart-releaseprocess.html"&gt;devpi&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Il s'agit d'un système d'index de package conforme.&lt;/p&gt;
&lt;p&gt;Nous l'utiliserons pour servir notre index de package privé.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;div class="section" id="configuration-du-sw-pour-devpi"&gt;
&lt;h2&gt;Configuration du SW pour DevPI&lt;/h2&gt;
&lt;p&gt;Ce howto est dérivé du tutoriel suivant:&lt;/p&gt;
&lt;p&gt;&amp;lt;&lt;a class="reference external" href="https://devpi.net/docs/devpi/devpi/stable/+doc/quickstart-releaseprocess.html"&gt;https://devpi.net/docs/devpi/devpi/stable/+doc/quickstart-releaseprocess.html&lt;/a&gt;&amp;gt; _&lt;/p&gt;
&lt;p&gt;Nous travaillons avec Python3.
Nous voulons configurer un environnement virtuel conforme à nos hypothèses, puis installer à l'intérieur.
Nous appelons l'environnement devpi_venv.
Nous créons d'abord un répertoire pour notre configuration.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;mkdir&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;HOME&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;/devpi_setup
&lt;span class="nb"&gt;cd&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;HOME&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;/devpi_setup
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Nous installons les éléments essentiels nus.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;python3&lt;span class="w"&gt; &lt;/span&gt;-m&lt;span class="w"&gt; &lt;/span&gt;venv&lt;span class="w"&gt; &lt;/span&gt;devpi_venv
&lt;span class="nb"&gt;source&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;devpi_venv/bin/activate
python&lt;span class="w"&gt; &lt;/span&gt;-m&lt;span class="w"&gt; &lt;/span&gt;pip&lt;span class="w"&gt; &lt;/span&gt;install&lt;span class="w"&gt; &lt;/span&gt;-U&lt;span class="w"&gt; &lt;/span&gt;pip
pip&lt;span class="w"&gt; &lt;/span&gt;install&lt;span class="w"&gt; &lt;/span&gt;wheel
pip&lt;span class="w"&gt; &lt;/span&gt;install&lt;span class="w"&gt; &lt;/span&gt;setuptools
pip&lt;span class="w"&gt; &lt;/span&gt;install&lt;span class="w"&gt; &lt;/span&gt;twine
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;em&gt;RESTVIEW&lt;/em&gt; est une visionneuse de format de texte restructuré que je trouve utile.(facultatif)&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;pip&lt;span class="w"&gt; &lt;/span&gt;install&lt;span class="w"&gt; &lt;/span&gt;restview
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Vous l'invoquez et il continue de réintégrer votre fichier lorsque vous le modifiez.&lt;/p&gt;
&lt;p&gt;Comme ça:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;restview&lt;span class="w"&gt; &lt;/span&gt;README.rst
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;em&gt;rst2pdf&lt;/em&gt; est pratique pour générer des copies PDF de documants.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;pip&lt;span class="w"&gt; &lt;/span&gt;install&lt;span class="w"&gt; &lt;/span&gt;rst2pdf
rst2pdf&lt;span class="w"&gt; &lt;/span&gt;doc/privatepypi.rst&lt;span class="w"&gt; &lt;/span&gt;-o&lt;span class="w"&gt; &lt;/span&gt;reformatted_docs/privatepypi.pdf
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="section" id="configurez-le-serveur-devpi-sur-notre-ordinateur-portable"&gt;
&lt;h2&gt;Configurez le serveur DevPI sur notre ordinateur portable&lt;/h2&gt;
&lt;p&gt;Installez le client et le serveur Web DevPI
Le serveur non Web - DevPI-Server - est installé en conséquence.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;pip&lt;span class="w"&gt; &lt;/span&gt;install&lt;span class="w"&gt; &lt;/span&gt;-U&lt;span class="w"&gt; &lt;/span&gt;devpi-web&lt;span class="w"&gt; &lt;/span&gt;devpi-client
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Initialiser un index vide (AT / var / devpi-serveur par défaut)
Remarque J'ai eu un problème d'autorisation avec celui init.
Alors d'abord je fais manuellement ceci:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;sudo&lt;span class="w"&gt; &lt;/span&gt;mkdir&lt;span class="w"&gt;  &lt;/span&gt;/var/devpi-server
sudo&lt;span class="w"&gt; &lt;/span&gt;chown&lt;span class="w"&gt; &lt;/span&gt;ubuntu:ubuntu&lt;span class="w"&gt; &lt;/span&gt;/var/devpi-server
&lt;/pre&gt;&lt;/div&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;devpi-init
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Nous voulons un fichier de configuration pour le démon de superviseur à utiliser.
Cela générera un tas de fichiers de configuration sous le courant
Répertoire, celui que nous voulons inclus.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="nb"&gt;cd&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;HOME&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;/devpi_setup
devpi-gen-config
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Cela nous donne le fichier gen-config / supervisor-devpi.conf
pour copier sur / etc / superviseur / conf pour que nous puissions commencer
augmentez le serveur.J'ai commencé par le modifier pour dire
start = false pour qu'il devrait être démarré
Up manuellement.Ensuite, je l'ai copié au bon endroit pour cela.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;sudo&lt;span class="w"&gt; &lt;/span&gt;cp&lt;span class="w"&gt; &lt;/span&gt;gen-config/supervisor-devpi.conf&lt;span class="w"&gt; &lt;/span&gt;/etc/supervisor/conf.d/devpi-server.conf
sudo&lt;span class="w"&gt; &lt;/span&gt;supervisorctl&lt;span class="w"&gt; &lt;/span&gt;update
sudo&lt;span class="w"&gt; &lt;/span&gt;supervisorctl&lt;span class="w"&gt; &lt;/span&gt;start&lt;span class="w"&gt; &lt;/span&gt;devpi-server
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Créez un utilisateur, connectez-vous comme lui et créez l'index 'dev'&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;devpi&lt;span class="w"&gt; &lt;/span&gt;user&lt;span class="w"&gt; &lt;/span&gt;-c&lt;span class="w"&gt; &lt;/span&gt;pbernatchez&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;password&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;foobar
devpi&lt;span class="w"&gt; &lt;/span&gt;login&lt;span class="w"&gt; &lt;/span&gt;pbernatchez&lt;span class="w"&gt; &lt;/span&gt;--password&lt;span class="o"&gt;=&lt;/span&gt;foobar
devpi&lt;span class="w"&gt; &lt;/span&gt;index&lt;span class="w"&gt; &lt;/span&gt;-c&lt;span class="w"&gt; &lt;/span&gt;dev&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;bases&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;root/pypi
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Utilisez notre index de développement&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;devpi&lt;span class="w"&gt; &lt;/span&gt;use&lt;span class="w"&gt; &lt;/span&gt;testuser/dev
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Nous pouvons désormais uriliaer l'index privé.&lt;/p&gt;
&lt;p&gt;Nous utilisons Flit pour publier sur notre index et
repose sur le fichier: ~ / .pypirc.&lt;/p&gt;
&lt;p&gt;Nous y faisons donc une entrée pour notre index.Je lui ai donné le nom «myPyPi»:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;[distutils]
index-servers =
   mypypi
   testpypi

[mypypi]
repository = http://localhost:3141/pbernatchez/dev
username = pbernatchez

[testpypi]
repository = https://test.pypi.org/legacy/
username = pbernatchez
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;À partir de maintenant, en utilisant Flit, nous pouvons le désigner «myPyPi».&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;deactivate
&lt;span class="nb"&gt;cd&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;/home/ubuntu/allrepos/animbboard
&lt;span class="nb"&gt;source&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;HOME&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;/venv_animbboard/bin/activate
flit&lt;span class="w"&gt; &lt;/span&gt;build
flit&lt;span class="w"&gt; &lt;/span&gt;publish&lt;span class="w"&gt; &lt;/span&gt;--repository&lt;span class="w"&gt; &lt;/span&gt;mypypi
pip&lt;span class="w"&gt; &lt;/span&gt;uninstall&lt;span class="w"&gt;  &lt;/span&gt;animbboard
pip&lt;span class="w"&gt; &lt;/span&gt;install&lt;span class="w"&gt; &lt;/span&gt;-i&lt;span class="w"&gt; &lt;/span&gt;http://localhost:3141/pbernatchez/dev&lt;span class="w"&gt;  &lt;/span&gt;animbboard
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
</content><category term="python"/><category term="python"/><category term="package"/><category term="index"/><category term="distribution"/><category term="logiciel"/><category term="déploiement"/><category term="révision"/><category term="comment faire"/></entry><entry><title>Set up a private package index</title><link href="https://docs.pelican.bernatchez.net/lang-version.fr/privatepypi-fr.html" rel="alternate"/><published>2025-05-24T18:23:52+00:00</published><updated>2025-05-24T18:23:52+00:00</updated><author><name>Pierre Bernatchez</name></author><id>tag:docs.pelican.bernatchez.net,2025-05-24:/lang-version.fr/privatepypi-fr.html</id><summary type="html">&lt;p class="first last"&gt;set up a private package index&lt;/p&gt;
</summary><content type="html">&lt;div class="section" id="overview"&gt;
&lt;h2&gt;Overview&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;At this writing our current practise is to generate versioned
tarballs and to 'pip install' from those.&lt;/p&gt;
&lt;p&gt;This describes setting up a private package index as a more
convenient alternative to using tarballs directly.&lt;/p&gt;
&lt;p&gt;Our python software needs to be kept compatible with the standard
python package index for when we desire to offer it to the general
public.&lt;/p&gt;
&lt;p&gt;To ensure we are staying compatible with pypi, we need to run it
through the process, but with a conforming private packaging
index.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;devpi&lt;/strong&gt; to the rescue ('&lt;a class="reference external" href="https://www.devpi.net/"&gt;https://www.devpi.net/&lt;/a&gt;') .&lt;/p&gt;
&lt;p&gt;It is a conforming package index system we can use to serve our
private packages whithout releasing them to the public.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/div&gt;
&lt;div class="section" id="configuring-the-sw-for-devpi"&gt;
&lt;h2&gt;Configuring the SW for  devpi&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;This information is derived from the following tutorial:&lt;/p&gt;
&lt;p&gt;&amp;lt;&lt;a class="reference external" href="https://devpi.net/docs/devpi/devpi/stable/+doc/quickstart-releaseprocess.html"&gt;https://devpi.net/docs/devpi/devpi/stable/+doc/quickstart-releaseprocess.html&lt;/a&gt;&amp;gt;_&lt;/p&gt;
&lt;p&gt;We start by creating a virtual environment called &amp;quot;venv_devpi&amp;quot; by
following the steps described in the document virtualenv.&lt;/p&gt;
&lt;p&gt;Then we activate that environment and continue with the steps below.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/div&gt;
&lt;div class="section" id="set-up-devpi-server-on-our-laptop"&gt;
&lt;h2&gt;Set up devpi server on our laptop&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;Install a devpi client and web server&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;pip&lt;span class="w"&gt; &lt;/span&gt;install&lt;span class="w"&gt; &lt;/span&gt;-U&lt;span class="w"&gt; &lt;/span&gt;devpi-web&lt;span class="w"&gt; &lt;/span&gt;devpi-client
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Note:&lt;/p&gt;
&lt;pre class="literal-block"&gt;
The non-web server - devpi-server - is also installed as a side effect.
&lt;/pre&gt;
&lt;p&gt;We must avoid needing sudo to access the index, so instead we change
ownership from root to the logged in user. We also need to make sure
supervisor runs our server as that user.&lt;/p&gt;
&lt;p&gt;First manually do this:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;sudo&lt;span class="w"&gt; &lt;/span&gt;mkdir&lt;span class="w"&gt; &lt;/span&gt;-p&lt;span class="w"&gt; &lt;/span&gt;/var/devpi-server
sudo&lt;span class="w"&gt; &lt;/span&gt;chown&lt;span class="w"&gt; &lt;/span&gt;-R&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;$(&lt;/span&gt;logname&lt;span class="k"&gt;)&lt;/span&gt;:&lt;span class="k"&gt;$(&lt;/span&gt;logname&lt;span class="k"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;/var/devpi-server
ls&lt;span class="w"&gt; &lt;/span&gt;-ld&lt;span class="w"&gt; &lt;/span&gt;/var/devpi-server
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Initialize an empty index (at /var/devpi-server by default)&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;devpi-init
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Make a place to put our configuration data files:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;mkdir&lt;span class="w"&gt; &lt;/span&gt;-p&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;HOME&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;/devpi_setup
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;The following will generate a bunch of config files, one of which we
will need, under the current directory. Putting that stuff in
${HOME}/devpi_setup.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="nb"&gt;pushd&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;.&lt;span class="w"&gt; &lt;/span&gt;&amp;gt;/dev/null
&lt;span class="nb"&gt;cd&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;HOME&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;/devpi_setup
devpi-gen-config
&lt;span class="nb"&gt;popd&lt;/span&gt;&lt;span class="w"&gt;  &lt;/span&gt;&amp;gt;/dev/null
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Note:&lt;/p&gt;
&lt;pre class="literal-block"&gt;
This gave us the file  ${HOME}/devpi_setup/gen-config/supervisor-devpi.conf
as a config file to start up our pypi server.  Start by editing
it manually to say autostart=False so that it will need to be
started up manually.
&lt;/pre&gt;
&lt;p&gt;Append a line like &amp;quot;user = username&amp;quot; to the configuration so it
launches as that user, the same user as above.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="nb"&gt;echo&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;user&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;$(&lt;/span&gt;logname&lt;span class="k"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&amp;gt;&amp;gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;HOME&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;/devpi_setup/gen-config/supervisor-devpi.conf
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Copy the config where where it needs to be, then start our server.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;sudo&lt;span class="w"&gt; &lt;/span&gt;cp&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;HOME&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;/devpi_setup/gen-config/supervisor-devpi.conf&lt;span class="w"&gt; &lt;/span&gt;/etc/supervisor/conf.d/supervisor-devpi.conf
sudo&lt;span class="w"&gt; &lt;/span&gt;supervisorctl&lt;span class="w"&gt; &lt;/span&gt;update
sudo&lt;span class="w"&gt; &lt;/span&gt;supervisorctl&lt;span class="w"&gt; &lt;/span&gt;start&lt;span class="w"&gt; &lt;/span&gt;devpi-server
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Create a user (within the server), login as that user and create the 'bzdev' index&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;devpi&lt;span class="w"&gt; &lt;/span&gt;use&lt;span class="w"&gt; &lt;/span&gt;http://localhost:3141
devpi&lt;span class="w"&gt; &lt;/span&gt;user&lt;span class="w"&gt; &lt;/span&gt;-c&lt;span class="w"&gt; &lt;/span&gt;pbernatchez&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;password&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;dummy
devpi&lt;span class="w"&gt; &lt;/span&gt;login&lt;span class="w"&gt; &lt;/span&gt;pbernatchez&lt;span class="w"&gt; &lt;/span&gt;--password&lt;span class="o"&gt;=&lt;/span&gt;dummy
devpi&lt;span class="w"&gt; &lt;/span&gt;index&lt;span class="w"&gt; &lt;/span&gt;-c&lt;span class="w"&gt; &lt;/span&gt;bzdev&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;bases&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;root/pypi
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Use our bzdev index&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;devpi&lt;span class="w"&gt; &lt;/span&gt;use&lt;span class="w"&gt; &lt;/span&gt;pbernatchez/bzdev
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Now we can make use of our private index.&lt;/p&gt;
&lt;p&gt;We are using flit to publish to our index and it
relies on the file : ~/.pypirc.&lt;/p&gt;
&lt;p&gt;For pip I named it 'bzdevpi'.
So we make an entry there for our index:&lt;/p&gt;
&lt;pre class="literal-block"&gt;
[distutils]
index-servers =
   bzdevpi
   testpypi

[bzdevpi]
repository = http://localhost:3141/pbernatchez/bzdev
username = pbernatchez

[testpypi]
repository = https://test.pypi.org/legacy/
username = pbernatchez
&lt;/pre&gt;
&lt;p&gt;From here on, using flit,&lt;/p&gt;
&lt;div class="line-block"&gt;
&lt;div class="line"&gt;To publish,&lt;/div&gt;
&lt;div class="line"&gt;flit publish --repository bzdevpi&lt;/div&gt;
&lt;div class="line"&gt;To install,&lt;/div&gt;
&lt;div class="line"&gt;pip install -i &lt;a class="reference external" href="http://localhost:3141/pbernatchez/bzdev"&gt;http://localhost:3141/pbernatchez/bzdev&lt;/a&gt;   foobar&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Example:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;deactivate
&lt;span class="nb"&gt;cd&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;/home/ubuntu/allrepos/wait_ssh
&lt;span class="nb"&gt;source&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;HOME&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;/venv_generic/bin/activate
flit&lt;span class="w"&gt; &lt;/span&gt;build
flit&lt;span class="w"&gt; &lt;/span&gt;publish&lt;span class="w"&gt; &lt;/span&gt;--repository&lt;span class="w"&gt; &lt;/span&gt;bzdevpi
pip&lt;span class="w"&gt; &lt;/span&gt;uninstall&lt;span class="w"&gt; &lt;/span&gt;wait_ssh
pip&lt;span class="w"&gt; &lt;/span&gt;install&lt;span class="w"&gt; &lt;/span&gt;-i&lt;span class="w"&gt; &lt;/span&gt;http://localhost:3141/pbernatchez/bzdev&lt;span class="w"&gt; &lt;/span&gt;wait_ssh
&lt;/pre&gt;&lt;/div&gt;
&lt;/blockquote&gt;
&lt;/div&gt;
</content><category term="python"/><category term="python"/><category term="package"/><category term="index"/><category term="distribution"/><category term="logiciel"/><category term="déploiement"/><category term="révision"/><category term="comment faire"/></entry><entry><title>Configurer un environnement virtuel python</title><link href="https://docs.pelican.bernatchez.net/lang-version.fr/venv-fr.html" rel="alternate"/><published>2025-05-24T18:23:52+00:00</published><updated>2025-05-24T18:23:52+00:00</updated><author><name>Pierre Bernatchez</name></author><id>tag:docs.pelican.bernatchez.net,2025-05-24:/lang-version.fr/venv-fr.html</id><summary type="html">&lt;p class="first last"&gt;Configurer un environnement virtuel python&lt;/p&gt;
</summary><content type="html">&lt;p&gt;&lt;strong&gt;Assurez-vous que la version du système Ubuntu est suffisamment récente&lt;/strong&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;lsb_release&lt;span class="w"&gt; &lt;/span&gt;-a
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Résultat&lt;/p&gt;
&lt;pre class="literal-block"&gt;
Distributor ID:     Ubuntu

Description:        Ubuntu 24.04.3 LTS

Release:            24.04

Codename:           noble
&lt;/pre&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;python3&lt;span class="w"&gt; &lt;/span&gt;-V
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Résultat&lt;/p&gt;
&lt;dl class="docutils"&gt;
&lt;dt&gt;::&lt;/dt&gt;
&lt;dd&gt;Python 3.12.3&lt;/dd&gt;
&lt;/dl&gt;
&lt;p&gt;&lt;strong&gt;Créer une base pour tous nos environnements virtuels&lt;/strong&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;mkdir&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;HOME&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;/.venv
&lt;span class="c1"&gt;# Nous pouvons maintenant créer tous nos environnements virtuels sous ${HOME}/.venv/&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;Créer un environnement virtuel Python&lt;/strong&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="c1"&gt;# Ici, nous appelons notre premier environnement devpi&lt;/span&gt;
&lt;span class="nb"&gt;cd&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;HOME&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;/.venv/
python3&lt;span class="w"&gt; &lt;/span&gt;-m&lt;span class="w"&gt; &lt;/span&gt;venv&lt;span class="w"&gt; &lt;/span&gt;devpi
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;OU en utilisant venvwrapper&lt;/strong&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;mkvenv&lt;span class="w"&gt; &lt;/span&gt;devpi
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Une fois notre environnement créé, on peut installer les éléments nécessaires pour commencer.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Activez-le&lt;/strong&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="nb"&gt;source&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;HOME&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;/.venv/devpi/bin/activate
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;OU en utilisant venvwrapper&lt;/strong&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;venv&lt;span class="w"&gt; &lt;/span&gt;devpi
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;Installer les bases&lt;/strong&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="c1"&gt;# installer&lt;/span&gt;
python&lt;span class="w"&gt; &lt;/span&gt;-m&lt;span class="w"&gt; &lt;/span&gt;pip&lt;span class="w"&gt; &lt;/span&gt;install&lt;span class="w"&gt; &lt;/span&gt;-U&lt;span class="w"&gt; &lt;/span&gt;pip
pip&lt;span class="w"&gt; &lt;/span&gt;install&lt;span class="w"&gt; &lt;/span&gt;wheel
pip&lt;span class="w"&gt; &lt;/span&gt;install&lt;span class="w"&gt; &lt;/span&gt;setuptools
pip&lt;span class="w"&gt; &lt;/span&gt;install&lt;span class="w"&gt; &lt;/span&gt;twine
pip&lt;span class="w"&gt; &lt;/span&gt;install&lt;span class="w"&gt; &lt;/span&gt;rst2pdf
pip&lt;span class="w"&gt; &lt;/span&gt;install&lt;span class="w"&gt; &lt;/span&gt;flit

&lt;span class="c1"&gt;# désactiver&lt;/span&gt;
deactivate
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;Garder les pré-requis&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Une fois votre environnement virtuel terminé, il est conseillé d'enregistrer le contexte.
On peut  ensuite restaurer rapidement l´environnement virtuel à partir de zéro si nécessaire.&lt;/p&gt;
&lt;p&gt;Pendant actif&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;pip&lt;span class="w"&gt; &lt;/span&gt;freeze&lt;span class="w"&gt; &lt;/span&gt;&amp;gt;requirements.txt

&lt;span class="c1"&gt;# It may be a good idea to keep such files under version control.&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;Recupérer&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Pendant actif&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;pip&lt;span class="w"&gt; &lt;/span&gt;install&lt;span class="w"&gt; &lt;/span&gt;-r&lt;span class="w"&gt; &lt;/span&gt;requirements.txt
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;Activation Automatique&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Souvent nous souhaitons activer un projet à chaque connexion.
Nous pouvons le faire automatiquement en ajoutant un élément come ceci à .bashrc et/ou à .profile.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="c1"&gt;#&lt;/span&gt;
&lt;span class="c1"&gt;# Ajouté pour activation automatique de l´environment virtuel.&lt;/span&gt;
&lt;span class="c1"&gt;#&lt;/span&gt;
&lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;-f&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;HOME&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;/.venv/devpi/bin/activate&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;then&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nb"&gt;source&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;HOME&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;/.venv/devpi/bin/activate
&lt;span class="k"&gt;fi&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;OU en utilisant venvwrapper&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="c1"&gt;#&lt;/span&gt;
&lt;span class="c1"&gt;# Ajouté pour activation automatique de l´environment virtuel.&lt;/span&gt;
&lt;span class="c1"&gt;#&lt;/span&gt;
&lt;span class="nv"&gt;VENV_HOME&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;HOME&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;/.venv
&lt;span class="nv"&gt;venv_wrapper&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="k"&gt;$(&lt;/span&gt;which&lt;span class="w"&gt; &lt;/span&gt;venvwrapper.sh&lt;span class="k"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;[[&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;-n&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;$venv_wrapper&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;]]&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;then&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nb"&gt;source&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;$venv_wrapper&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;venv&lt;span class="w"&gt; &lt;/span&gt;devpi
&lt;span class="k"&gt;fi&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
</content><category term="python"/><category term="ubuntu"/><category term="python"/><category term="package"/><category term="distribution"/><category term="logiciel"/><category term="déploiement"/><category term="environnement virtuel"/><category term="comment faire"/></entry><entry><title>python virtual environment</title><link href="https://docs.pelican.bernatchez.net/lang-version.fr/virtualenv-fr.html" rel="alternate"/><published>2025-05-24T18:23:52+00:00</published><updated>2025-05-24T18:23:52+00:00</updated><author><name>Pierre Bernatchez</name></author><id>tag:docs.pelican.bernatchez.net,2025-05-24:/lang-version.fr/virtualenv-fr.html</id><summary type="html">&lt;p class="first last"&gt;set up a python virtual environment&lt;/p&gt;
</summary><content type="html">&lt;p&gt;&lt;strong&gt;Python Virtual Environment Setup&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;To have a good control over pre-requisite library modules for our
software, we run in a python virtual environment.&lt;/p&gt;
&lt;p&gt;That means that whenever you want to use or maintain the software
you must first activate that virtual environment like this:
(replace 'generic' with an existing project environment name)&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="nb"&gt;source&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;HOME&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;/venv_generic/bin/activate
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Once active you can deactivate it like this:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;deactivate
&lt;/pre&gt;&lt;/div&gt;
&lt;div class="section" id="installation"&gt;
&lt;h2&gt;Installation&lt;/h2&gt;
&lt;p&gt;We install any non pip packages we rely on, if any, first.
Then we install virtualenv.
Then we create a virtual environment.
Then we activate it.&lt;/p&gt;
&lt;p&gt;Install virtualenv itself.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;sudo&lt;span class="w"&gt; &lt;/span&gt;apt&lt;span class="w"&gt; &lt;/span&gt;update
sudo&lt;span class="w"&gt; &lt;/span&gt;apt&lt;span class="w"&gt; &lt;/span&gt;install&lt;span class="w"&gt; &lt;/span&gt;virtualenv
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Install a .rst to .pdf converter.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;snap&lt;span class="w"&gt; &lt;/span&gt;install&lt;span class="w"&gt; &lt;/span&gt;rst2pdf
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Create a virtual environment for the project&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;virtualenv&lt;span class="w"&gt; &lt;/span&gt;--prompt&lt;span class="w"&gt; &lt;/span&gt;venv_generic&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;HOME&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;/venv_generic
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Then activate the created environment&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="nb"&gt;source&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;HOME&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;/venv_generic/bin/activate
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Now we install modules our project will need, first pip itself and the
tools it needs.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;python3&lt;span class="w"&gt; &lt;/span&gt;-m&lt;span class="w"&gt; &lt;/span&gt;pip&lt;span class="w"&gt; &lt;/span&gt;install&lt;span class="w"&gt; &lt;/span&gt;-U&lt;span class="w"&gt; &lt;/span&gt;pip
pip&lt;span class="w"&gt; &lt;/span&gt;install&lt;span class="w"&gt; &lt;/span&gt;wheel
pip&lt;span class="w"&gt; &lt;/span&gt;install&lt;span class="w"&gt; &lt;/span&gt;setuptools
pip&lt;span class="w"&gt; &lt;/span&gt;install&lt;span class="w"&gt; &lt;/span&gt;twine
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;We are using flit for building and installling our software.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;pip&lt;span class="w"&gt; &lt;/span&gt;install&lt;span class="w"&gt; &lt;/span&gt;flit
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="section" id="saving-prerequisites"&gt;
&lt;h2&gt;Saving prerequisites&lt;/h2&gt;
&lt;p&gt;We keep our dependencies under version control, so each time
we install more components we need to refresh our requirements
file.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;pip&lt;span class="w"&gt; &lt;/span&gt;freeze&lt;span class="w"&gt; &lt;/span&gt;&amp;gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;HOME&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;/allrepos/generic/requirements.txt
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="section" id="reinstalling"&gt;
&lt;h2&gt;Reinstalling&lt;/h2&gt;
&lt;p&gt;Later, when we are migrating to a different workstation, or for some
reason need to restablish our project from scratch, we can install all
our prerequisites in one shot instead of installing items one at a
time like we did above.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;pip&lt;span class="w"&gt; &lt;/span&gt;install&lt;span class="w"&gt; &lt;/span&gt;-r&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;HOME&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;/allrepos/generic/requirements.txt
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="section" id="automatic-activation"&gt;
&lt;h2&gt;Automatic activation&lt;/h2&gt;
&lt;p&gt;In many cases we want to activate a project whenver we log in, so lets
do that automatically.&lt;/p&gt;
&lt;p&gt;Append this snippet to the end of our &amp;quot;${HOME}/.bashrc&amp;quot; file.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="c1"&gt;#&lt;/span&gt;
&lt;span class="c1"&gt;# Added for automatic vitual environment activation&lt;/span&gt;
&lt;span class="c1"&gt;#&lt;/span&gt;
&lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;-f&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;HOME&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;/venv_generic/bin/activate&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;then&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nb"&gt;source&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;HOME&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;/venv_generic/bin/activate
&lt;span class="k"&gt;fi&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="section" id="good-ignoring-keeps-flit-happy"&gt;
&lt;h2&gt;Good ignoring keeps flit happy&lt;/h2&gt;
&lt;p&gt;Flit works nicely with git, but it is quite strict, so we must ignore
all irrelevant files properly or flit will reject builds.&lt;/p&gt;
&lt;p&gt;Below is a good start for a project &amp;quot;.gitignore&amp;quot; file:&lt;/p&gt;
&lt;pre class="literal-block"&gt;
*~
\#*\#
dist/*
pdf_docs/*
html_docs/*
&lt;/pre&gt;
&lt;/div&gt;
</content><category term="python"/><category term="python"/><category term="package"/><category term="distribution"/><category term="logiciel"/><category term="déploiement"/><category term="environnement virtuel"/><category term="comment faire"/></entry><entry><title>Set Up A Wrapper For Venv Environments</title><link href="https://docs.pelican.bernatchez.net/lang-version.fr/vwrapper-fr.html" rel="alternate"/><published>2025-05-24T18:23:52+00:00</published><updated>2025-05-24T18:23:52+00:00</updated><author><name>Pierre Bernatchez</name></author><id>tag:docs.pelican.bernatchez.net,2025-05-24:/lang-version.fr/vwrapper-fr.html</id><summary type="html">&lt;p class="first last"&gt;virtual environment wrapper setup&lt;/p&gt;
</summary><content type="html">&lt;p&gt;To maintain more than one python project at a time we leverage the the
builtin python venv tool for creating and using virtual environments.&lt;/p&gt;
&lt;p&gt;The venvwrapper package helps to keep the maintenance of multiple virtual
environments easier.  In short venv is enough, but venvwrapper makes it
easier.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Installation&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Install the venvwrapper package into your default system Python 3.
That is, with no virtual environment active.
This installs &lt;em&gt;venvwrapper.sh&lt;/em&gt; so that it is available in PATH&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;sudo&lt;span class="w"&gt; &lt;/span&gt;pip3&lt;span class="w"&gt; &lt;/span&gt;install&lt;span class="w"&gt; &lt;/span&gt;--break-system-packages&lt;span class="w"&gt; &lt;/span&gt;venvwrapper
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Check that it is indeed available&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;which&lt;span class="w"&gt; &lt;/span&gt;venvwrapper.sh
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;Set up automatic activation of venvwrapper&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Add the code snippet below to one or both of these two files.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;HOME&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;/.bashrc
&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;HOME&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;/.profile
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Code snippet:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="nv"&gt;VENV_HOME&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;HOME&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;/.venv
&lt;span class="nv"&gt;venv_wrapper&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="k"&gt;$(&lt;/span&gt;which&lt;span class="w"&gt; &lt;/span&gt;venvwrapper.sh&lt;span class="k"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;[[&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;-n&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;venv_wrapper&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;]]&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;then&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nb"&gt;source&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;venv_wrapper&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;
&lt;span class="k"&gt;fi&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;Now Once you open a terminal window you have access to these commands&lt;/strong&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;mkvenv&lt;span class="w"&gt; &lt;/span&gt;devpi&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="c1"&gt;# create and activate a new virtual environment&lt;/span&gt;
venv&lt;span class="w"&gt;   &lt;/span&gt;devpi&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="c1"&gt;# activate an existing virtual environment&lt;/span&gt;
rmvenv&lt;span class="w"&gt; &lt;/span&gt;devpi&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="c1"&gt;# remove one or more virtual environments&lt;/span&gt;
lsvenv&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="c1"&gt;# list existing virtual environments&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
</content><category term="python"/><category term="ubuntu"/><category term="python"/><category term="package"/><category term="distribution"/><category term="logiciel"/><category term="déploiement"/><category term="environnement virtuel"/><category term="comment faire"/></entry><entry><title>Attributs de métadonnées dans chaque article</title><link href="https://docs.pelican.bernatchez.net/lang-version.fr/articlemeta-fr.html" rel="alternate"/><published>2025-04-16T00:37:11+00:00</published><updated>2025-04-16T00:37:11+00:00</updated><author><name>Pierre Bernatchez</name></author><id>tag:docs.pelican.bernatchez.net,2025-04-16:/lang-version.fr/articlemeta-fr.html</id><summary type="html">&lt;p class="first last"&gt;Métadonnées dans les articles&lt;/p&gt;
</summary><content type="html">&lt;p&gt;&lt;strong&gt;Pelican a besoin de méta-données comme celles-ci&lt;/strong&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="nc"&gt;:lang:&lt;/span&gt; fr
&lt;span class="nc"&gt;:date:&lt;/span&gt; 2025-04-16 00:37:11+00:00
&lt;span class="nc"&gt;:tags:&lt;/span&gt; métadonnées, article, pélican
&lt;span class="nc"&gt;:slug:&lt;/span&gt; articlemeta
&lt;span class="nc"&gt;:category:&lt;/span&gt; pelican
&lt;span class="nc"&gt;:authors:&lt;/span&gt; Pierre Bernatchez
&lt;span class="nc"&gt;:summary:&lt;/span&gt; Métadonnées dans les articles
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Insérez-les sous la rubrique initiale de chaque article.&lt;/p&gt;
&lt;p&gt;Celles-ci devraient être identiques dans toutes les traductions d'un article.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="nc"&gt;:date:&lt;/span&gt; 2025-04-16 00:37:11+00:00
&lt;span class="nc"&gt;:slug:&lt;/span&gt; sitehome
&lt;span class="nc"&gt;:authors:&lt;/span&gt; Nuno Yobidness
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Celles-ci doivent être traduites dans les différentes versions linguistiques de l'article.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="nc"&gt;:lang:&lt;/span&gt; fr
&lt;span class="nc"&gt;:tags:&lt;/span&gt; introduction
&lt;span class="nc"&gt;:category:&lt;/span&gt; pelican
&lt;span class="nc"&gt;:summary:&lt;/span&gt; Bienvenue sur le site
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Ces options sont facultatives.&lt;/p&gt;
&lt;p&gt;Cela empêche le contenu d'apparaître dans les menus, pages, mots-clés et catégories.
Il sera généré, mais vous aurez besoin d'un lien quelque part pour y accéder.
Utilisez la même valeur dans toutes les langues.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="nc"&gt;:status:&lt;/span&gt; hidden
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Cela remplace le pied de page de droits d'auteur par défaut.
La valeur dépend de la langue.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="nc"&gt;:fcopyright:&lt;/span&gt; Droits d´auteur © 2026 Isaac Mejia—Tous droits reservés.
&lt;/pre&gt;&lt;/div&gt;
&lt;!-- "DATE" A correctly formatted date can be obtained by the command "date -u - -rfc-3339=seconds" --&gt;
&lt;!-- "SLUG" is the internal Unique name for the article. --&gt;
&lt;!-- "LANG" must be one of en, fr, or es. --&gt;
&lt;!-- "TAGS" must be a list of key words separated by commas. --&gt;
&lt;!-- "CATEGORY" should be the category an article belongs to. --&gt;
&lt;!-- "SUMMARY" should be a one line summary of the article. --&gt;
</content><category term="pelican"/><category term="métadonnées"/><category term="article"/><category term="pélican"/></entry><entry><title>projet git mypelican_static_sites</title><link href="https://docs.pelican.bernatchez.net/lang-version.fr/projreadme-fr.html" rel="alternate"/><published>2025-04-16T00:37:11+00:00</published><updated>2025-04-16T00:37:11+00:00</updated><author><name>Pierre Bernatchez</name></author><id>tag:docs.pelican.bernatchez.net,2025-04-16:/lang-version.fr/projreadme-fr.html</id><summary type="html">&lt;p class="first last"&gt;Description du projet git mypelican_static_sites&lt;/p&gt;
</summary><content type="html">&lt;p&gt;&lt;strong&gt;Vue d'ensemble&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Il s'agit d'un projet github qui utilise un générateur de sites appelé pelican pour
générer des sites web statiques.&lt;/p&gt;
&lt;p&gt;Au moment de la rédaction, ce projet maintient le contenu et la génération pour
trois sites distincts. Chaque site est rendu en 3 langues : anglais,
français et espagnol.&lt;/p&gt;
&lt;p&gt;Par convention, nous nommons chacun de ces sous-répertoires en utilisant le nom de domaine
du site. Les scripts s'appuient sur cette convention.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Sites actuellement maintenus&lt;/strong&gt;&lt;/p&gt;
&lt;ol class="arabic"&gt;
&lt;li&gt;&lt;p class="first"&gt;www.bernatchez.net&lt;/p&gt;
&lt;p&gt;Hébergé sur Bunny.net : www-bernatchez-net&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p class="first"&gt;www.ogopogo.biz&lt;/p&gt;
&lt;p&gt;Hébergé sur Bunny.net : www-ogopogo-biz&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p class="first"&gt;blog.bernatchez.net&lt;/p&gt;
&lt;p&gt;Hébergé sur Bunny.net : blog-bernatchez-net&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p class="first"&gt;docs.pelican.bernatchez.net&lt;/p&gt;
&lt;p&gt;Hébergé non publié sur le système de fichiers local.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="line-block"&gt;
&lt;div class="line"&gt;&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;Génération du site web&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Générez une version locale d'un site afin de pouvoir le parcourir et le vérifier
avant de le publier.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="nb"&gt;cd&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;./blog.bernatchez.net
make&lt;span class="w"&gt; &lt;/span&gt;html
xdg-open&lt;span class="w"&gt; &lt;/span&gt;./bucket/index.html
&lt;span class="nb"&gt;cd&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;..
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Générez une version en ligne du site et publiez-la.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="nb"&gt;cd&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;./blog.bernatchez.net
&lt;span class="c1"&gt;# Assurez-vous que le fichier deploy.bunny exécute réellement une commande &amp;quot;nmx&amp;quot; plutôt que de simplement l&amp;#39;afficher.&lt;/span&gt;
make&lt;span class="w"&gt; &lt;/span&gt;pubhtml

&lt;span class="c1"&gt;# Invoquez manuellement la commande affichée en dernière ligne par le make ci-dessus&lt;/span&gt;
&lt;span class="c1"&gt;# Cela pousse tout vers le cache CDN&lt;/span&gt;
npx&lt;span class="w"&gt; &lt;/span&gt;--yes&lt;span class="w"&gt; &lt;/span&gt;bunny-transfer@latest&lt;span class="w"&gt; &lt;/span&gt;purge&lt;span class="w"&gt; &lt;/span&gt;blog-bernatchez-net-zone
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;Avertissement&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Une fois que vous avez invoqué « make pubhtml », le contenu de votre « site local » ne
sera plus approprié pour une consultation locale. Si vous souhaitez parcourir
les versions locale et en ligne de façon interchangeable, vous devez répéter la
commande « make html » après la publication, laissant ainsi les fichiers locaux
configurés pour une consultation locale.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Maintenance du site web&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Portée&lt;/em&gt;&lt;/p&gt;
&lt;pre class="literal-block"&gt;
Le projet git est organisé avec 2 portées pour le contenu source du site.

*Portée source globale*

   Les fichiers .rst contenus dans les sous-répertoires du répertoire principal du projet.
   Ces fichiers peuvent être utilisés comme source par n'importe lequel de nos sites web.

*Portée source locale*

   Les fichiers .rst contenus dans les sous-répertoires d'un sous-répertoire de site donné.
   Ces fichiers ne peuvent être utilisés comme source que par le site web concerné.

Le sous-répertoire « content » d'un site donné contient des sous-répertoires dont
les noms correspondent aux sous-répertoires de portée globale ou locale. Cela
détermine ce qui sera inclus dans le site.

Les noms de répertoires présents dans le répertoire « content » déterminent
ce qui est inclus dans le site généré.

Le fichier make se charge de peupler ces répertoires avec des liens
symboliques vers les fichiers source .rst dans leurs répertoires de portée
locale ou globale correspondants.

En ce qui concerne le dépôt, vous ne faites « git add » que pour les fichiers .rst
situés dans les répertoires de portée globale ou locale. Les
sous-répertoires sous content/ ne contiendront qu'un fichier « placeholder.txt »
dans git pour s'assurer que leurs sous-répertoires seront créés lors du
clonage.
&lt;/pre&gt;
&lt;p&gt;&lt;em&gt;Source pdf&lt;/em&gt;&lt;/p&gt;
&lt;pre class="literal-block"&gt;
Tous nos sites contiennent également des versions .pdf de leurs pages. Pour
produire ces fichiers pdf, chaque répertoire source contient deux
fichiers de script exécutables : **article2pdf** et **qarticle2pdf**.
Ce dernier est simplement une version moins verbeuse. Chaque fois que vous modifiez ou
ajoutez du contenu dans un répertoire source, pensez à régénérer les
fichiers .pdf en conséquence.

En général, vous modifiez votre contenu, puis invoquez « qarticle2pdf »
pour vous assurer que vos pdfs sont à jour.

Si vous avez créé un nouveau répertoire source, vous pouvez générer ces deux scripts
en invoquant la commande « genarticle2pdf -q » à l'intérieur du nouveau répertoire.
&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;Maintenance github&lt;/strong&gt;&lt;/p&gt;
&lt;pre class="literal-block"&gt;
Lorsque vous clonez le projet github dans un répertoire local, vous obtenez
un répertoire principal qui contient des sous-répertoires de sites web, chacun
d'entre eux étant un répertoire de génération de site web indépendant.

Le répertoire principal du projet contient divers sous-répertoires de *portée source globale*
(ex. : ./examples, ./artwork, ./travel,
etc.). Chacun d'eux contient des fichiers .rst pouvant servir de source
pour la génération du contenu du site. Tous sous contrôle de révision git.

Ce contenu de *portée source globale* peut optionnellement être utilisé comme source
pour n'importe lequel des sites web.

Chaque sous-répertoire de site web peut également contenir ses propres sous-répertoires
contenant des fichiers .rst de *portée source locale* spécifiques au site
(ex. : ./blog.bernatchez.net/pages/) destinés uniquement au site
concerné.

Pour ajouter l'un de ces répertoires de contenu à *portée locale ou globale*
à un site web donné, vous devez créer un répertoire du même
nom sous le sous-répertoire content du site concerné. Vous devez également
ajouter un fichier « placeholder.txt » et le mettre sous contrôle de révision
(ex. : git add placeholder.txt) pour s'assurer que ce nouveau répertoire sera
créé lors de l'utilisation de « git clone ».
&lt;/pre&gt;
&lt;p&gt;Par exemple, nous avons procédé ainsi pour ajouter ./examples au site web ./blog.bernatchez.net :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;mkdir&lt;span class="w"&gt; &lt;/span&gt;./blog.bernatchez.net/content/examples/
cp&lt;span class="w"&gt; &lt;/span&gt;./blog.bernatchez.net/content/pages/placeholder.txt&lt;span class="w"&gt; &lt;/span&gt;./blog.bernatchez.net/content/examples/
git&lt;span class="w"&gt; &lt;/span&gt;add&lt;span class="w"&gt; &lt;/span&gt;./blog.bernatchez.net/content/examples/placeholder.txt
&lt;/pre&gt;&lt;/div&gt;
&lt;pre class="literal-block"&gt;
Vous devez également modifier le fichier .gitignore du projet pour éviter d'ajouter
les liens symboliques générés sous content/examples dans le dépôt git.
Ces liens sont régénérés à chaque make.

Nous avons ajouté les lignes suivantes au fichier .gitignore :

blog.bernatchez.net/content/examples/
blog.bernatchez.net/content/examples/*
&lt;/pre&gt;
&lt;div class="section" id="depot"&gt;
&lt;h2&gt;Dépôt&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;La copie centrale originale du dépôt de ce projet est :&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="mailto:git&amp;#64;github.com"&gt;git&amp;#64;github.com&lt;/a&gt;:pierrebernatchez/mypelican_static_sites.git&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/div&gt;
</content><category term="pelican"/><category term="projet"/><category term="lisez-moi"/><category term="git"/><category term="pelican"/><category term="dépot"/></entry><entry><title>Point de départ d'un article</title><link href="https://docs.pelican.bernatchez.net/lang-version.fr/articlestarter-fr.html" rel="alternate"/><published>2024-12-06T20:05:03+00:00</published><updated>2024-12-06T20:05:03+00:00</updated><author><name>Pierre Bernatchez</name></author><id>tag:docs.pelican.bernatchez.net,2024-12-06:/lang-version.fr/articlestarter-fr.html</id><summary type="html">&lt;p class="first last"&gt;Point de départ d'un article&lt;/p&gt;
</summary><content type="html">&lt;p&gt;Contenu RST d'exemple pour servir de base et être modifié pour votre article.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="gh"&gt;En-tête principal de votre article&lt;/span&gt;
&lt;span class="gh"&gt;#############################################&lt;/span&gt;

&lt;span class="nc"&gt;:lang:&lt;/span&gt; fr
&lt;span class="nc"&gt;:category:&lt;/span&gt; une catégorie valide
&lt;span class="nc"&gt;:date:&lt;/span&gt; 2025-10-11 20:03:36+00:00
&lt;span class="nc"&gt;:tags:&lt;/span&gt; article, modèle
&lt;span class="nc"&gt;:slug:&lt;/span&gt; nom-unique-de-l-article
&lt;span class="nc"&gt;:authors:&lt;/span&gt; Pierre Bernatchez
&lt;span class="nc"&gt;:summary:&lt;/span&gt; Résumé en une ligne de votre article

&lt;span class="p"&gt;..&lt;/span&gt; &lt;span class="nt"&gt;|copy|&lt;/span&gt; &lt;span class="ow"&gt;unicode&lt;/span&gt;&lt;span class="p"&gt;::&lt;/span&gt; 0xA9 .. signe copyright

&lt;span class="p"&gt;..&lt;/span&gt; &lt;span class="nt"&gt;|---|&lt;/span&gt; &lt;span class="ow"&gt;unicode&lt;/span&gt;&lt;span class="p"&gt;::&lt;/span&gt; U+02014 .. tiret cadratin
   &lt;span class="nc"&gt;:trim:&lt;/span&gt;

&lt;span class="p"&gt;..&lt;/span&gt; &lt;span class="ow"&gt;footer&lt;/span&gt;&lt;span class="p"&gt;::&lt;/span&gt; Copyright |copy| 2025 Pierre Bernatchez |---| tous droits réservés.


Commencez ici
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Modifiez l'&lt;strong&gt;en-tête principal&lt;/strong&gt; par quelque chose de convenable pour votre article.&lt;/p&gt;
&lt;p&gt;Modifiez la &lt;strong&gt;catégorie&lt;/strong&gt; par une catégorie appropriée à votre article.&lt;/p&gt;
&lt;p&gt;Modifiez la &lt;strong&gt;date&lt;/strong&gt;. Vous pouvez utiliser la commande en ligne de commande
&amp;quot;date -u --rfc-3339=seconds&amp;quot; pour obtenir une chaîne de date correctement formatée.&lt;/p&gt;
&lt;p&gt;Modifiez les &lt;strong&gt;étiquettes&lt;/strong&gt; avec des mots-clés pertinents pour votre article.&lt;/p&gt;
&lt;p&gt;Modifiez le &lt;strong&gt;slug&lt;/strong&gt; pour qu'il soit le nom unique de votre article. Nous l'utilisons
comme base pour le nom de fichier du fichier .rst. Ainsi,
slugname-en.rst, slugname-es.rst, slugname-fr.rst sont les 3 noms de fichiers
en différentes langues pour l'article avec le slug : slugname.&lt;/p&gt;
&lt;p&gt;Modifiez &lt;strong&gt;authors&lt;/strong&gt; par votre propre nom.&lt;/p&gt;
&lt;p&gt;Modifiez le &lt;strong&gt;résumé&lt;/strong&gt; par quelque chose d'approprié à votre article.&lt;/p&gt;
&lt;p&gt;Modifiez également le nom dans la ligne &lt;strong&gt;footer&lt;/strong&gt; par le vôtre.&lt;/p&gt;
&lt;p&gt;Rédigez votre article en utilisant le balisage RST, en commençant à &lt;strong&gt;commencez ici&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Notez qu'il existe deux scripts Python pratiques qui peuvent
générer un point de départ pour un nouvel article.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Générer un point de départ d'article sans image&lt;/em&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;newarticle&lt;span class="w"&gt; &lt;/span&gt;-h
&lt;/pre&gt;&lt;/div&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;usage: newarticle [-h] [-a AUTHOR] [-l {en,fr,es,all}] [-d DUP] [-r]
                  articlename

Generate a skeleton article file

positional arguments:
  articlename           article name without the &amp;quot;-en.rst&amp;quot;)

options:
  -h, --help            show this help message and exit
  -a AUTHOR, --author AUTHOR
                        Author for copyright and for authors (default &amp;quot;Pierre
                        Bernatchez)&amp;quot;
  -l {en,fr,es,all}, --lang {en,fr,es,all}
                        language of the new article (default: all)
  -d DUP, --dup DUP     Existing article name to duplicate category and tags
                        (default None)
  -r, --recipe          Treat this as a recipe. (Othewise generic)
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;OU&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Générer un point de départ d'article avec une image&lt;/em&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;newshot&lt;span class="w"&gt; &lt;/span&gt;-h
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;em&gt;Sortie&lt;/em&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;usage: newshot [-h] [-a AUTHOR] [-l {en,fr,es,all}] [-d DUP] [-j] [-r]
               articlename

Generate a skeleton article file which has a srcreenshot

positional arguments:
  articlename           article name without the &amp;quot;-en.rst&amp;quot;)

options:
  -h, --help            show this help message and exit
  -a AUTHOR, --author AUTHOR
                        Author for copyright and for authors (default &amp;quot;Pierre
                        Bernatchez)&amp;quot;
  -l {en,fr,es,all}, --lang {en,fr,es,all}
                        language of the new article (default: all)
  -d DUP, --dup DUP     Existing article name to duplicate category and tags
                        (default None)
  -j, --jpg             Reference image as a .jpg rather than a .png a
                        (default: False)
  -r, --recipe          Treat this as a recipe. (Othewise generic)
&lt;/pre&gt;&lt;/div&gt;
</content><category term="pelican"/><category term="initial"/><category term="article"/><category term="modèle"/></entry><entry><title>Thème «Lightweight» pour pelican</title><link href="https://docs.pelican.bernatchez.net/lang-version.fr/theme-readme-fr.html" rel="alternate"/><published>2024-12-06T20:02:44+00:00</published><updated>2024-12-06T20:02:44+00:00</updated><author><name>Pierre Bernatchez</name></author><id>tag:docs.pelican.bernatchez.net,2024-12-06:/lang-version.fr/theme-readme-fr.html</id><summary type="html">&lt;p class="first last"&gt;Pelican Theme Read Me&lt;/p&gt;
</summary><content type="html">&lt;div class="section" id="description"&gt;
&lt;h2&gt;Description&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="nc"&gt;:Créé le:&lt;/span&gt; 14 février 2011
&lt;span class="nc"&gt;:Technologies utilisées:&lt;/span&gt; xHTML5, CSS 1-3, polices TTF
&lt;span class="nc"&gt;:Couleurs utilisées:&lt;/span&gt; Tons froids (gris/bleu)
&lt;span class="nc"&gt;:Design extensif:&lt;/span&gt; Oui
&lt;span class="nc"&gt;:Testé sous:&lt;/span&gt; Mozilla Firefox 4.0b10, Chromium 9.0.597.83, ELinks 0.12pre5
&lt;span class="nc"&gt;:Langue:&lt;/span&gt; Français
&lt;span class="nc"&gt;:Détails:&lt;/span&gt; Voire capture d&amp;#39;écran et source
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Ce thème est dérivé du thème lightweight.
On a changé la page d´acceuil pour lister un seul article de bienvenu au lieue d´une liste complète d´articles.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Capture d'écran&lt;/strong&gt;&lt;/p&gt;
&lt;img alt="Capture d'écran de thème pelican lightweight" class="align-center" src="../images/screenshot-fr.jpg" style="width: 776.4px; height: 358.2px;" /&gt;
&lt;/div&gt;
</content><category term="pelican"/><category term="theme"/><category term="readme"/></entry><entry><title>Configuration du générateur de site Web Pelican</title><link href="https://docs.pelican.bernatchez.net/lang-version.fr/pelicansetup-fr.html" rel="alternate"/><published>2024-12-02T17:30:00-05:00</published><updated>2024-12-02T17:30:00-05:00</updated><author><name>Pierre Bernatchez</name></author><id>tag:docs.pelican.bernatchez.net,2024-12-02:/lang-version.fr/pelicansetup-fr.html</id><summary type="html">&lt;p class="first last"&gt;Configuration du générateur de site Web Pelican&lt;/p&gt;
</summary><content type="html">&lt;p&gt;Pelican est un générateur de sites web statiques.
C'est l'outil que nous utilisons pour maintenir nos sites statiques.&lt;/p&gt;
&lt;p&gt;Ce document suppose que nous utilisons venvwrapper &lt;a class="footnote-reference" href="#venvwrapper" id="footnote-reference-1"&gt;[1]&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Installation de Pelican&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Effectuez cette opération dans notre environnement virtuel Python.
Nous avons nommé notre environnement &lt;em&gt;statsites&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Activez-le et installez Pelican.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;venv&lt;span class="w"&gt; &lt;/span&gt;statsites
pip&lt;span class="w"&gt; &lt;/span&gt;install&lt;span class="w"&gt; &lt;/span&gt;pelican
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;Thèmes&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Dans chacune de nos configurations pelicanconf.py, nous sélectionnons un thème pour le site concerné.
Pour obtenir une sélection de thèmes, nous avons cloné comme suit:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;git&lt;span class="w"&gt; &lt;/span&gt;clone&lt;span class="w"&gt; &lt;/span&gt;--recursive&lt;span class="w"&gt; &lt;/span&gt;https://github.com/getpelican/pelican-themes&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;HOME&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;/pelican-themes
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;Note sur le thème du site&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Sur nos propres sites, nous avons apporté quelques ajustements au
thème &lt;em&gt;lightweight&lt;/em&gt; pour l'adapter à nos besoins.&lt;/p&gt;
&lt;p&gt;Nous maintenons ce thème dérivé de &lt;em&gt;lightweight&lt;/em&gt; et notre contenu web dans notre dépôt
de contrôle de version Git.  Notre fichier de configuration
pelicanconf-en.py contient cette référence ci dessous.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="n"&gt;THEME&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sa"&gt;u&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;/home/ubuntu/allrepos/mystatic_sites/derived-themes/lightweight-single-home-en&amp;quot;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Le thème de votre site sera à vous de choisir et/ou de modifier.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Initialiser le système de fichiers du site squelettique&lt;/strong&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Utilisez &lt;em&gt;pelican-quickstart&lt;/em&gt; pour générer le contenu statique
initial du site web avec Pelican.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;pelican-quickstart&lt;/em&gt; crée un système de fichiers de génération de
site squelette sous le répertoire vide actuel.&lt;/p&gt;
&lt;p&gt;Créez ensuite des fichiers .rst dans les répertoires
content/n_importe_quel_nom comme articles de blog.  Créez des fichiers .rst
dans content/pages comme pages de blog.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;strong&gt;Compilation&lt;/strong&gt;&lt;/p&gt;
&lt;blockquote&gt;
Générez les fichiers du site web une fois tous nos fichiers
sources .rst disponibles.  Pour cela, il suffit d'utiliser le
Makefile.  La procédure suivante compilera et diffusera tout le
contenu du site web sous output/ en utilisant Pelican.&lt;/blockquote&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;make&lt;span class="w"&gt; &lt;/span&gt;html

Vous&lt;span class="w"&gt; &lt;/span&gt;pouvez&lt;span class="w"&gt; &lt;/span&gt;voir&lt;span class="w"&gt; &lt;/span&gt;vos&lt;span class="w"&gt; &lt;/span&gt;résultats&lt;span class="w"&gt; &lt;/span&gt;en&lt;span class="w"&gt; &lt;/span&gt;appelant&lt;span class="w"&gt; &lt;/span&gt;le&lt;span class="w"&gt; &lt;/span&gt;fichier&lt;span class="w"&gt; &lt;/span&gt;output/index.html.
&lt;/pre&gt;&lt;/div&gt;
&lt;table class="docutils footnote" frame="void" id="venvwrapper" rules="none"&gt;
&lt;colgroup&gt;&lt;col class="label" /&gt;&lt;col /&gt;&lt;/colgroup&gt;
&lt;tbody valign="top"&gt;
&lt;tr&gt;&lt;td class="label"&gt;&lt;a class="fn-backref" href="#footnote-reference-1"&gt;[1]&lt;/a&gt;&lt;/td&gt;&lt;td&gt;Nous utilisons le paquet python &lt;em&gt;venvwrapper&lt;/em&gt; pour simplifier la gestion
des environnements virtuels.  Ceci est supposé dans ce document.
Si vous ne l'utilisez pas, vous devez remplacer les lignes telles
que &amp;quot;venv statsites&amp;quot; par des lignes telles que &amp;quot;source
${HOME}/.venv/statsites/bin/activate&amp;quot;.&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
</content><category term="pelican"/><category term="ubuntu"/><category term="python"/><category term="site web"/><category term="générateur"/><category term="statique"/><category term="comment faire"/><category term="configuration"/></entry><entry><title>Organisation des sources du projet</title><link href="https://docs.pelican.bernatchez.net/lang-version.fr/sourceorg-fr.html" rel="alternate"/><published>2024-12-02T17:30:00-05:00</published><updated>2024-12-02T17:30:00-05:00</updated><author><name>Pierre Bernatchez</name></author><id>tag:docs.pelican.bernatchez.net,2024-12-02:/lang-version.fr/sourceorg-fr.html</id><summary type="html">&lt;p class="first last"&gt;Notes Sur l'Organisation des sources du projet&lt;/p&gt;
</summary><content type="html">&lt;p&gt;At this writing we are maintaining pelican generated static websites,
one for www.bernatchez.net and one for www.ogopogo.biz.&lt;/p&gt;
&lt;p&gt;We use our script &amp;quot;compile_rst&amp;quot; to add a few generated .rst files to
the source site before using pelican to generate the site from source.&lt;/p&gt;
&lt;p&gt;We can generate a list of links to the files in a subdirectory.&lt;/p&gt;
&lt;p&gt;Accomplished like this in the Makefile.&lt;/p&gt;
&lt;pre class="code Make literal-block"&gt;
&lt;span class="k"&gt;$(&lt;/span&gt;&lt;span class="nv"&gt;COMPILE_RST&lt;/span&gt;&lt;span class="k"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;-p&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;'*.pdf'&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;-s&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;sitepdfs&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;-o&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;pdfs_list&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;-i&lt;/span&gt;
&lt;/pre&gt;
&lt;p&gt;That would generate a link for each .pdf file in sitepdfs/ and emit the result
to the file pdfs_list.rst&lt;/p&gt;
&lt;p&gt;Such a file is intended to be included within one or more of our manually produced .rst pages with a line like:&lt;/p&gt;
&lt;pre class="code rst literal-block"&gt;
&lt;span class="p"&gt;..&lt;/span&gt; &lt;span class="ow"&gt;include&lt;/span&gt;&lt;span class="p"&gt;::&lt;/span&gt; ../../pdfs_list.rst
&lt;/pre&gt;
&lt;p&gt;That would include our generated link list in that page.&lt;/p&gt;
&lt;p&gt;We can also generate music album like pages with links to the files in
a compilation subdirectory.&lt;/p&gt;
&lt;p&gt;Accomplished like this in the Makefile.&lt;/p&gt;
&lt;pre class="code Make literal-block"&gt;
&lt;span class="k"&gt;$(&lt;/span&gt;&lt;span class="nv"&gt;COMPILE_RST&lt;/span&gt;&lt;span class="k"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;-p&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;'*.mp3'&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;-s&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;compilations&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;-o&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;album&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;-a&lt;/span&gt;
&lt;/pre&gt;
&lt;p&gt;This would generate - possibly - several album_N.rst files in the
pages/ subdirectory, where N is a sequence number.  You will get as
many pages as there are albums referenced in the m3 files in the
compilations directory.&lt;/p&gt;
&lt;p&gt;Invocations of compile_rst must take place every time the make html
target is requested.&lt;/p&gt;
&lt;p&gt;For example, the bernatchez_staticweb Makefile contains this&lt;/p&gt;
&lt;pre class="code Make literal-block"&gt;
&lt;span class="nf"&gt;html&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt;

    &lt;/span&gt;&lt;span class="k"&gt;$(&lt;/span&gt;COMPILE_RST&lt;span class="k"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;-p&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;'*.mp3'&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;-s&lt;span class="w"&gt; &lt;/span&gt;compilations&lt;span class="w"&gt; &lt;/span&gt;-o&lt;span class="w"&gt; &lt;/span&gt;album&lt;span class="w"&gt; &lt;/span&gt;-a&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="k"&gt;$(&lt;/span&gt;COMPILE_RST&lt;span class="k"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;-p&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;'*.tar.gz'&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;-s&lt;span class="w"&gt; &lt;/span&gt;tarballs&lt;span class="w"&gt; &lt;/span&gt;-o&lt;span class="w"&gt; &lt;/span&gt;tarballs_list&lt;span class="w"&gt; &lt;/span&gt;-i&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="k"&gt;$(&lt;/span&gt;COMPILE_RST&lt;span class="k"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;-p&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;'*.pdf'&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;-s&lt;span class="w"&gt; &lt;/span&gt;sitepdfs&lt;span class="w"&gt; &lt;/span&gt;-o&lt;span class="w"&gt; &lt;/span&gt;pdfs_list&lt;span class="w"&gt; &lt;/span&gt;-i&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="k"&gt;$(&lt;/span&gt;PELICAN&lt;span class="k"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;$(&lt;/span&gt;INPUTDIR&lt;span class="k"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;-o&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;$(&lt;/span&gt;OUTPUTDIR&lt;span class="k"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;-s&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;$(&lt;/span&gt;CONFFILE&lt;span class="k"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;$(&lt;/span&gt;PELICANOPTS&lt;span class="k"&gt;)&lt;/span&gt;
&lt;/pre&gt;
&lt;p&gt;So that content/pages/album_N.rst files and tarballs_list.rst, pdfs_list.rst are
all regenerated prior to invoking pelican to generate the site.&lt;/p&gt;
&lt;div class="section" id="in-short"&gt;
&lt;h2&gt;In short&lt;/h2&gt;
&lt;p&gt;Files tarballs/*.tar.gz , sitepfds/*.pdf, and compilations/*.mp3 as
well as all the .rst files under the content subdirectory determine
what goes into our website.&lt;/p&gt;
&lt;p&gt;At this writing the content is only proof of concept data.&lt;/p&gt;
&lt;/div&gt;
</content><category term="pelican"/><category term="pelican"/><category term="site"/><category term="source"/><category term="organisation"/></entry><entry><title>Captures d'écran de thèmes Pelican</title><link href="https://docs.pelican.bernatchez.net/lang-version.fr/themeexamples-fr.html" rel="alternate"/><published>2024-12-02T17:30:00-05:00</published><updated>2024-12-02T17:30:00-05:00</updated><author><name>Pierre Bernatchez</name></author><id>tag:docs.pelican.bernatchez.net,2024-12-02:/lang-version.fr/themeexamples-fr.html</id><summary type="html">&lt;p class="first last"&gt;Captures D'Écran D'Éxemples De Thème Pelican&lt;/p&gt;
</summary><content type="html">&lt;p&gt;Ordre décroissant de préférence&lt;/p&gt;
&lt;ol class="arabic"&gt;
&lt;li&gt;&lt;p class="first"&gt;lightweight&lt;/p&gt;
&lt;blockquote&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="n"&gt;THEME&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;/home/ubuntu/pelican-themes/lightweight&amp;quot;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;img alt="Example lightweight" src="../images/theme-lightweight.jpg" style="width: 1024px;" /&gt;
&lt;/blockquote&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p class="first"&gt;sneakyidea&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="n"&gt;THEME&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;/home/ubuntu/pelican-themes/sneakyidea&amp;quot;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;img alt="Example sneakyidea" src="../images/theme-sneakyidea.jpg" style="width: 1024px;" /&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p class="first"&gt;basic&lt;/p&gt;
&lt;blockquote&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="n"&gt;THEME&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;/home/ubuntu/pelican-themes/basic&amp;quot;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;img alt="Example basic" src="../images/theme-basic.jpg" style="width: 1024px;" /&gt;
&lt;/blockquote&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;ol class="arabic" start="4"&gt;
&lt;li&gt;&lt;p class="first"&gt;notmyidea-cms&lt;/p&gt;
&lt;blockquote&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="n"&gt;THEME&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;/home/ubuntu/pelican-themes/notmyidea-cms&amp;quot;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;img alt="Example notmyidea-cms" src="../images/theme-notmyidea-cms.jpg" style="width: 1024px;" /&gt;
&lt;/blockquote&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p class="first"&gt;notebook&lt;/p&gt;
&lt;blockquote&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="n"&gt;THEME&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;/home/ubuntu/pelican-themes/notebook&amp;quot;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;img alt="Example notebook" src="../images/theme-notebook.jpg" style="width: 1024px;" /&gt;
&lt;/blockquote&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p class="first"&gt;cebong&lt;/p&gt;
&lt;blockquote&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="n"&gt;THEME&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;/home/ubuntu/pelican-themes/cebong&amp;quot;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;img alt="Example cebong" src="../images/theme-cebong.jpg" style="width: 1024px;" /&gt;
&lt;/blockquote&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;ol class="arabic" start="7"&gt;
&lt;li&gt;&lt;p class="first"&gt;relapse&lt;/p&gt;
&lt;blockquote&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="n"&gt;THEME&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;/home/ubuntu/pelican-themes/relapse&amp;quot;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;img alt="Example relapse" src="../images/theme-relapse.jpg" style="width: 1024px;" /&gt;
&lt;/blockquote&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p class="first"&gt;bold&lt;/p&gt;
&lt;blockquote&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="n"&gt;THEME&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;/home/ubuntu/pelican-themes/bold&amp;quot;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;img alt="Example bold" src="../images/theme-bold.jpg" style="width: 1024px;" /&gt;
&lt;/blockquote&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p class="first"&gt;bootstrap2-dark&lt;/p&gt;
&lt;blockquote&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="n"&gt;THEME&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;/home/ubuntu/pelican-themes/bootstrap2-dark&amp;quot;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;img alt="Example bootstrap2-dark" src="../images/theme-bootstrap2-dark.jpg" style="width: 1024px;" /&gt;
&lt;/blockquote&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;ol class="arabic" start="10"&gt;
&lt;li&gt;&lt;p class="first"&gt;franticworld&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="n"&gt;THEME&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;/home/ubuntu/pelican-themes/franticworld&amp;quot;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;img alt="Example franticworld" src="../images/theme-franticworld.jpg" style="width: 1024px;" /&gt;
&lt;/li&gt;
&lt;/ol&gt;
</content><category term="pelican"/><category term="pelican"/><category term="thème"/><category term="capture d'écran"/></entry><entry><title>Entretien des thèmes</title><link href="https://docs.pelican.bernatchez.net/lang-version.fr/themenote-fr.html" rel="alternate"/><published>2024-12-02T17:30:00-05:00</published><updated>2024-12-02T17:30:00-05:00</updated><author><name>Pierre Bernatchez</name></author><id>tag:docs.pelican.bernatchez.net,2024-12-02:/lang-version.fr/themenote-fr.html</id><summary type="html">&lt;p class="first last"&gt;Entretien de thèmes&lt;/p&gt;
</summary><content type="html">&lt;p&gt;Notes regarding selecting and tweaking pelican themes used with our sites.&lt;/p&gt;
&lt;ol class="arabic simple"&gt;
&lt;li&gt;To be able to use/tweak pelican themes for my pelican projects I
cloned the full collection of pelican themes to my local machine.&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;git&lt;span class="w"&gt; &lt;/span&gt;clone&lt;span class="w"&gt; &lt;/span&gt;--recursive&lt;span class="w"&gt; &lt;/span&gt;https://github.com/getpelican/pelican-themes&lt;span class="w"&gt; &lt;/span&gt;/home/ubuntu/pelican-themes
&lt;/pre&gt;&lt;/div&gt;
&lt;ol class="arabic simple" start="2"&gt;
&lt;li&gt;I then replicated the tree to use as a basis for getting a diff to identify any changes that
I made during the course of tweaking themes I use.&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;cp&lt;span class="w"&gt; &lt;/span&gt;-r&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;HOME&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;/pelican-themes&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;HOME&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;/pelican-themes.orig
chmod&lt;span class="w"&gt; &lt;/span&gt;-w&lt;span class="w"&gt; &lt;/span&gt;--recursive&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;HOME&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;/pelican-themes.orig&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="c1"&gt;# To make my orig write protected for reliable diffs later.&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;ol class="arabic simple" start="3"&gt;
&lt;li&gt;Do this once in a while as we tweak themes we are using, so we can keep a record of our tweaks.&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="nb"&gt;cd&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;HOME&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;/pelican-themes
diff&lt;span class="w"&gt; &lt;/span&gt;-Naru&lt;span class="w"&gt; &lt;/span&gt;../pelican-themes.orig&lt;span class="w"&gt; &lt;/span&gt;.&lt;span class="w"&gt; &lt;/span&gt;&amp;gt;&lt;span class="w"&gt; &lt;/span&gt;../pelican-themes.patch
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Note:&lt;/p&gt;
&lt;blockquote&gt;
&lt;div class="line-block"&gt;
&lt;div class="line"&gt;-N --new-file treat absent files as empty&lt;/div&gt;
&lt;div class="line"&gt;-a --text treat all files as text&lt;/div&gt;
&lt;div class="line"&gt;-r --recursive recursively compare subdirectories&lt;/div&gt;
&lt;div class="line"&gt;-u -U --unified[=NUM] Output NUM lines of unified context (default 3)&lt;/div&gt;
&lt;/div&gt;
&lt;/blockquote&gt;
</content><category term="pelican"/><category term="pelican"/><category term="site"/><category term="thème"/></entry><entry><title>Thèmes Pelican</title><link href="https://docs.pelican.bernatchez.net/lang-version.fr/pelicantheme-fr.html" rel="alternate"/><published>2024-11-18T20:41:00-05:00</published><updated>2024-11-18T20:41:00-05:00</updated><author><name>Pierre Bernatchez</name></author><id>tag:docs.pelican.bernatchez.net,2024-11-18:/lang-version.fr/pelicantheme-fr.html</id><summary type="html">&lt;p class="first last"&gt;Quelques Thèmes Pelican que nous avons essayé&lt;/p&gt;
</summary><content type="html">&lt;ol class="arabic"&gt;
&lt;li&gt;&lt;p class="first"&gt;sneakyidea&lt;/p&gt;
&lt;blockquote&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="n"&gt;THEME&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;/home/ubuntu/pelican-themes/sneakyidea&amp;quot;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;img alt="Example sneakyidea" src="../images/theme-sneakyidea.jpg" style="width: 512px;" /&gt;
&lt;/blockquote&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p class="first"&gt;lightweight&lt;/p&gt;
&lt;blockquote&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="n"&gt;THEME&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;/home/ubuntu/pelican-themes/lightweight&amp;quot;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;img alt="Example lightweight" src="../images/theme-lightweight.jpg" style="width: 512px;" /&gt;
&lt;/blockquote&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p class="first"&gt;basic&lt;/p&gt;
&lt;blockquote&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="n"&gt;THEME&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;/home/ubuntu/pelican-themes/basic&amp;quot;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;img alt="Example basic" src="../images/theme-basic.jpg" style="width: 512px;" /&gt;
&lt;/blockquote&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;ol class="arabic" start="4"&gt;
&lt;li&gt;&lt;p class="first"&gt;notmyidea-cms&lt;/p&gt;
&lt;blockquote&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="n"&gt;THEME&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;/home/ubuntu/pelican-themes/notmyidea-cms&amp;quot;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;img alt="Example notmyidea-cms" src="../images/theme-notmyidea-cms.jpg" style="width: 512px;" /&gt;
&lt;/blockquote&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p class="first"&gt;bold&lt;/p&gt;
&lt;blockquote&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="n"&gt;THEME&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;/home/ubuntu/pelican-themes/bold&amp;quot;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;img alt="Example bold" src="../images/theme-bold.jpg" style="width: 512px;" /&gt;
&lt;/blockquote&gt;
&lt;/li&gt;
&lt;/ol&gt;
</content><category term="pelican"/><category term="générateur web"/><category term="statique"/><category term="pelican"/><category term="thème"/><category term="exemple"/></entry><entry><title>Note de clonage Github</title><link href="https://docs.pelican.bernatchez.net/lang-version.fr/githubclonenote-fr.html" rel="alternate"/><published>2015-03-19T11:47:31-04:00</published><updated>2015-03-19T11:47:31-04:00</updated><author><name>Pierre Bernatchez</name></author><id>tag:docs.pelican.bernatchez.net,2015-03-19:/lang-version.fr/githubclonenote-fr.html</id><summary type="html">&lt;p class="first last"&gt;Étapes à suivre après clonage de mypelican_static_sites&lt;/p&gt;
</summary><content type="html">&lt;p&gt;Si vous venez de cloner le dépôt « mypelican_static_sites »,
vous devez effectuer quelques étapes avant de générer les sites.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Prérequis&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Nos compilations pour les sites gérés ici reposent sur le projet
« flitprojects », qui est également sous contrôle de version dans notre
compte Github. Ce projet utilise des environnements virtuels Python.
Nous supposons donc qu'un environnement virtuel adéquat est configuré,
et que nous avons exécuté flit build et flit install dans celui-ci pour
le paquet « flitprojects/articleware ».&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Étapes de configuration après un nouveau clonage de « mypelican_static_sites »&lt;/strong&gt;&lt;/p&gt;
&lt;ol class="arabic simple"&gt;
&lt;li&gt;Installer les scripts pour générer les versions PDF de tous les articles.
Ces scripts sont générés et ne sont donc pas conservés sous contrôle de version.
Nous utilisons un script bash pour identifier la liste des sous-répertoires de sites
et générer nos scripts dans chacun d'eux.&lt;/li&gt;
&lt;/ol&gt;
&lt;pre class="code bash literal-block"&gt;
allputs.sh&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="c1"&gt;# ceci génère une paire de scripts dans chaque sous-répertoire
# qui contient des fichiers .rst d'articles.&lt;/span&gt;
&lt;/pre&gt;
&lt;ol class="arabic simple" start="2"&gt;
&lt;li&gt;Une fois les scripts générés, nous devons produire tous les fichiers .pdf.
Pour ce faire, on accède à l'un des sous-répertoires de site
et on utilise make pour générer les fichiers .pdf.&lt;/li&gt;
&lt;/ol&gt;
&lt;pre class="code bash literal-block"&gt;
&lt;span class="nb"&gt;cd&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;www.bernatchez.net&lt;span class="w"&gt;
&lt;/span&gt;make&lt;span class="w"&gt; &lt;/span&gt;pdfs
&lt;/pre&gt;
&lt;ol class="arabic simple" start="3"&gt;
&lt;li&gt;Générez vos versions locales des sites afin de
vérifier qu'elles sont prêtes à être publiées.&lt;/li&gt;
&lt;/ol&gt;
&lt;pre class="code bash literal-block"&gt;
&lt;span class="nb"&gt;cd&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;www.bernatchez.net&lt;span class="w"&gt;
&lt;/span&gt;make&lt;span class="w"&gt; &lt;/span&gt;html&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="nb"&gt;cd&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;..&lt;span class="w"&gt;

&lt;/span&gt;&lt;span class="nb"&gt;cd&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;blog.bernatchez.net&lt;span class="w"&gt;
&lt;/span&gt;make&lt;span class="w"&gt; &lt;/span&gt;html&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="nb"&gt;cd&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;..&lt;span class="w"&gt;

&lt;/span&gt;&lt;span class="nb"&gt;cd&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;www.ogopogo.biz&lt;span class="w"&gt;
&lt;/span&gt;make&lt;span class="w"&gt; &lt;/span&gt;html&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="nb"&gt;cd&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;..&lt;span class="w"&gt;

&lt;/span&gt;&lt;span class="nb"&gt;cd&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;docs.pelican.bernatchez.net&lt;span class="w"&gt;
&lt;/span&gt;make&lt;span class="w"&gt; &lt;/span&gt;html&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="nb"&gt;cd&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;..
&lt;/pre&gt;
&lt;ol class="arabic simple" start="4"&gt;
&lt;li&gt;Générez les versions publiables de vos sites et publiez-les.&lt;/li&gt;
&lt;/ol&gt;
&lt;pre class="code bash literal-block"&gt;
&lt;span class="nb"&gt;cd&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;www.bernatchez.net&lt;span class="w"&gt;
&lt;/span&gt;make&lt;span class="w"&gt; &lt;/span&gt;pubhtml&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="nb"&gt;cd&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;..&lt;span class="w"&gt;

&lt;/span&gt;&lt;span class="nb"&gt;cd&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;blog.bernatchez.net&lt;span class="w"&gt;
&lt;/span&gt;make&lt;span class="w"&gt; &lt;/span&gt;pubhtml&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="nb"&gt;cd&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;..&lt;span class="w"&gt;

&lt;/span&gt;&lt;span class="nb"&gt;cd&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;www.ogopogo.biz&lt;span class="w"&gt;
&lt;/span&gt;make&lt;span class="w"&gt; &lt;/span&gt;pubhtml&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="nb"&gt;cd&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;..&lt;span class="w"&gt;

&lt;/span&gt;&lt;span class="c1"&gt;# Utiliser uniquement la version système de fichiers pour celui-ci, ne pas générer.
# Nous ne maintenons pas le site avec le CDS bunny.
&lt;/span&gt;&lt;span class="nb"&gt;cd&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;docs.pelican.bernatchez.net&lt;span class="w"&gt; &lt;/span&gt;site&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="nb"&gt;echo&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;'Nous ne maintenons pas le site &amp;quot;docs.pelican.bernatchez.net&amp;quot; avec le CDS bunny.'&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="nb"&gt;cd&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;..
&lt;/pre&gt;
&lt;ol class="arabic simple" start="5"&gt;
&lt;li&gt;L'utilisation de make avec « pubhtml » génère des URL en ligne dans de nombreux
liens du contenu. Cela est incompatible avec le contenu généré par make « html »,
dont les liens doivent tous être relatifs au système de fichiers. Cela signifie que
le contenu sur le système de fichiers local n'est plus valide immédiatement après
la génération du contenu « pubhtml ». Nous devons donc relancer make « html »
une fois le contenu publié afin de rétablir le contenu local dans son état correct.&lt;/li&gt;
&lt;/ol&gt;
&lt;pre class="code bash literal-block"&gt;
&lt;span class="nb"&gt;cd&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;www.bernatchez.net&lt;span class="w"&gt;
&lt;/span&gt;make&lt;span class="w"&gt; &lt;/span&gt;html&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="nb"&gt;cd&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;..&lt;span class="w"&gt;

&lt;/span&gt;&lt;span class="nb"&gt;cd&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;blog.bernatchez.net&lt;span class="w"&gt;
&lt;/span&gt;make&lt;span class="w"&gt; &lt;/span&gt;html&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="nb"&gt;cd&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;..&lt;span class="w"&gt;

&lt;/span&gt;&lt;span class="nb"&gt;cd&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;www.ogopogo.biz&lt;span class="w"&gt;
&lt;/span&gt;make&lt;span class="w"&gt; &lt;/span&gt;html&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="nb"&gt;cd&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;..
&lt;/pre&gt;
</content><category term="pelican"/><category term="github"/><category term="cloner"/><category term="comment faire"/></entry><entry><title>Dépannage de la Génération de Site</title><link href="https://docs.pelican.bernatchez.net/lang-version.fr/troubleshoot-fr.html" rel="alternate"/><published>2015-03-19T11:47:31-04:00</published><updated>2015-03-19T11:47:31-04:00</updated><author><name>Pierre Bernatchez</name></author><id>tag:docs.pelican.bernatchez.net,2015-03-19:/lang-version.fr/troubleshoot-fr.html</id><summary type="html">&lt;p class="first last"&gt;Problèmes liés à la création de ce site&lt;/p&gt;
</summary><content type="html">&lt;p&gt;I intend to keep adding to this note as further issues crop up and workarounds
are discoverd.&lt;/p&gt;
&lt;dl class="docutils"&gt;
&lt;dt&gt;1-  I found that when we use the same slug for different language versions of the same article.&lt;/dt&gt;
&lt;dd&gt;&lt;p class="first"&gt;pelican does a nice job of picking out the current default language's version for the site.
When no version exists which matches the current default language, then pelican emits warnings
and/or errors regarding the other language versions.&lt;/p&gt;
&lt;p&gt;The work around is to always make sure you have all the language versions you are supporting, or
just a single one.  When that is the case it seems to behave adequately.&lt;/p&gt;
&lt;p class="last"&gt;It seems sensible to translate attribute values too, other than slug of course.&lt;/p&gt;
&lt;/dd&gt;
&lt;/dl&gt;
</content><category term="pelican"/><category term="dépannage"/></entry><entry><title>Articles du site en format PDF</title><link href="https://docs.pelican.bernatchez.net/lang-version.fr/pdfdoclist-fr.html" rel="alternate"/><published>2015-03-11T12:47:00-04:00</published><updated>2015-03-11T12:47:00-04:00</updated><author><name>Pierre Bernatchez</name></author><id>tag:docs.pelican.bernatchez.net,2015-03-11:/lang-version.fr/pdfdoclist-fr.html</id><summary type="html">&lt;p class="first last"&gt;Articles du site en format PDF&lt;/p&gt;
</summary><content type="html">&lt;p&gt;&lt;strong&gt;En format PDF&lt;/strong&gt;&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;a class="reference external" href="../sitepdfs/about-fr.pdf"&gt;about-fr.pdf&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="reference external" href="../sitepdfs/article-meta-fr.pdf"&gt;article-meta-fr.pdf&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="reference external" href="../sitepdfs/articlestarter-fr.pdf"&gt;articlestarter-fr.pdf&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="reference external" href="../sitepdfs/clonenote-fr.pdf"&gt;clonenote-fr.pdf&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="reference external" href="../sitepdfs/contacts-fr.pdf"&gt;contacts-fr.pdf&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="reference external" href="../sitepdfs/newbunny-fr.pdf"&gt;newbunny-fr.pdf&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="reference external" href="../sitepdfs/newsite-fr.pdf"&gt;newsite-fr.pdf&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="reference external" href="../sitepdfs/pagefit-fr.pdf"&gt;pagefit-fr.pdf&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="reference external" href="../sitepdfs/patchhowto-fr.pdf"&gt;patchhowto-fr.pdf&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="reference external" href="../sitepdfs/pdfdocs-fr.pdf"&gt;pdfdocs-fr.pdf&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="reference external" href="../sitepdfs/pelicansetup-fr.pdf"&gt;pelicansetup-fr.pdf&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="reference external" href="../sitepdfs/pelicantheme-fr.pdf"&gt;pelicantheme-fr.pdf&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="reference external" href="../sitepdfs/personal-pypi-fr.pdf"&gt;personal-pypi-fr.pdf&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="reference external" href="../sitepdfs/privatepypi-fr.pdf"&gt;privatepypi-fr.pdf&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="reference external" href="../sitepdfs/project-readme-fr.pdf"&gt;project-readme-fr.pdf&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="reference external" href="../sitepdfs/sourceorg-fr.pdf"&gt;sourceorg-fr.pdf&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="reference external" href="../sitepdfs/themeexamples-fr.pdf"&gt;themeexamples-fr.pdf&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="reference external" href="../sitepdfs/themenote-fr.pdf"&gt;themenote-fr.pdf&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="reference external" href="../sitepdfs/themereadme-fr.pdf"&gt;themereadme-fr.pdf&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="reference external" href="../sitepdfs/troubleshoot-fr.pdf"&gt;troubleshoot-fr.pdf&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="reference external" href="../sitepdfs/venv-fr.pdf"&gt;venv-fr.pdf&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="reference external" href="../sitepdfs/venvwrap-fr.pdf"&gt;venvwrap-fr.pdf&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="reference external" href="../sitepdfs/virtualenv-fr.pdf"&gt;virtualenv-fr.pdf&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="reference external" href="../sitepdfs/welcome-fr.pdf"&gt;welcome-fr.pdf&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content><category term="Articles en PDF"/><category term="PDF"/><category term="documents"/></entry></feed>