TL;DR Bibadac est un outil en ligne de commande permettant de gĂ©rer une bibliographie Ă©crite avec BibTeX. Il est conçu pour rĂ©pondre Ă des besoins simples et rĂ©currents commeâŻ: formater une bibliographie et vĂ©rifier la cohĂ©rence des entrĂ©es. Son nom est tirĂ© du verbe polonais biadaÄ qui signifie se plaindre, gĂ©mir, se lamenter, en ajoutant un b pour BibâŻTeX:
BibadaÄ (verbe): faire pleurer des fichiers BibTeX.
Quel type de chercheur / chercheuse ĂȘtes-vous ?
Ăcrire des articles nĂ©cessite de citer des articles. En pratique pour les informaticien·e·s et les mathĂ©maticien·ne·s, cela signifie interagir beaucoup avec le format de bibliographies BibTeX. Ce âformatâ est trĂšs flexible, et en consĂ©quence, il est trĂšs facile de faire des erreurs. Cet outil peut vous ĂȘtre utile si vous avez dĂ©jĂ âŻ:
- Modifié des entrées BibTeX à la main pour retirer des champs.
- Pleuré devant des entrées BibTeX illisible parce que mal formatées.
- Eu des problÚmes de cohérence entre les entrées de votre fichier BibTeX.
- Cité des articles en utilisant des liens morts.
- Ajouté des champs dans fichier écrit par un·e collÚgue.
- Eu des erreurs de compilation de votre fichier LaTeX Ă cause de votre fichier BibTeX.
Bibadac
Attention, lâutilisation de Sci-Hub est illĂ©gale dans de nombreux pays. Si vous utilisez cette fonctionnalitĂ©, vous ĂȘtes seul responsable de vos actes. En revanche, les documents tĂ©lĂ©chargĂ©s sur arXiv ou des pages personnelles dâauteurs nâont en gĂ©nĂ©ral pas de problĂšmes de lĂ©galitĂ©.
BibadaÄ est un outil en ligne de commande Ă©crit en Rust pour gĂ©rer des
fichiers BibTeX. Il est conçu pour ĂȘtre simple et rapide. Pour lister les
potentielles erreurs dans un fichier bibadac check mon-fichier.bib
.
Pour formater un fichier bibadac format mon-fichier.bib
. Pour
télécharger les derniÚres versions des entrées bibliographiques ainsi que tous
les PDFs associés bibadac setup mon-fichier.bib
.11
Notons que câest quand mĂȘme Ă©norme pour un si petit programme.
Encore un nouvel outilâŻ? Il existe dĂ©jĂ de nombreux outils pour gĂ©rer des fichiers BibTeX. Cependant, ces outils sont souvent pĂ©nibles. Ils utilisent des interprĂ©teurs (Python, Node.js) et sont donc relativement lourds Ă dĂ©ployer, alors que BibadaÄ est un binaire dâĂ peine 2âŻMo.22 De plus, ils sont souvent assez stricts sur le format de fichierâŻ: des erreurs de syntaxes mineures peuvent les faire planter. LĂ oĂč BibadaÄ se dĂ©marque, câest quâil utilise Tree Sitter pour analyser le fichier dâentrĂ©eâŻ: cela permet de faire des diagnostics pertinents mĂȘme sur des fichiers invalides, et de formater des fichiers invalides sur le principe du meilleur effort. De plus, son fonctionnement sans Ă©tat le rend particuliĂšrement adaptĂ© Ă des pipelines de compilation ou dâintĂ©gration continue.
FonctionnalitĂ©s.âŻLa principale fonction de BibadaÄ est de vĂ©rifier la cohĂ©rence des entrĂ©es dâun fichier BibTeX. Cela signifie vĂ©rifier lâabsence de doublons, de champs vides, dâURLs qui ne sont pas accessibles, de versions pĂ©rimĂ©es dâun document, etc. En plus de cela, BibadaÄ propose de formater un fichier BibTeX pour le rendre plus lisible, avec la possibilitĂ© dâenrichir les entrĂ©es avec des informations provenant dâun autre fichier BibTeX. Enfin, BibadaÄ propose de tĂ©lĂ©charger des versions âstandardisĂ©esâ des citations issues du fichier dâentrĂ©e ainsi que (presque) tous les PDFs associĂ©s.
Usage typique. Vous commencez à collaborer sur un projet, vous téléchargez
le fichier BibTeX de votre collĂšgue. Vous lancez bibadac setup
pour obtenir
tous les documents nĂ©cessaires ainsi quâune base de rĂ©fĂ©rence bibliographique
à jour. Vous pouvez ensuite vous servir de cette base pour vérifier votre
fichier BibTeX, et le formater, lâenrichir au besoin, ou en supprimer certains
champs inutiles. Avant de publier votre article, vous pouvez lancer une
derniĂšre fois bibadac check
pour vérifier que tout est en ordre.
Technologies, DĂ©veloppement, DĂ©ploiement
Pour le moment, ce nâest pas utilisĂ©, mais dans la perspective dâĂ©crire un plugin pour un Ă©diteur de texte, cette fonction permet de faire des analyses dâun fichier pendant que lâutilisateur le modifie.
Comme dĂ©jĂ mentionnĂ©, BibadaÄ est Ă©crit en Rust. Le langage possĂšde une
excellente communauté, beaucoup de bibliothÚques et une toolchain fabuleuse.
Le cĆur de BibadaÄ est basĂ© sur Tree-sitter, un parser
générique qui permet de faire des analyses syntaxiques de fichiers de maniÚre
efficace et itérative.33 Le seul et unique problÚme avec ce langage
est son utilisation des durĂ©es de vie nommĂ©es qui sâĂ©crivent avec la syntaxe
<'a>
, orâŻ:
- JâĂ©cris avec un clavier BĂPO et je nâai pas envie de changer de disposition pour Ă©crire du code.
- Jâutilise un MacPro dâoccasion sans y avoir installĂ© Linux, et le driver
bépo ne permet pas facilement de taper le caractÚre
'
, qui est systĂ©matiquement remplacĂ© par un caractĂšreâ
.
Câest-Ă -dire, que toute la configuration est extraite de lâexĂ©cutable lui-mĂȘme (ou plutĂŽt, de la phase de compilation de lâexĂ©cutable), ce qui veut dire que la configuration est toujours Ă jour avec le code.
Afin de faire une petite dĂ©monstration en ligne de BibadaÄ, jâai Ă©crit une interface web minimaliste, et câest Ă ce moment lĂ que jâai rencontrĂ© le premier bĂ©molâŻ: jâespĂ©rais pouvoir compiler BibadaÄ vers du WebAssembly pour avoir un dĂ©monstrateur sur une page statique, mais cela nâest pas possible Ă cause de la dĂ©pendance Ă Tree-sitter et des incompatibilitĂ©s dâABI WebAssembly. Jâai donc dĂ» construire une petite API en ligne. Pour sa mise en route jâai utilisĂ© le service shuttle.rs, destinĂ© Ă dĂ©ployer des applications Rust en ligne de maniĂšre simple, rapide, et sans configuration.44 Câest particuliĂšrement simple Ă utiliser (une seule commande), et le dĂ©ploiement de lâapplication est fait en une dizaine de minutes lors du premier build.
Conclusion
Un jour, peut-ĂȘtre, BibadaÄ sera un outil incontournable. En attendant, testez le en ligne sur 𧯠BibadaÄ â Web Demo. Si vous ĂȘtes plutĂŽt CURLieux, vous pouvez directement utiliser lâAPI:
curl -X POST \
-H "Content-Type: plain/text" \
-d @mon-fichier.bib \
https://bibadac-web-woht.shuttle.app/api/check
Attention, lâutilisation de Sci-Hub est illĂ©gale dans de nombreux pays. Si vous utilisez cette fonctionnalitĂ©, vous ĂȘtes seul responsable de vos actes. En revanche, les documents tĂ©lĂ©chargĂ©s sur arXiv ou des pages personnelles dâauteurs nâont en gĂ©nĂ©ral pas de problĂšmes de lĂ©galitĂ©.â©ïž
Notons que câest quand mĂȘme Ă©norme pour un si petit programme.â©ïž
Pour le moment, ce nâest pas utilisĂ©, mais dans la perspective dâĂ©crire un plugin pour un Ă©diteur de texte, cette fonction permet de faire des analyses dâun fichier pendant que lâutilisateur le modifie.â©ïž
Câest-Ă -dire, que toute la configuration est extraite de lâexĂ©cutable lui-mĂȘme (ou plutĂŽt, de la phase de compilation de lâexĂ©cutable), ce qui veut dire que la configuration est toujours Ă jour avec le code.â©ïž