Extension runblock
¶
Je teste ici la fonctionnalité « expérimentale » de Sphinx,
l’extension autorun, qui donne une directive .. runblock::
,
qui permet d’exécuter du code lors de la génération de la page web.
Voir aussi
Pour une liste d’extensions Sphinx utiles, cette page donne un bonne idée de ce qui existe (en anglais).
Exemples¶
pycon¶
La première directive est ..runblock:: pycon
.
Elle fait appel au langage Python,
mais utilise la syntaxe d’une session interactive de l’intérpreteur.
Par exemple, le code suivant :
.. runblock:: pycon
>>> for i in range(5):
… print(i)
produira la sortie suivante :
0
1
2
3
4
On peut aussi vérifier la version de Python utilisée par l’extension :
2.7.18 (default, Jul 1 2022, 12:27:04)
[GCC 9.4.0]
Cette directive .. runblock:: pycon
est intéressante, pour donner des exemples et de courtes démonstrations, dans des tutoriels ou de la documentation par exemple.
Mais, cette extension runcode permet aussi de faire plus !
Exemples plus intéressants¶
.. runblock:: console
¶
Cette directive accepte la syntaxe d’un shell (sh
classique) ou de Bash, où le code est précédé d’un symbole *$ *.
Par exemple, la date courante et le dossier de travail courant :
$ echo "Date : $(date). Dossier : $(pwd)."
Date : sam. 17 févr. 2024 13:14:23 CET. Dossier : /home/lilian/web-sphinx.
Ou bien une liste des fichiers reStructuredText (.rst
, sources de chaque de ces pages web) dans le dossier courant :
$ ls -larth ./{,.}*.rst
-rw-r--r-- 1 lilian lilian 650 janv. 30 2017 ./.javascript.fr.rst
-rw-r--r-- 1 lilian lilian 578 janv. 30 2017 ./.javascript.en.rst
lrwxrwxrwx 1 lilian lilian 22 juin 16 2020 ./admin.rst -> /home/lilian/admin.rst
-rw-r--r-- 1 lilian lilian 739 févr. 8 2021 ./.special.rst
-rw-r--r-- 1 lilian lilian 12K mars 14 2021 ./.blagues.rst
-rw-r--r-- 1 lilian lilian 2,4K avril 12 2021 ./404.rst
-rw-r--r-- 1 lilian lilian 2,4K avril 12 2021 ./403.rst
-rw-r--r-- 1 lilian lilian 8,7K avril 12 2021 ./affaires-voyage.fr.rst
-rw-r--r-- 1 lilian lilian 1,8K avril 12 2021 ./ace.rst
-rw-r--r-- 1 lilian lilian 2,5K avril 12 2021 ./ace2.rst
-rw-r--r-- 1 lilian lilian 8,8K avril 12 2021 ./A953.rst
-rw-r--r-- 1 lilian lilian 12K avril 12 2021 ./beacon.en.rst
-rw-r--r-- 1 lilian lilian 8,6K avril 12 2021 ./avoir.rst
-rw-r--r-- 1 lilian lilian 6,4K avril 12 2021 ./apprendre-python.fr.rst
-rw-r--r-- 1 lilian lilian 14K avril 12 2021 ./apk.fr.rst
-rw-r--r-- 1 lilian lilian 12K avril 12 2021 ./apk.en.rst
-rw-r--r-- 1 lilian lilian 2,2K avril 12 2021 ./blagues.fr.rst
-rw-r--r-- 1 lilian lilian 3,8K avril 12 2021 ./bitbucket-features.fr.rst
-rw-r--r-- 1 lilian lilian 3,7K avril 12 2021 ./bitbucket-features.en.rst
-rw-r--r-- 1 lilian lilian 15K avril 12 2021 ./bin.fr.rst
-rw-r--r-- 1 lilian lilian 15K avril 12 2021 ./bin.en.rst
-rw-r--r-- 1 lilian lilian 11K avril 12 2021 ./beacon.fr.rst
-rw-r--r-- 1 lilian lilian 18K avril 12 2021 ./blog-roll.fr.rst
-rw-r--r-- 1 lilian lilian 18K avril 12 2021 ./blog-roll.en.rst
-rw-r--r-- 1 lilian lilian 23K avril 12 2021 ./cv.en.rst
-rw-r--r-- 1 lilian lilian 4,3K avril 12 2021 ./cookies.fr.rst
-rw-r--r-- 1 lilian lilian 3,0K avril 12 2021 ./cookies.en.rst
-rw-r--r-- 1 lilian lilian 19K avril 12 2021 ./conseils-visio.en.rst
-rw-r--r-- 1 lilian lilian 24K avril 12 2021 ./conseils-email.en.rst
-rw-r--r-- 1 lilian lilian 4,0K avril 12 2021 ./ga.en.rst
-rw-r--r-- 1 lilian lilian 3,6K avril 12 2021 ./freedns.rst
-rw-r--r-- 1 lilian lilian 2,1K avril 12 2021 ./folders.rst
-rw-r--r-- 1 lilian lilian 21K avril 12 2021 ./firefox-extensions.fr.rst
-rw-r--r-- 1 lilian lilian 19K avril 12 2021 ./firefox-extensions.en.rst
-rw-r--r-- 1 lilian lilian 15K avril 12 2021 ./demo.rst
-rw-r--r-- 1 lilian lilian 3,9K avril 12 2021 ./data-analysis-of-2-years-of-sms-2016-2017.fr.rst
-rw-r--r-- 1 lilian lilian 3,5K avril 12 2021 ./data-analysis-of-2-years-of-sms-2016-2017.en.rst
-rw-r--r-- 1 lilian lilian 4,5K avril 12 2021 ./iteri.fr.rst
-rw-r--r-- 1 lilian lilian 4,8K avril 12 2021 ./iteri.en.rst
-rw-r--r-- 1 lilian lilian 9,7K avril 12 2021 ./graph.fr.rst
-rw-r--r-- 1 lilian lilian 9,5K avril 12 2021 ./graph.en.rst
-rw-r--r-- 1 lilian lilian 11K avril 12 2021 ./gnuplot.rst
-rw-r--r-- 1 lilian lilian 7,3K avril 12 2021 ./gnuplot_embed.rst
-rw-r--r-- 1 lilian lilian 4,0K avril 12 2021 ./ga.fr.rst
-rw-r--r-- 1 lilian lilian 684 avril 12 2021 ./my-favorite-tools.en.rst
-rw-r--r-- 1 lilian lilian 3,6K avril 12 2021 ./mount.fr.rst
-rw-r--r-- 1 lilian lilian 3,1K avril 12 2021 ./mount.en.rst
-rw-r--r-- 1 lilian lilian 5,0K avril 12 2021 ./mes-chansons-preferees.fr.rst
-rw-r--r-- 1 lilian lilian 5,1K avril 12 2021 ./matlab-clones.fr.rst
-rw-r--r-- 1 lilian lilian 4,6K avril 12 2021 ./matlab-clones.en.rst
-rw-r--r-- 1 lilian lilian 6,1K avril 12 2021 ./math.rst
-rw-r--r-- 1 lilian lilian 6,0K avril 12 2021 ./learn-python.en.rst
-rw-r--r-- 1 lilian lilian 3,0K avril 12 2021 ./latexonwindows.fr.rst
-rw-r--r-- 1 lilian lilian 3,0K avril 12 2021 ./latexonwindows.en.rst
-rw-r--r-- 1 lilian lilian 4,9K avril 12 2021 ./js.fr.rst
-rw-r--r-- 1 lilian lilian 4,5K avril 12 2021 ./js.en.rst
-rw-r--r-- 1 lilian lilian 1,3K avril 12 2021 ./jokes.en.rst
-rw-r--r-- 1 lilian lilian 6,8K avril 12 2021 ./jitsi.fr.rst
-rw-r--r-- 1 lilian lilian 6,2K avril 12 2021 ./jitsi.en.rst
-rw-r--r-- 1 lilian lilian 4,4K avril 12 2021 ./packing.en.rst
-rw-r--r-- 1 lilian lilian 8,4K avril 12 2021 ./opendns.fr.rst
-rw-r--r-- 1 lilian lilian 7,8K avril 12 2021 ./opendns.en.rst
-rw-r--r-- 1 lilian lilian 3,9K avril 12 2021 ./online-gnu-octave.fr.rst
-rw-r--r-- 1 lilian lilian 3,6K avril 12 2021 ./online-gnu-octave.en.rst
-rw-r--r-- 1 lilian lilian 23K avril 12 2021 ./old_apk.fr.rst
-rw-r--r-- 1 lilian lilian 21K avril 12 2021 ./old_apk.en.rst
-rw-r--r-- 1 lilian lilian 4,2K avril 12 2021 ./ocaml.fr.rst
-rw-r--r-- 1 lilian lilian 4,2K avril 12 2021 ./ocaml.en.rst
-rw-r--r-- 1 lilian lilian 5,7K avril 12 2021 ./ocaml_ace.rst
-rw-r--r-- 1 lilian lilian 16K avril 12 2021 ./NanoSyntax.rst
-rw-r--r-- 1 lilian lilian 14K avril 12 2021 ./recherche.fr.rst
-rw-r--r-- 1 lilian lilian 9,1K avril 12 2021 ./README.rst
-rw-r--r-- 1 lilian lilian 8,5K avril 12 2021 ./python.rst
-rw-r--r-- 1 lilian lilian 19K avril 12 2021 ./publis.fr.rst
-rw-r--r-- 1 lilian lilian 19K avril 12 2021 ./publis.en.rst
-rw-r--r-- 1 lilian lilian 1,3K avril 12 2021 ./plume-air-paris.fr.rst
-rw-r--r-- 1 lilian lilian 1,2K avril 12 2021 ./plume-air-paris.en.rst
-rw-r--r-- 1 lilian lilian 7,6K avril 12 2021 ./pgp.fr.rst
-rw-r--r-- 1 lilian lilian 4,7K avril 12 2021 ./pgp.en.rst
-rw-r--r-- 1 lilian lilian 12K avril 12 2021 ./pair-programming-tools.fr.rst
-rw-r--r-- 1 lilian lilian 3,4K avril 12 2021 ./pair-programming-tools.en.rst
-rw-r--r-- 1 lilian lilian 6,7K avril 12 2021 ./runblock.en.rst
-rw-r--r-- 1 lilian lilian 133K avril 12 2021 ./rules-and-principles.en.rst
-rw-r--r-- 1 lilian lilian 1,6K avril 12 2021 ./rss.rst
-rw-r--r-- 1 lilian lilian 12K avril 12 2021 ./resume-de-mon-annee-2019.rst
-rw-r--r-- 1 lilian lilian 16K avril 12 2021 ./resume-de-mon-annee-2018.rst
-rw-r--r-- 1 lilian lilian 11K avril 12 2021 ./resume-de-mon-annee-2017.rst
-rw-r--r-- 1 lilian lilian 13K avril 12 2021 ./research.en.rst
-rw-r--r-- 1 lilian lilian 5,4K avril 12 2021 ./star-wars.fr.rst
-rw-r--r-- 1 lilian lilian 6,1K avril 12 2021 ./star-wars.en.rst
-rw-r--r-- 1 lilian lilian 3,5K avril 12 2021 ./sphinxtabs.fr.rst
-rw-r--r-- 1 lilian lilian 3,3K avril 12 2021 ./sphinxtabs.en.rst
-rw-r--r-- 1 lilian lilian 23K avril 12 2021 ./slides.rst
-rw-r--r-- 1 lilian lilian 12K avril 12 2021 ./skulpt.rst
-rw-r--r-- 1 lilian lilian 562 avril 12 2021 ./sitemap.fr.rst
-rw-r--r-- 1 lilian lilian 512 avril 12 2021 ./sitemap.en.rst
-rw-r--r-- 1 lilian lilian 908 avril 12 2021 ./self-quantified.fr.rst
-rw-r--r-- 1 lilian lilian 16K avril 12 2021 ./self-quantified.en.rst
-rw-r--r-- 1 lilian lilian 6,9K avril 12 2021 ./runblock.fr.rst
-rw-r--r-- 1 lilian lilian 1,7K avril 12 2021 ./todo.rst
-rw-r--r-- 1 lilian lilian 2,7K avril 12 2021 ./time.rst
-rw-r--r-- 1 lilian lilian 32K avril 12 2021 ./sublimetext.fr.rst
-rw-r--r-- 1 lilian lilian 29K avril 12 2021 ./sublimetext.en.rst
-rw-r--r-- 1 lilian lilian 8,1K avril 12 2021 ./stats-google-analytics.fr.rst
-rw-r--r-- 1 lilian lilian 8,6K avril 12 2021 ./stats-google-analytics.en.rst
-rw-r--r-- 1 lilian lilian 26K avril 12 2021 ./tutogit.fr.rst
-rw-r--r-- 1 lilian lilian 25K avril 12 2021 ./tutogit.en.rst
-rw-r--r-- 1 lilian lilian 6,0K avril 12 2021 ./try-ocaml.fr.rst
-rw-r--r-- 1 lilian lilian 6,0K avril 12 2021 ./try-ocaml.en.rst
-rw-r--r-- 1 lilian lilian 9,3K avril 12 2021 ./transifex.fr.rst
-rw-r--r-- 1 lilian lilian 8,0K avril 12 2021 ./transifex.en.rst
-rw-r--r-- 1 lilian lilian 9,8K avril 12 2021 ./trademarks.rst
-rw-r--r-- 1 lilian lilian 19K avril 12 2021 ./top10.fr.rst
-rw-r--r-- 1 lilian lilian 25K avril 12 2021 ./wakatime.fr.rst
-rw-r--r-- 1 lilian lilian 24K avril 12 2021 ./wakatime.en.rst
-rw-r--r-- 1 lilian lilian 7,8K avril 12 2021 ./vpn.fr.rst
-rw-r--r-- 1 lilian lilian 23K avril 12 2021 ./visualstudiocode.fr.rst
-rw-r--r-- 1 lilian lilian 20K avril 12 2021 ./visualstudiocode.en.rst
-rw-r--r-- 1 lilian lilian 2,7K avril 12 2021 ./zotero.fr.rst
-rw-r--r-- 1 lilian lilian 2,6K avril 12 2021 ./zotero.en.rst
-rw-r--r-- 1 lilian lilian 8,9K avril 12 2021 ./wolfram.fr.rst
-rw-r--r-- 1 lilian lilian 8,9K avril 12 2021 ./wolfram.en.rst
-rw-r--r-- 1 lilian lilian 3,8K avril 12 2021 ./whatsnew.fr.rst
-rw-r--r-- 1 lilian lilian 3,7K avril 12 2021 ./whatsnew.en.rst
lrwxrwxrwx 1 lilian lilian 19 avril 12 2021 ./teaching.fr.rst -> enseignement.fr.rst
lrwxrwxrwx 1 lilian lilian 16 avril 12 2021 ./research.fr.rst -> recherche.fr.rst
lrwxrwxrwx 1 lilian lilian 15 avril 12 2021 ./recherche.en.rst -> research.en.rst
lrwxrwxrwx 1 lilian lilian 22 avril 12 2021 ./packing.fr.rst -> affaires-voyage.fr.rst
lrwxrwxrwx 1 lilian lilian 26 avril 12 2021 ./my-favorite-tools.fr.rst -> mes-outils-preferes.fr.rst
lrwxrwxrwx 1 lilian lilian 24 avril 12 2021 ./mes-outils-preferes.en.rst -> my-favorite-tools.en.rst
lrwxrwxrwx 1 lilian lilian 23 avril 12 2021 ./learn-python.fr.rst -> apprendre-python.fr.rst
lrwxrwxrwx 1 lilian lilian 14 avril 12 2021 ./jokes.fr.rst -> blagues.fr.rst
lrwxrwxrwx 1 lilian lilian 15 avril 12 2021 ./hitch-hiking.fr.rst -> autostop.fr.rst
lrwxrwxrwx 1 lilian lilian 15 avril 12 2021 ./enseignement.en.rst -> teaching.en.rst
lrwxrwxrwx 1 lilian lilian 30 avril 12 2021 ./ce-que-je-regarde-sur-youtube.en.rst -> what-i-watch-on-youtube.en.rst
lrwxrwxrwx 1 lilian lilian 12 avril 12 2021 ./blagues.en.rst -> jokes.en.rst
lrwxrwxrwx 1 lilian lilian 19 avril 12 2021 ./autostop.en.rst -> hitch-hiking.en.rst
lrwxrwxrwx 1 lilian lilian 19 avril 12 2021 ./apprendre-python.en.rst -> learn-python.en.rst
lrwxrwxrwx 1 lilian lilian 14 avril 12 2021 ./affaires-voyage.en.rst -> packing.en.rst
lrwxrwxrwx 1 lilian lilian 36 avril 12 2021 ./what-i-watch-on-youtube.fr.rst -> ce-que-je-regarde-sur-youtube.fr.rst
-rw-r--r-- 1 lilian lilian 21K avril 13 2021 ./teaching.en.rst
-rw-r--r-- 1 lilian lilian 5,0K avril 13 2021 ./coronavirus.en.rst
-rw-r--r-- 1 lilian lilian 61K avril 13 2021 ./top10.en.rst
-rw-r--r-- 1 lilian lilian 2,2K avril 14 2021 ./twitch.en.rst
-rw-r--r-- 1 lilian lilian 9,2K avril 14 2021 ./pokemon.en.rst
-rw-r--r-- 1 lilian lilian 8,6K avril 14 2021 ./pokemon.fr.rst
-rw-r--r-- 1 lilian lilian 3,1K avril 14 2021 ./twitch.fr.rst
-rw-r--r-- 1 lilian lilian 16K avril 18 2021 ./journal-de-bord-pendant-confinement-coronavirus-2020.fr.rst
-rw-r--r-- 1 lilian lilian 23K mai 6 2021 ./coronavirus.fr.rst
-rw-r--r-- 1 lilian lilian 9,2K nov. 23 2022 ./hitch-hiking.en.rst
-rw-r--r-- 1 lilian lilian 11K nov. 23 2022 ./autostop.fr.rst
-rw-r--r-- 1 lilian lilian 26K févr. 21 2023 ./cv.fr.rst
-rw-r--r-- 1 lilian lilian 27K févr. 21 2023 ./conseils-email.fr.rst
-rw-r--r-- 1 lilian lilian 11K févr. 21 2023 ./vieprivee.rst
-rw-r--r-- 1 lilian lilian 21K févr. 21 2023 ./conseils-visio.fr.rst
-rw-r--r-- 1 lilian lilian 32K févr. 21 2023 ./a-faire-avant-30-ans.rst
-rw-r--r-- 1 lilian lilian 7,4K févr. 28 2023 ./resume-de-mon-annee-2022.rst
-rw-r--r-- 1 lilian lilian 38K mai 30 2023 ./what-i-watch-on-youtube.en.rst
-rw-r--r-- 1 lilian lilian 39K mai 30 2023 ./ce-que-je-regarde-sur-youtube.fr.rst
-rw-r--r-- 1 lilian lilian 6,9K août 26 23:21 ./callme.fr.rst
-rw-r--r-- 1 lilian lilian 6,5K août 26 23:23 ./callme.en.rst
-rw-r--r-- 1 lilian lilian 14K août 29 13:00 ./index.en.rst
-rw-r--r-- 1 lilian lilian 21K oct. 11 12:31 ./enseignement.fr.rst
-rw-r--r-- 1 lilian lilian 30K oct. 11 12:35 ./mes-outils-preferes.fr.rst
-rw-r--r-- 1 lilian lilian 16K oct. 11 17:08 ./resume-de-mon-annee-2020.rst
-rw-r--r-- 1 lilian lilian 19K oct. 11 17:13 ./resume-de-mon-annee-2021.rst
-rw-r--r-- 1 lilian lilian 11K févr. 17 13:01 ./resume-de-mon-annee-2023.rst
-rw-r--r-- 1 lilian lilian 6,0K févr. 17 13:09 ./resume-de-mon-annee-2024.rst
-rw-r--r-- 1 lilian lilian 14K févr. 17 13:11 ./index.fr.rst
On peut chercher les 10 plus long noms de fichiers (parmi les fichiers reStructuredText) dans le dossier courant :
$ for i in $(find -iname '*'.rst | sort); do echo "${#i} : $i" | sed s/'^\([0-9]\) '/'0\1 '/; done | sort | tail | awk '{ print $3 }'
./pair-programming-tools.fr.rst
./stats-google-analytics.en.rst
./stats-google-analytics.fr.rst
./what-i-watch-on-youtube.en.rst
./what-i-watch-on-youtube.fr.rst
./ce-que-je-regarde-sur-youtube.en.rst
./ce-que-je-regarde-sur-youtube.fr.rst
./data-analysis-of-2-years-of-sms-2016-2017.en.rst
./data-analysis-of-2-years-of-sms-2016-2017.fr.rst
./journal-de-bord-pendant-confinement-coronavirus-2020.fr.rst
Ou bien encore, on peut réaliser une signature GPG (à la volée) du fichier courant (pour plus d’infos sur GPG, voir pgp.html) :
$ gpg --quiet -o - --armor --detach-sign runblock.fr.rst
-----BEGIN PGP SIGNATURE-----
iQIzBAABCgAdFiEE/DSleRq5aEZtX0W7LaPXUOHniXEFAmXQoyAACgkQLaPXUOHn
iXEc9A//dSyowAqAWF5DqgWDWcde55umBZkmNz3oq53yFVvc1fvKj6A6p/NkJaTB
A79SE8FZPqD+3zwX8oFeqB8W2bHXbIsmxF2rHR0+IVd697/NBYSTa+6r7DkNf7f+
shnh0uDVHPtNXkgPgw+xm0MKzFUXBi3r0TaGur6OstDg2At4j+pekZwGMfbyrTKJ
jz8x3vBimw3z2r4w7qjrCysl6PicG5QHKJPNoJkAQkalbSFBjF15Ux+vTgWf5b3j
qSGWNZpPxq/UnjxPYrVU4HdB35BGeOTGSrqOpdXBFus2eTfIGGQ42U19MD9AhJli
8cqL7UepxmZIMhRzyUfrKWW7BYhyWsZ3p97nOql9N2xlzev9MGSYxAoqCQ+bULUM
EomOyPMOvsb3e2YqIFfEO7iBIlFCfVRr2LUc03luVl1ocK5x+0drjR5sqm3JDyNS
pa5TUT73qDfflnczmOTAvAJZes3fefZf9hEJFhxUakT53N4Uw0CKmJIgu5agWVs5
SRVCibkw2LoLWiCxjAhZXoIDo/bbiLwjdPefnamOOA7XFxX3HgIwpemVBkh3OFN1
8dwNsyDQUjOjzHDhLF/rGUH/t5+LAcj9PKdUcw/3Oqt1XLUOjPKGfRVKu81X+K0W
qgDubJDsH1L1v6DXqT8HwjOJosfURLBin4BnA9XpTa2bgdjwvuA=
=lbuc
-----END PGP SIGNATURE-----
Autres exemples divers¶
figlet pour afficher du texte en ASCII art :
$ figlet "C'est joli non ?"
____ _ _ _ _ _ ___
/ ___( ) ___ ___| |_ (_) ___ | (_) _ __ ___ _ __ |__ \
| | |/ / _ \/ __| __| | |/ _ \| | | | '_ \ / _ \| '_ \ / /
| |___ | __/\__ \ |_ | | (_) | | | | | | | (_) | | | | |_|
\____| \___||___/\__| _/ |\___/|_|_| |_| |_|\___/|_| |_| (_)
|__/
Mon script bin/series.sh permet de lire automatiquement l’épisode suivant d’une série télé, et utilise un fichier ~/current pour savoir quel dossier lire. On peut s’en servir pour afficher quelle série télé je regarde en ce moment :
$ echo -e "En ce moment, je regarde la série $(basename "$(cat /home/lilian/current | tr _ ' ')") :)"
En ce moment, je regarde la série The Dragon Prince :)
État du dépôt git (montre quels fichiers sont nouveaux (N), modifiés (M) ou supprimés (D)) :
$ git status --porcelain
Un truc débile avec un élan (cf. Bohort : « Non, moi ça m’évoque plutôt un élan » via publis/.quotes.txt) :
$ cowthink -W 160 -f /usr/share/cowsay/cows/moose.cow "Et vous trouvez ça drôle ?"
____________________________
( Et vous trouvez ça drôle ? )
----------------------------
o
o \_\_ _/_/
o \__/
(oo)\_______
(__)\ )\/\
||----w |
|| ||
On peut essayer une idée encore plus folle, afficher une image en texte ASCII :
$ convert ~/.link.ico jpg:- | jp2a -b - --size=31x20
+-------------------------------+
|MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM|
|MMMMMMMMMMWNNNNNNNNWMMMMMMMMMMM|
|MMMMMMMMMNk'.......ONNWMMMMMMMM|
|MMMMMMMWNc.;::;cxl;'..xWMMMMMMM|
|MMMMMWKl.';;lkkxc,'oxd;'dXXNMMM|
|MMMMNd.'::;.'::;.c0Ox:. .lWMM|
|MMMN;.::c..dl .xOko, ....xNMMM|
|MMMWd,;:c..kkc. ;;'. .okkKWMMMM|
|MMMMMX:';..x00, .l0..Oc..'XMMMM|
|MMMMMMW0: .dO0,.k00,,kkkc'KMMMM|
|MMMMMMMMW: ,ck'.xkkxo;;;dNWMMMM|
|MMMMMMMMW; ..,. ,;;;' lMMMMMMMM|
|MMMMMMW0d,.:' .,,. .. lMMMMMMMM|
|MMMMMMWl 'cc' l0Kc :: lMMMMMMMM|
|MMMMMMMo .,,. ;oo, ll lMMMMMMMM|
|MMMMMMMO:. ',,,,,. .. lMMMMMMMM|
|MMMMMMNko. ;ccccc' ;ONMMMMMM|
|MMMMMMNdcllodddxxxkOO0KKNMMMMMM|
|MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM|
|MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM|
+-------------------------------+
Et la même en plus gros (au fait, cette image est l’icone de ce site web) :
$ convert ~/.link.ico jpg:- | jp2a -b - --size=62x30
+--------------------------------------------------------------+
|MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM|
|MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM|
|MMMMMMMMMMMMMMMMMMMMMWXKKKKKKKKKKKKKKKNMMMMMMMMMMMMMMMMMMMMMMM|
|MMMMMMMMMMMMMMMMMMMWNO;...............xMMMMMMMMMMMMMMMMMMMMMMM|
|MMMMMMMMMMMMMMMMMWKoc:'........';;,'.'cdddddOWMMMMMMMMMMMMMMMM|
|MMMMMMMMMMMMMMN0Ox:...;cclooooodxkxc,,,'...':xO0XWMMMMMMMMMMMM|
|MMMMMMMMMMMMWXl. .;cccclx00000klc;. c0000Ko. :KWWMWWMMMMMMM|
|MMMMMMMMMMWOc,'''',:c:'.'cdddddc'.':lok00kdd: .:ccc:c0MMMMMM|
|MMMMMMMMWKx;..'ccc:;;,...,;;;;;'..'xK00OOo;;' ..dWMMMMM|
|MMMMMMMNd..':;:ccc,. .lkx; ,dkO000xll, :0XNMMMMMM|
|MMMMMMMXc. 'cccccc' .dKOc''. .ldo:;,'... ;xkkkkkkKWMMMMMMMM|
|MMMMMMMMWOc;,,:ccc' .dK0xdo, .',,,'. .';lddddxOXWMMMMMMMMM|
|MMMMMMMMMMW0:.'ccc' .dK0000: .dKO; ;O0d. .:KMMMMMMMMM|
|MMMMMMMMMMMMNkc;,.. .dK0000c .cloOKO; ;O0koll:. 'OMMMMMMMMM|
|MMMMMMMMMMMMMMNKk;. .oOkO00c ,kK000Oc..:xkkkxkd;.,OMMMMMMMMM|
|MMMMMMMMMMMMMMMMMWd. .;c:dO0: 'x00OO0Okkoc:;...,xXXWMMMMMMMMM|
|MMMMMMMMMMMMMMMMMWd. ..;ol, .:ooooooll,..,x000NMMMMMMMMMMMM|
|MMMMMMMMMMMMMMMMMNo. ....,,. ',,,,,,,,. '0MMMMMMMMMMMMMMMM|
|MMMMMMMMMMMMMMWWWNo. .,c:. '0MMMMMMMMMMMMMMMM|
|MMMMMMMMMMMMMWx,,''',;:c:. 'oodddc. .,,. '0MMMMMMMMMMMMMMMM|
|MMMMMMMMMMMMMWl .;cccc:. ;00K00x' ;xd; 'OMMMMMMMMMMMMMMMM|
|MMMMMMMMMMMMMMo. .,::::;. ;kOOOOd. :OO: 'OMMMMMMMMMMMMMMMM|
|MMMMMMMMMMMMMMo ... .. ....... ,ol, .OMMMMMMMMMMMMMMMM|
|MMMMMMMMMMMMMWk;;;. .'''''''''',. .,,. 'OWMMMMMMMMMMMMMMM|
|MMMMMMMMMMMMWNKOOOc. .cxdddddddddxl. .kXNWMMMMMMMMMMMMM|
|MMMMMMMMMMMMWO;.... ........'''''.'',,,;;:codkKWMMMMMMMMMMMM|
|MMMMMMMMMMMMMNkoddxxkkkO000000KKKKXXXNNNNWWWMMMMMMMMMMMMMMMMMM|
|MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM|
|MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM|
|MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM|
+--------------------------------------------------------------+
Quelques statistiques sur ce dépôt git :
$ echo "Nombre de commits par auteur (dans ce depot git) :"
$ git --no-pager shortlog -sn --all
Nombre de commits par auteur (dans ce depot git) :
2155 Lilian Besson
5 Lilian Besson (Naereen)
1 Jill-Jênn Vie
Un calendrier montrant les jours d’activités de ce dépôt git (avec cet autre script, si vous êtes curieux cette web-page est une jolie version web de ce « calendrier » minimaliste) :
$ git-cal --ascii
Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec Jan Feb
o
M O .
o . . .
W .
F o
. .
Less . o O 0 More
16: Total commits
2: Days ( Feb 27 2023 - Feb 28 2023 ) - Longest streak excluding weekends
2: Days ( Feb 27 2023 - Feb 28 2023 ) - Longest streak including weekends
1: Days ( Feb 17 2024 - Feb 17 2024 ) - Current streak
Des ajouts : OCaml ?¶
Dans le fichier de configuration de Sphinx, conf.py, on peut facilement créer des raccourcis pour faciliter l’utilisation de cette extension runblock.
Il faut d’abord créér un dictionnaire vide appelé autorun_languages
:
autorun_languages = {}
Et ensuite ajouter une valeur truc
(un programme valide, comme gnuplot ou ocaml)
et truc_prefix_chars
(taille des préfixes)
pour rendre utilisable la balise .. code-block:: truc
dans les documents reStructuredText (dans ce projet seulement) :
# Ajouter ça dans votre 'conf.py'
autorun_languages['ocaml'] = u'ocaml -stdin'
autorun_languages['ocaml_prefix_chars'] = 2
autorun_languages['ocaml_input_language'] = 'utf_8'
autorun_languages['ocaml_output_language'] = 'utf_8'
.. runblock:: ocaml
marche désormais¶
Avec cette astuce, on peut désormais inclure facilement des exemples de code en OCaml :
# let rec f = function 0 -> 1 | n -> n *(f (n-1)) in
# print_int (f 11);;
# Printf.printf "\n OCaml version %s\n" Sys.ocaml_version;;
39916800
OCaml version 4.14.1
Pour plus de détails, cf. le code source de l’extension autorun.py.
Bug étrange de pygments
¶
This runblock
extension uses the great pygments Python library to color the code.
J’ai des fois vu pygments
ou pygmentize
se casser complètement, et la correction que je fais manuellement est de supprimer
le support (annoncé comme expérimental) de pkg_resources
dans le fichier plugin.py dans les sources de pygments,
en forçant manuellement pkg_resources = None
(à la ligne 41).
C’est sale mais ça corrige le bug…