{
    "version": "https://jsonfeed.org/version/1",
    "title": "rOpenSci - open tools for open science",
    "home_page_url": "https://deploy-preview-1283--ropensci.netlify.app/fr/rbloggers/index.xml",
    "feed_url": "https://deploy-preview-1283--ropensci.netlify.app/fr/rbloggers/index.xml/index.json",
	
	"description": "Open Tools and R Packages for Open Science",
	
	
    "items": [
    
    
		
			{
				"id": "https://deploy-preview-1283--ropensci.netlify.app/fr/blog/2025/10/22/paquets-r-multiverse/",
				"title": "En route pour le lancement ! Paquets expédiés au R-Multiverse",
				"content_text": "\u003cp\u003eWill Landau a récemment présenté le R-multiverse, \u003ca href=\"/commcalls/r-multiverse/\"\u003eune nouvelle façon de publier des paquets R\u003c/a\u003e lors d\u0026rsquo;une réunion de la communauté de rOpenSci\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e.\nAprès cet événement, une session \u003ca href=\"/blog/2023/06/21/coworking/\"\u003ecoworking\u003c/a\u003e a permis à Will, à ses collègues administrateurs du R-multiverse Jeroen Ooms et Maëlle Salmon, ainsi qu\u0026rsquo;aux membres de la communauté, de discuter encore davantage.\u003c/p\u003e\n\u003cp\u003eUne mission clé de cette session de coworking était de soumettre des paquets au R-multiverse en direct !\nÀ la suite de la session de \u003ca href=\"https://r-multiverse.org/contributors.html\"\u003einstructions\u003c/a\u003e tout responsable de paquet souhaitant envoyer son logiciel dans le dépôt communautaire doit :\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ecréer une \u0026ldquo;release\u0026rdquo; GitHub ou GitLab de son paquet ;\u003c/li\u003e\n\u003cli\u003eouvrir une Pull Request au dépôt \u003ca href=\"https://github.com/r-multiverse/contributions\"\u003econtributions\u003c/a\u003e GitHub, en ajoutant un fichier texte contenant l\u0026rsquo;URL du dépôt\u003csup id=\"fnref:2\"\u003e\u003ca href=\"#fn:2\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e2\u003c/a\u003e\u003c/sup\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWill a également partagé une fonction R qui vous permet d\u0026rsquo;effectuer des vérifications de paquets R-multiverse localement avant de les soumettre : \u003ca href=\"https://r-multiverse.org/multiverse.internals/reference/review_package.html\"\u003e\u003ccode\u003emultiverse.internals::review_package()\u003c/code\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eTrois paquets ont été soumis lors de la session de coworking !\u003c/p\u003e\n\u003ch2 id=\"paquets-soumis\"\u003e\n\n\u003ca class=\"anchor d-print-none\" href=\"#paquets-soumis\"\u003e\n  \u003csmall\u003e\u0026#x1F517;\u003c/small\u003e\n\u003c/a\u003e\n\nPaquets soumis\n\u003c/h2\u003e\u003ch3 id=\"riem-pour-obtenir-des-données-météorologiques-des-stations-asos-aéroports-via-liowa-environment-mesonet\"\u003e\n\n\u003ca class=\"anchor d-print-none\" href=\"#riem-pour-obtenir-des-donn%c3%a9es-m%c3%a9t%c3%a9orologiques-des-stations-asos-a%c3%a9roports-via-liowa-environment-mesonet\"\u003e\n  \u003csmall\u003e\u0026#x1F517;\u003c/small\u003e\n\u003c/a\u003e\n\nriem, pour obtenir des données météorologiques des stations ASOS (aéroports) via l\u0026rsquo;Iowa Environment Mesonet.\n\u003c/h3\u003e\u003cp\u003eJ\u0026rsquo;ai soumis mon paquets \u003ca href=\"https://github.com/r-multiverse/contributions/pull/238\"\u003eriem\u003c/a\u003e qui accède aux données météorologiques des aéroports, même s\u0026rsquo;il est également distribué sur CRAN : je voulais explorer différentes possibilités de publication.\nParce que les vérifications automatiques (de la licence par exemple) ont passé et parce que je suis une membre public d\u0026rsquo;une organisation GitHub à laquelle le multivers fait confiance (ropensci), ma PR a été automatiquement fusionnée.\u003c/p\u003e\n\u003cp\u003eEn savoir plus sur \u003ca href=\"https://docs.ropensci.org/riem/\"\u003eriem\u003c/a\u003e.\u003c/p\u003e\n\u003ch3 id=\"geotargets-qui-étend-targets-pour-travailler-avec-des-formats-de-données-géospatiales\"\u003e\n\n\u003ca class=\"anchor d-print-none\" href=\"#geotargets-qui-%c3%a9tend-targets-pour-travailler-avec-des-formats-de-donn%c3%a9es-g%c3%a9ospatiales\"\u003e\n  \u003csmall\u003e\u0026#x1F517;\u003c/small\u003e\n\u003c/a\u003e\n\ngeotargets, qui étend targets pour travailler avec des formats de données géospatiales\n\u003c/h3\u003e\u003cp\u003eEric R. Scott a soumis le \u003ca href=\"https://github.com/r-multiverse/contributions/pull/239\"\u003epaquet geotargets\u003c/a\u003e qui étend le champ d\u0026rsquo;application de targets aux formats de données géospatiales, tels que les rasters et les vecteurs (par exemple, les \u0026ldquo;shapefiles\u0026rdquo;).\nEric a co-écrit geotargets avec Nick Tierney et Andrew Brown, mais Nick est le principal mainteneur.\nCependant, il est tout à fait acceptable qu\u0026rsquo;Eric ait soumis le paquet plutôt que Nick.\nEn effet, R-multiverse vous permet de contribuer à des paquets que vous n\u0026rsquo;avez pas écrits du tout \u003csup id=\"fnref:3\"\u003e\u003ca href=\"#fn:3\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e3\u003c/a\u003e\u003c/sup\u003e à condition que la licence accorde\u003ca href=\"https://en.wikipedia.org/wiki/Free_and_open-source_software\"\u003el\u0026rsquo;autorisation claire de distribuer et de modifier le code\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eEn savoir plus sur \u003ca href=\"https://docs.ropensci.org/geotargets/\"\u003egeotargets\u003c/a\u003e.\u003c/p\u003e\n\u003ch3 id=\"weathercan-pour-trouver-et-télécharger-des-données-météorologiques-historiques-denvironnement-et-changement-climatique-canada-eccc\"\u003e\n\n\u003ca class=\"anchor d-print-none\" href=\"#weathercan-pour-trouver-et-t%c3%a9l%c3%a9charger-des-donn%c3%a9es-m%c3%a9t%c3%a9orologiques-historiques-denvironnement-et-changement-climatique-canada-eccc\"\u003e\n  \u003csmall\u003e\u0026#x1F517;\u003c/small\u003e\n\u003c/a\u003e\n\nweathercan, pour trouver et télécharger des données météorologiques historiques d\u0026rsquo;Environnement et Changement Climatique Canada (ECCC)\n\u003c/h3\u003e\u003cp\u003eSteffi LaZerte a soumis son \u003ca href=\"https://github.com/r-multiverse/contributions/pull/240/\"\u003epaquet weathercan\u003c/a\u003e également un paquet météo mais pour le Canada !\nSteffi s\u0026rsquo;est demandé s\u0026rsquo;il était judicieux de soumettre weathercan avant d\u0026rsquo;effectuer un certain nombre de corrections et d\u0026rsquo;améliorations qu\u0026rsquo;elle avait planifiées pour les semaines à venir. Il s\u0026rsquo;avère que, oui, cela a du sens ! En effet, le multivers récupère automatiquement la dernière version.\nSteffi doit seulement se rappeler de créer une nouvelle \u0026ldquo;release\u0026rdquo; après avoir amélioré weathercan.\u003c/p\u003e\n\u003cp\u003eEn savoir plus sur \u003ca href=\"https://docs.ropensci.org/weathercan/\"\u003eweathercan\u003c/a\u003e.\u003c/p\u003e\n\u003ch2 id=\"quelle-est-la-suite-pour-ces-paquets-\"\u003e\n\n\u003ca class=\"anchor d-print-none\" href=\"#quelle-est-la-suite-pour-ces-paquets-\"\u003e\n  \u003csmall\u003e\u0026#x1F517;\u003c/small\u003e\n\u003c/a\u003e\n\nQuelle est la suite pour ces paquets ?\n\u003c/h2\u003e\u003cp\u003eMaintenant que ces paquets sont arrivés, ils sont distribués par l\u0026rsquo;intermédiaire du dépôt de \u003ca href=\"https://r-multiverse.org/community.html\"\u003e\u003cstrong\u003ecommunauté\u003c/strong\u003e\u003c/a\u003e.\nIl s\u0026rsquo;agit d\u0026rsquo;une sorte d\u0026rsquo;aperçu des nouvelles versions.\u003c/p\u003e\n\u003cp\u003eDans quelques semaines, lorsque R-multiverse commencera à construire le prochain instantané de \u003ca href=\"https://r-multiverse.org/production.html\"\u003e\u003cstrong\u003eproduction\u003c/strong\u003e\u003c/a\u003e ils seront vérifiés en même temps que les autres paquets.\nS\u0026rsquo;ils sont acceptables, leur version à ce moment-là sera celle qui sera intégrée à la production.\nS\u0026rsquo;il y a des problèmes, le responsable peut toujours apporter des corrections.\u003c/p\u003e\n\u003cp\u003eTant que ces paquets sont listés dans le R-multiverse, ils participeront aux snapshots de production trimestriels.\nLes responsables n\u0026rsquo;ont qu\u0026rsquo;à continuer à créer des \u0026ldquo;releases\u0026rdquo; (bonne pratique de toute façon) et à suivre la procédure \u003ca href=\"https://r-multiverse.org/status/\"\u003estatut\u003c/a\u003e de leur paquet dans R-multiverse.\u003c/p\u003e\n\u003cp\u003ePour que les utilisateur·rice·s du paquet sachent qu\u0026rsquo;il·elle·s peuvent l\u0026rsquo;installer à partir du dépôt \u003ca href=\"https://r-multiverse.org/community.html\"\u003ecommunauté\u003c/a\u003e ou du dépôt \u003ca href=\"https://r-multiverse.org/production.html\"\u003eproduction\u003c/a\u003e les responsables des paquets devront mettre à jour les instructions d\u0026rsquo;installation dans le README de leur paquet.\nIls peuvent également ajouter un \u003ca href=\"https://r-multiverse.org/contributors.html#badges\"\u003ebadge\u003c/a\u003e.\u003c/p\u003e\n\u003ch2 id=\"quelle-est-la-suite-pour-le-multivers-r-\"\u003e\n\n\u003ca class=\"anchor d-print-none\" href=\"#quelle-est-la-suite-pour-le-multivers-r-\"\u003e\n  \u003csmall\u003e\u0026#x1F517;\u003c/small\u003e\n\u003c/a\u003e\n\nQuelle est la suite pour le multivers R ?\n\u003c/h2\u003e\u003cp\u003eAprès la conférence posit, l\u0026rsquo;appel à la communauté rOpenSci et la session de coworking rOpenSci, R-multiverse vise à augmenter la participation à son système pour le renforcer et le diversifier.\nLes soumissions de nouveaux paquets sont les bienvenues, tout comme les \u003ca href=\"https://github.com/r-multiverse/help\"\u003equestions et demandes de fonctionnalités\u003c/a\u003e.\nVous pouvez également poser votre candidature pour devenir \u003ca href=\"https://r-multiverse.org/moderators.html\"\u003emodérateur de paquet\u003c/a\u003e pour aider à gérer les nouvelles soumissions.\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003eEt avant cela, lors d\u0026rsquo;une conférence à posit::conf ! Restez à l\u0026rsquo;écoute pour la publication des enregistrements des conférences publiques sur YouTube.\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:2\"\u003e\n\u003cp\u003eOu un fichier JSON un peu plus complexe si le paquet se trouve dans un sous-répertoire, par exemple.\u0026#160;\u003ca href=\"#fnref:2\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:3\"\u003e\n\u003cp\u003eLa liste d\u0026rsquo;auteur·rice·s du paquet reste inchangée.\u0026#160;\u003ca href=\"#fnref:3\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n",
				"url": "https://deploy-preview-1283--ropensci.netlify.app/fr/blog/2025/10/22/paquets-r-multiverse/",
				"date_published": "2025-10-22T00:00:00+00:00"
			}
		
		, 
			{
				"id": "https://deploy-preview-1283--ropensci.netlify.app/fr/blog/2025/10/14/reconnaissance-blog/",
				"title": "Reconnaissance au-delà des auteur·rice·s de billets de blog",
				"content_text": "\u003cp\u003eNotre propre guide de développement \u003ca href=\"https://devguide.ropensci.org/maintenance_collaboration.html#attributions\"\u003esouligne\u003c/a\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eSois généreux·se avec les attributions\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eReconnaître les diverses formes de \u003ca href=\"https://contributing.ropensci.org/\"\u003econtributions\u003c/a\u003e à notre mission est très importante pour nous :\nnous aimons remercier \u003ca href=\"/blog/2018/03/16/thanking-reviewers-in-metadata/\"\u003eles personnes qui font la révision de paquets\u003c/a\u003e et plus généralement \u003ca href=\"/blog/2024/11/26/allcontributors/\"\u003etous les contributeur·rice·s aux paquets\u003c/a\u003e, \u003ca href=\"/blog/2025/05/09/ror/\"\u003eles organisations ainsi que les individus\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eNous avons récemment étendu nos efforts à la reconnaissance des différents rôles permettant la publication d\u0026rsquo;un article de blog.\u003c/p\u003e\n\u003ch2 id=\"nouveaux-rôles-sur-le-blog--éditeurrices-traducteurrices-interviewées\"\u003e\n\n\u003ca class=\"anchor d-print-none\" href=\"#nouveaux-r%c3%b4les-sur-le-blog--%c3%a9diteurrices-traducteurrices-interview%c3%a9es\"\u003e\n  \u003csmall\u003e\u0026#x1F517;\u003c/small\u003e\n\u003c/a\u003e\n\nNouveaux rôles sur le blog : éditeur·rice·s, traducteur·rice·s, interviewé·e·s\n\u003c/h2\u003e\u003cp\u003eLes métadonnées de nos articles de blog comportent désormais :\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003equi a édité l\u0026rsquo;article de blog\n\u003cul\u003e\n\u003cli\u003epar exemple, \u003ca href=\"/blog/2025/09/18/markdown-programmatic-parsing/\"\u003eSteffi LaZerte a modifié un article récent\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003equi a traduit l\u0026rsquo;article de blog\n\u003cul\u003e\n\u003cli\u003epar exemple, \u003ca href=\"/es/blog/2025/06/23/edicion-multilingue-preguntas-frecuentes/\"\u003eYanina Bellini Saibene a traduit un article en espagnol\u003c/a\u003e et \u003ca href=\"fr/blog/2025/06/23/publication-multilingue-faq/\"\u003eMaëlle Salmon l\u0026rsquo;a traduit en français\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003equi était \u003cem\u003einterviewé\u003c/em\u003e pour un article de blog\n\u003cul\u003e\n\u003cli\u003epar exemple, \u003ca href=\"/blog/2023/03/30/r-universe-stars-3-en/\"\u003eAthanasia Mo Mowinckel a été interviewée dans la série Étoiles de R-universe.\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eLa \u0026ldquo;page auteur·rice\u0026rdquo; des contributeur·rice·s énumère leurs diverses contributions au contenu dans la langue actuelle (les articles en tant qu\u0026rsquo;auteur·rice sont listés en premier, suivis des autres rôles) :\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"/author/steffi-lazerte\"\u003ePage d\u0026rsquo;autrice de Steffi LaZerte\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"/es/author/yanina-bellini-saibene\"\u003ePage d\u0026rsquo;autrice de Yanina Bellini Saibene en espagnol\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"/author/athanasia-mo-mowinckel/\"\u003ePage d\u0026rsquo;autrice d\u0026rsquo;Athanasia Mo Mowinckel\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003ePour réaliser cette nouvelle fonctionnalité, nous avons\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003emodifié les \u003cem\u003elayouts\u003c/em\u003e (modèles) de Hugo pour \u003ca href=\"https://github.com/ropensci/roweb3/blob/main/themes/ropensci/layouts/partials/blogs/blog-single.html\"\u003eles articles de blog\u003c/a\u003e et \u003ca href=\"https://github.com/ropensci/roweb3/blob/main/themes/ropensci/layouts/author/list.html\"\u003epages d\u0026rsquo;auteur·rice\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003edocumenté les nouveaux champs de métadonnées correspondants dans notre \u003ca href=\"https://blogguide.ropensci.org/editorchecklistany.html\"\u003eguide pour le blog\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"conclusion\"\u003e\n\n\u003ca class=\"anchor d-print-none\" href=\"#conclusion\"\u003e\n  \u003csmall\u003e\u0026#x1F517;\u003c/small\u003e\n\u003c/a\u003e\n\nConclusion\n\u003c/h2\u003e\u003cp\u003eNous sommes ravi·e·s de pouvoir reconnaître davantage de contributions à notre blog.\u003c/p\u003e\n\u003cp\u003eCette différenciation des rôles nous permet également d\u0026rsquo;analyser plus en détail la façon dont les collaborations liées au blog se produisent parmi les membres de notre communauté.\nGrâce à ces informations, nous pouvons explorer différentes façons d\u0026rsquo;encourager la participation des personnes intéressées, y compris la meilleure façon de fournir le soutien nécessaire à une participation réussie.\u003c/p\u003e\n\u003cp\u003eNous espérons également que nos résultats seront utiles à d\u0026rsquo;autres communautés pour identifier les différents types de contributions et les façons de les honorer.\u003c/p\u003e\n\u003cp\u003eNous continuerons à travailler pour que davantage de ces contributions soient présentées dans notre fil d\u0026rsquo;actualité sur \u003ca href=\"https://rogue-scholar.org/communities/ropensci/records?q=\u0026amp;l=list\u0026amp;p=1\u0026amp;s=10\u0026amp;sort=newest\"\u003eRogue Scholar\u003c/a\u003e.\u003c/p\u003e\n",
				"url": "https://deploy-preview-1283--ropensci.netlify.app/fr/blog/2025/10/14/reconnaissance-blog/",
				"date_published": "2025-10-14T00:00:00+00:00"
			}
		
		, 
			{
				"id": "https://deploy-preview-1283--ropensci.netlify.app/fr/blog/2025/09/23/gentle-openscience/",
				"title": "Une introduction en douceur à la science ouverte",
				"content_text": "\u003cfigure class=\"pull-right\"\u003e\u003cimg src=\"/blog/2025/09/23/gentle-openscience/sunny_and_steffi.jpg\"\n    alt=\"Sunny et Steffi montrent leurs autocollants R hex !\" width=\"300\"\u003e\u003cfigcaption\u003e\n      \u003cp\u003eSunny et Steffi montrent leurs autocollants R hex !\u003c/p\u003e\n    \u003c/figcaption\u003e\n\u003c/figure\u003e\n\n\u003cp\u003eCet été, j\u0026rsquo;ai eu le plaisir de participer à la \u003ca href=\"https://www.sco-soc.ca/fr\"\u003eSociété des ornithologistes du Canada\u003c/a\u003e à \u003ca href=\"https://fr.wikipedia.org/wiki/Saskatoon\"\u003eSaskatoon\u003c/a\u003e au Canada.\nC\u0026rsquo;était génial de croiser \u003ca href=\"/author/yi-chin-sunny-tseng/\"\u003eSunny Tseng\u003c/a\u003e, \u003ca href=\"/champions\"\u003eChampionne rOpenSci\u003c/a\u003e et collègue \u003ca href=\"https://fr.wikipedia.org/wiki/Ornithologie\"\u003eornithologiste\u003c/a\u003e!\nCe n\u0026rsquo;est pas souvent que je rencontre les deux types de collègues (développeur·se·s R et ornithologistes) lors d\u0026rsquo;une même conférence, alors je chéris ces expériences.\u003c/p\u003e\n\u003cp\u003eAvant de rejoindre rOpenSci, j\u0026rsquo;ai commencé ma carrière professionnelle en tant \u003ca href=\"https://royalsocietypublishing.org/doi/10.1098/rspb.2016.1058\"\u003equ\u0026rsquo;écologiste comportementale et ornithologiste\u003c/a\u003e, étudiant les effets du bruit urbain et de l\u0026rsquo;habitat sur la communication chez les \u003ca href=\"https://fr.wikipedia.org/wiki/m%C3%A9sanges\"\u003emésanges\u003c/a\u003e.\nAlors que je me suis reconvertie dans le conseil et l\u0026rsquo;assistance en matière de R ainsi que le travail avec \u003ca href=\"/author/yanina-bellini-saibene\"\u003eYani\u003c/a\u003e ici à rOpenSci avec notre incroyable communauté, je travaille encore aujourd\u0026rsquo;hui principalement pour d\u0026rsquo;autres ornithologistes ou des organisations à but non lucratif de conservation des oiseaux.\u003c/p\u003e\n\u003cp\u003eCela signifie que la \u003ca href=\"https://www.sco-soc.ca/fr\"\u003eSociété des ornithologistes du Canada\u003c/a\u003e est toujours mon organisation d\u0026rsquo;origine et je suis toujours enthousiaste à l\u0026rsquo;idée d\u0026rsquo;assister à des réunions et de renouer avec mes collègues.\nMais conférence ornithologique ou pas, j\u0026rsquo;essaie toujours d\u0026rsquo;apporter un peu de R, de Science Ouverte et de rOpenSci à la réunion.\u003c/p\u003e\n\u003cp\u003eDans le passé, j\u0026rsquo;ai organisé des symposiums sur des sujets tels que \u0026ldquo;\u003ca href=\"https://github.com/steffilazerte/Presentations/tree/master/2019-08%20SOC%20-%20R%20Symposium#readme\"\u003eR pour les ornithologues : Points de vue des utilisateuRs et programmeuRs\u003c/a\u003e\u0026rdquo; ou \u0026ldquo;\u003ca href=\"https://github.com/steffilazerte/Presentations/tree/master/2021-08%20AOS%7CSOC%20-%20R%20Symposium#readme\"\u003eComment les ornithologues peuvent-il·elle·s trouver des paquets R ?\u003c/a\u003e\u0026rdquo; et j\u0026rsquo;ai participé à l\u0026rsquo;organisation d\u0026rsquo;ateliers sur les paquets R pour l\u0026rsquo;ornithologie (comme \u003ca href=\"https://github.com/bbsBayes/bbsBayes2\"\u003ebbsBayes2\u003c/a\u003e).\u003c/p\u003e\n\u003cp\u003eCette année, j\u0026rsquo;ai eu envie d\u0026rsquo;aller un peu plus loin que R et j\u0026rsquo;ai décidé de parler de \u0026ldquo;\u003ca href=\"https://github.com/steffilazerte/Presentations/tree/master/2025-08-Open-Science#readme\"\u003eConseils pratiques pour la science ouverte en ornithologie\u003c/a\u003e\u0026rdquo;.\nMon objectif était d\u0026rsquo;encourager les ornithologistes (ou d\u0026rsquo;autres scientifiques) à essayer la science ouverte.\nPour se rendre compte qu\u0026rsquo;il n\u0026rsquo;est nécessaire ni d\u0026rsquo;avoir une formation en informatique, ni d\u0026rsquo;avoir beaucoup d\u0026rsquo;argent !\nEt comme l\u0026rsquo;ornithologie compte de nombreux scientifiques qui travaillent déjà avec des données ouvertes, des méthodes ouvertes et la science ouverte, je voulais partager quelques idées sur la manière dont il·elle·s pourraient encourager un plus grand nombre de leurs collègues à se joindre à elleux.\u003c/p\u003e\n\u003cp\u003ePour la communauté rOpenSci, il s\u0026rsquo;agit d\u0026rsquo;un véritable \u0026ldquo;retour aux sources\u0026rdquo;.\nLes conversations que nous avons portent plus souvent sur la façon dont on peut devenir \u003cem\u003emeilleur·e\u003c/em\u003e en science ouverte ?\nComment rendre cette étude \u003cem\u003ecomplètement\u003c/em\u003e reproductible ?\nComment \u003cem\u003eaméliorer\u003c/em\u003e la qualité du code ouvert\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e?\u003c/p\u003e\n\u003cfigure class=\"pull-right\"\u003e\u003cimg src=\"/blog/2025/09/23/gentle-openscience/alot_fr.png\"\n    alt=\"Grue à couronne grise à l\u0026#39;air surpris, avec une grande couronne de plumes autour de la tête. Le texte est le suivant : \u0026#39;Whoa ! C\u0026#39;est beaucoup ! Pourquoi faire de la science ouverte ?\u0026#39;\" width=\"400\"\u003e\u003cfigcaption\u003e\n      \u003cp\u003eDiapositive reconnaissant que la science ouverte peut être un défi\u003cbr\u003e(\u003ca href=\"https://upload.wikimedia.org/wikipedia/commons/1/1c/Grey_Crowned_Crane_2.jpg\"\u003eGrey-crowned crane\u003c/a\u003e - Kuribo, CC BY-SA 2.0)\u003c/p\u003e\n    \u003c/figcaption\u003e\n\u003c/figure\u003e\n\n\u003cp\u003eMais je pense que nous oublions parfois qu\u0026rsquo;en plus du temps, des compétences et parfois du financement, \u003cstrong\u003ela pratique de la science ouverte demande beaucoup de courage\u003c/strong\u003e\u003csup id=\"fnref:2\"\u003e\u003ca href=\"#fn:2\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e2\u003c/a\u003e\u003c/sup\u003e.\u003c/p\u003e\n\u003cp\u003ePour celleux qui débutent (comme les étudiant·e·s) ou celleux qui n\u0026rsquo;ont pas de soutien en matière de science ouverte (comme les chercheur·se·s des petites institutions), la pratique de la science ouverte peut sembler écrasante et extrêmement intimidante.\nIl est effrayant de penser aux critiques si l\u0026rsquo;on ne \u0026ldquo;fait pas de la science ouverte correctement\u0026rdquo;, ou aux conséquences si l\u0026rsquo;on commet une erreur.\u003c/p\u003e\n\u003cp\u003eJ\u0026rsquo;ai voulu mettre l\u0026rsquo;accent sur les petits pas, pour qu\u0026rsquo;il soit clair que c\u0026rsquo;est l\u0026rsquo;effort qui est important, et non la perfection !\u003c/p\u003e\n\u003cp\u003eEn plus de quelques conseils pratiques, j\u0026rsquo;ai donc donné quatre conseils généraux :\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e\u003ca href=\"https://steffilazerte.ca/Presentations/2025-08-Open-Science/index_fr.html#/conseil-n-1-nessayez-pas-de-tout-faire\"\u003eNe pas essayer de tout faire\u003c/a\u003e\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSoyez gentil·le avec vous-même\u003c/li\u003e\n\u003cli\u003eVous avez le droit de commencer petit et de grandir !\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e\u003ca href=\"https://steffilazerte.ca/Presentations/2025-08-Open-Science/index_fr.html#/conseil-n-2-faites-une-chose-nouvelle\"\u003eFaites une nouvelle chose\u003c/a\u003e\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ePour chaque projet, essayez d\u0026rsquo;élargir vos compétences, d\u0026rsquo;apprendre une nouvelle chose.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e\u003ca href=\"https://steffilazerte.ca/Presentations/2025-08-Open-Science/index_fr.html#/conseil-n-3-cest-normal-d%C3%AAtre-nerveuxse\"\u003eC\u0026rsquo;est normal d\u0026rsquo;être nerveux·se\u003c/a\u003e\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eLes erreurs arrivent, mais n\u0026rsquo;oubliez pas qu\u0026rsquo;en pratiquant la science ouverte, vous êtes déjà génial·e !\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e\u003ca href=\"https://steffilazerte.ca/Presentations/2025-08-Open-Science/index_fr.html#/conseil-n-4-travaillez-avec-les-autres\"\u003eTravailler avec d\u0026rsquo;autres\u003c/a\u003e\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eTrouver sa communauté\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003eJe pense que ce qui m\u0026rsquo;a le plus plu dans cette conférence, c\u0026rsquo;est le nombre d\u0026rsquo;étudiant·e·s qui sont venu·e·s me parler par la suite, enthousiastes (et nerveux·ses) à l\u0026rsquo;idée de commencer à partager leur code en ligne.\nIl·elle·s m\u0026rsquo;ont posé de nombreuses questions, qu\u0026rsquo;il s\u0026rsquo;agisse de questions pratiques sur l\u0026rsquo;utilisation de GitHub ou de questions générales sur la qualité de leur code pour qu\u0026rsquo;il soit partagé.\nMa réponse à cette dernière question a été : \u0026ldquo;Si vous l\u0026rsquo;avez utilisé, partagez-le.\n(Mais annotez-le énormément !)\u0026rdquo;\u003c/p\u003e\n\u003cp\u003eQuels sont vos conseils préférés pour encourager la science ouverte ?\u003c/p\u003e\n\u003ch3 id=\"remerciements\"\u003e\n\n\u003ca class=\"anchor d-print-none\" href=\"#remerciements\"\u003e\n  \u003csmall\u003e\u0026#x1F517;\u003c/small\u003e\n\u003c/a\u003e\n\nRemerciements\n\u003c/h3\u003e\u003cp\u003eRemerciements à \u003ca href=\"/author/alex-koiter\"\u003eAlex Koiter\u003c/a\u003e pour les idées et le remue-méninges pour mon exposé, ainsi que pour son exposé génial (et beaucoup plus long), \u003ca href=\"https://alexkoiter.ca/presentations/UM_Soil_Science_2023/Open_reproducible_science.html\"\u003eOpen and Reproducible Soil Science\u003c/a\u003e.\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003eTrisovic A, Lau MK, Pasquier T, et al.\n\u003ca href=\"https://www.nature.com/articles/s41597-022-01143-6\"\u003eA large-scale study on research code quality and execution\u003c/a\u003e.\nSci Data 9, 60 (2022).\n\u003ca href=\"https://doi.org/10.1038/s41597-022-01143-6\"\u003ehttps://doi.org/10.1038/s41597-022-01143-6\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:2\"\u003e\n\u003cp\u003e\u003cstrong\u003eInsécurité:\u003c/strong\u003e\nGomes DGE, Pottier P, Crystal-Ornelas R, et al.\n\u003ca href=\"https://pmc.ncbi.nlm.nih.gov/articles/PMC9682438/\"\u003eWhy don\u0026rsquo;t we share data and code? Perceived barriers and benefits to public archiving practices\u003c/a\u003e.\nProc Biol Sci 289(1987):20221113 (2022).\n\u003ca href=\"https://doi.org/10.1098/rspb.2022.1113\"\u003ehttps://doi.org/10.1098/rspb.2022.1113\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:2\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n",
				"url": "https://deploy-preview-1283--ropensci.netlify.app/fr/blog/2025/09/23/gentle-openscience/",
				"date_published": "2025-09-23T00:00:00+00:00"
			}
		
		, 
			{
				"id": "https://deploy-preview-1283--ropensci.netlify.app/fr/blog/2025/09/18/markdown-programmatique/",
				"title": "Toutes les façons d'éditer ou d'analyser programmatiquement des documents R Markdown / Quarto",
				"content_text": "\u003cp\u003eSi la vie te donne un tas de fichiers Markdown à analyser ou à éditer, est-ce que tu fais chauffer tes muscles regex avant de te lancer ? Et si tu utilisais plutôt des outils plus spécifiques ? Dans ce billet, nous allons donner un aperçu des moyens programmatiques d\u0026rsquo;analyser et d\u0026rsquo;éditer les fichiers Markdown : Markdown, R Markdown, Quarto, fichiers Hugo, et plus encore.\u003c/p\u003e\n\u003ch2 id=\"quest-ce-que-markdown-\"\u003e\n\n\u003ca class=\"anchor d-print-none\" href=\"#quest-ce-que-markdown-\"\u003e\n  \u003csmall\u003e\u0026#x1F517;\u003c/small\u003e\n\u003c/a\u003e\n\nQu\u0026rsquo;est-ce que Markdown ?\n\u003c/h2\u003e\u003cp\u003eMarkdown est un langage de balisage créé par John Gruber et Aaron Swartz. Voici un exemple :\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" class=\"chroma\"\u003e\u003ccode class=\"language-md\" data-lang=\"md\"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gh\"\u003e# Mon premier titre\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eContenu, avec des parties en \u003cspan class=\"gs\"\u003e**gras**\u003c/span\u003e ou \u003cspan class=\"ge\"\u003e*italique*\u003c/span\u003e.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eJ\u0026#39;ajoute un [\u003cspan class=\"nt\"\u003elien\u003c/span\u003e](\u003cspan class=\"na\"\u003ehttps://ropensci.org\u003c/span\u003e).\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003eDifférents fichiers Markdown peuvent conduire au même résultat, par exemple ceci est équivalent à notre premier exemple :\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" class=\"chroma\"\u003e\u003ccode class=\"language-md\" data-lang=\"md\"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eMon premier titre\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e===============\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eContenu, avec des parties en \u003cspan class=\"gs\"\u003e__gras__\u003c/span\u003e ou \u003cspan class=\"ge\"\u003e_italique_\u003c/span\u003e. J\u0026#39;ajoute un [\u003cspan class=\"nt\"\u003elien\u003c/span\u003e](\u003cspan class=\"na\"\u003ehttps://ropensci.org\u003c/span\u003e).\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003eDe plus, il existe différents \u003cem\u003eflavours\u003c/em\u003e (\u003cem\u003esaveurs\u003c/em\u003e) ou \u003cem\u003espécifications (specs)\u003c/em\u003e de Markdown \u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e qui ajoute des \u003ca href=\"https://www.markdownguide.org/extended-syntax/\"\u003esyntaxe étendues\u003c/a\u003e comme les emojis écrits avec des deux-points.\u003c/p\u003e\n\u003cp\u003eLes utilisateur·rice·s de R interagissent généralement avec les différentes saveurs de Markdown par le biais de leurs outils habituels :\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eR Markdown qui utilise Pandoc sous le capot,\u003c/li\u003e\n\u003cli\u003eQuarto (qui utilise Pandoc sous le capot\u0026hellip; tu vois une tendance ?),\u003c/li\u003e\n\u003cli\u003eGitHub qui utilise \u003ca href=\"https://github.github.com/gfm/\"\u003eGitHub Flavored Markdown (GFM)\u003c/a\u003e,\u003c/li\u003e\n\u003cli\u003eMarkdown dans roxygen2 qui utilise Commonmark par l\u0026rsquo;intermédiaire de \u003ca href=\"https://cran.r-project.org/web/packages/commonmark/index.html\"\u003e{commonmark}\u003c/a\u003e,\u003c/li\u003e\n\u003cli\u003eHugo, pour \u003ca href=\"https://pkgs.rstudio.com/blogdown/\"\u003eblogdown\u003c/a\u003e ou \u003ca href=\"https://hugodown.r-lib.org/\"\u003ehugodown\u003c/a\u003e qui utilisent \u003ca href=\"https://gohugo.io/content-management/formats/#markdown\"\u003eCommonmark et GFM\u003c/a\u003e,\u003c/li\u003e\n\u003cli\u003eJekyll qui utilise GFM avec des spécificités à travers \u003ca href=\"https://jekyllrb.com/docs/configuration/markdown/\"\u003ekramdown\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eDe nombreux outils utilisant Markdown acceptent également un \u003cem\u003efrontmatter\u003c/em\u003e (\u003cem\u003een-tête\u003c/em\u003e): métadonnées en tête des fichiers Markdown, par exemple YAML, TOML ou JSON. Voici un exemple avec un en-tête YAML :\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" class=\"chroma\"\u003e\u003ccode class=\"language-md\" data-lang=\"md\"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e---\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003etitle: Mon truc cool\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eauthor: Moi-même\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e---\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eContenu, \u003cspan class=\"ge\"\u003e*bon*\u003c/span\u003e contenu.\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003eLe plus souvent, les utilisateur·rice·s de R écrivent du Markdown manuellement, ou à l\u0026rsquo;aide d\u0026rsquo;un éditeur tel que \u003ca href=\"https://quarto.org/docs/tools/positron/visual-editor.html\"\u003el\u0026rsquo;éditeur visuel Positron\u003c/a\u003e ou \u003ca href=\"https://posit.co/blog/exploring-rstudio-visual-markdown-editor/\"\u003el\u0026rsquo;éditeur visuel RStudio IDE\u003c/a\u003e. Mais parfois, il faut créer ou modifier un grand nombre de fichiers Markdown en même temps, et modifier tous ces fichiers à la main est une énorme perte de temps. Cet article de blog te donnera des ressources en R que tu pourras utiliser pour créer, analyser et modifier des documents Markdown, afin que tu puisses devenir le·a magicien·ne Markdown que tu as toujours rêvé de devenir \u0026#x1f9d9; !\u003c/p\u003e\n\u003ch3 id=\"morceaux-de-code-et-programmation-lettrée\"\u003e\n\n\u003ca class=\"anchor d-print-none\" href=\"#morceaux-de-code-et-programmation-lettr%c3%a9e\"\u003e\n  \u003csmall\u003e\u0026#x1F517;\u003c/small\u003e\n\u003c/a\u003e\n\nMorceaux de code et programmation lettrée\n\u003c/h3\u003e\u003cp\u003eEn Markdown, tu peux ajouter des morceaux de code, qui seront correctement formatés et mis en évidence, en utilisant la syntaxe suivante :\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e```r\n1 + 1\n```\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eLes outils de programmation lettrée tels que knitr (pour R Markdown et Quarto) te permettront d\u0026rsquo;ajouter des morceaux de code qui seront exécutés pour rendre le document :\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\n\u003cpre class='chroma'\u003e\u003ccode class='language-r' data-lang='r'\u003e```{r}\n#| label: my-chunk\n#| echo: true\n1 + 1\n```\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/div\u003e\n\u003cp\u003eCette dernière syntaxe, les chunks de code exécutables, n\u0026rsquo;est pas forcément bien gérée par les outils \u0026ldquo;normaux\u0026rdquo; comme Pandoc. C\u0026rsquo;est quelque chose qu\u0026rsquo;il faut garder à l\u0026rsquo;esprit si tu as affaire à des documents qui contiennent des morceaux de code exécutables.\u003c/p\u003e\n\u003ch2 id=\"outils-de-création-pour-les-documents-standard\"\u003e\n\n\u003ca class=\"anchor d-print-none\" href=\"#outils-de-cr%c3%a9ation-pour-les-documents-standard\"\u003e\n  \u003csmall\u003e\u0026#x1F517;\u003c/small\u003e\n\u003c/a\u003e\n\nOutils de création pour les documents standard\n\u003c/h2\u003e\u003cp\u003eImagine que tu doives créer un tas de fichiers R Markdown différents, par exemple pour que les élèves les utilisent comme exercices personnalisés. Dans ce cas, tu peux créer un document comme modèle, et créer ses différentes versions de sortie à l\u0026rsquo;aide d\u0026rsquo;un outil de création de modèles.\u003c/p\u003e\n\u003cp\u003eLes outils de création de modèles comprennent :\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://bookdown.org/yihui/rmarkdown-cookbook/knit-expand.html\"\u003e\u003ccode\u003eknitr::knit_expand()\u003c/code\u003e\u003c/a\u003e par Yihui Xie ;\u003c/li\u003e\n\u003cli\u003ele \u003ca href=\"https://github.com/edwindj/whisker\"\u003epaquet whisker\u003c/a\u003e maintenu par Edwin de Jonge (utilisé par exemple dans pkgdown) ;\u003c/li\u003e\n\u003cli\u003ele \u003ca href=\"https://github.com/gregfrog/brew\"\u003epaquet brew\u003c/a\u003e maintenu par Greg Hunt ;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"/blog/2023/06/01/troubleshooting-pandoc-problems-as-an-r-user/\"\u003ePandoc\u003c/a\u003e de John MacFarlane par le biais de son \u003ca href=\"https://pandoc.org/MANUAL.html#templates\"\u003emodèles\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eL\u0026rsquo;exemple le plus simple du paquet whisker pourrait en outre te rappeler le\u0026hellip; \u003ca href=\"https://glue.tidyverse.org/\"\u003epaquet glue\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eUn flux de travail courant serait le suivant :\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eTu crées un modèle dans un fichier, où les parties variables sont indiquées par des chaînes de caractères telles que \u003ccode\u003e{{name}}\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eTu lis ce modèle dans R en utilisant par exemple le \u003ca href=\"https://brio.r-lib.org/\"\u003epaquet brio\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eEn faisant correspondre ton ensemble de variables, tu rends le modèle à l\u0026rsquo;aide de Whisker et tu enregistres chaque version dans un fichier à l\u0026rsquo;aide du paquet brio.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"exemple\"\u003e\n\n\u003ca class=\"anchor d-print-none\" href=\"#exemple\"\u003e\n  \u003csmall\u003e\u0026#x1F517;\u003c/small\u003e\n\u003c/a\u003e\n\nExemple\n\u003c/h3\u003e\u003cp\u003eVoici un exemple de fichier Markdown que nous pouvons utiliser comme modèle :\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\n\u003cpre class='chroma'\u003e\u003ccode class='language-r' data-lang='r'\u003e---\ntitle: \"Devoir maison 1\"\nauthor: \"{{nom}}\"\n---\n\nCréez une distribution normale avec une moyenne de {{moyenne}} et un écart-type de {{sd}} :\n\n```{r solution-1}\n# indice: utilisez la fonction rnorm\n```\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/div\u003e\n\u003cp\u003eEn utilisant le flux de travail ci-dessous, nous pouvons créer différents documents Markdown correspondant à différents élèves.\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\n\u003cpre class='chroma'\u003e\u003ccode class='language-r' data-lang='r'\u003e\u003cspan\u003e\u003cspan class='c'\u003e# génération des variables ----\u003c/span\u003e\u003c/span\u003e\n\u003cspan\u003e\u003cspan class='nv'\u003eetudiants\u003c/span\u003e \u003cspan class='o'\u003e\u0026lt;-\u003c/span\u003e \u003cspan class='nf'\u003e\u003ca href='https://rdrr.io/r/base/c.html'\u003ec\u003c/a\u003e\u003c/span\u003e\u003cspan class='o'\u003e(\u003c/span\u003e\u003cspan class='s'\u003e\"Maëlle\"\u003c/span\u003e, \u003cspan class='s'\u003e\"Christophe\"\u003c/span\u003e, \u003cspan class='s'\u003e\"Zhian\"\u003c/span\u003e\u003cspan class='o'\u003e)\u003c/span\u003e\u003c/span\u003e\n\u003cspan\u003e\u003cspan class='nv'\u003en\u003c/span\u003e \u003cspan class='o'\u003e\u0026lt;-\u003c/span\u003e \u003cspan class='nf'\u003e\u003ca href='https://rdrr.io/r/base/length.html'\u003elength\u003c/a\u003e\u003c/span\u003e\u003cspan class='o'\u003e(\u003c/span\u003e\u003cspan class='nv'\u003eetudiants\u003c/span\u003e\u003cspan class='o'\u003e)\u003c/span\u003e\u003c/span\u003e\n\u003cspan\u003e\u003cspan class='nv'\u003eclef\u003c/span\u003e \u003cspan class='o'\u003e\u0026lt;-\u003c/span\u003e \u003cspan class='nf'\u003e\u003ca href='https://rdrr.io/r/base/data.frame.html'\u003edata.frame\u003c/a\u003e\u003c/span\u003e\u003cspan class='o'\u003e(\u003c/span\u003e\u003c/span\u003e\n\u003cspan\u003e  nom \u003cspan class='o'\u003e=\u003c/span\u003e \u003cspan class='nv'\u003eetudiants\u003c/span\u003e,\u003c/span\u003e\n\u003cspan\u003e  moyenne \u003cspan class='o'\u003e=\u003c/span\u003e \u003cspan class='nf'\u003e\u003ca href='https://rdrr.io/r/stats/Poisson.html'\u003erpois\u003c/a\u003e\u003c/span\u003e\u003cspan class='o'\u003e(\u003c/span\u003e\u003cspan class='nv'\u003en\u003c/span\u003e, \u003cspan class='m'\u003e5\u003c/span\u003e\u003cspan class='o'\u003e)\u003c/span\u003e,\u003c/span\u003e\n\u003cspan\u003e  sd \u003cspan class='o'\u003e=\u003c/span\u003e \u003cspan class='nf'\u003e\u003ca href='https://rdrr.io/r/base/sprintf.html'\u003esprintf\u003c/a\u003e\u003c/span\u003e\u003cspan class='o'\u003e(\u003c/span\u003e\u003cspan class='s'\u003e\"%.1f\"\u003c/span\u003e, \u003cspan class='nf'\u003e\u003ca href='https://rdrr.io/r/stats/Uniform.html'\u003erunif\u003c/a\u003e\u003c/span\u003e\u003cspan class='o'\u003e(\u003c/span\u003e\u003cspan class='nv'\u003en\u003c/span\u003e\u003cspan class='o'\u003e)\u003c/span\u003e\u003cspan class='o'\u003e)\u003c/span\u003e,\u003c/span\u003e\n\u003cspan\u003e  fichier \u003cspan class='o'\u003e=\u003c/span\u003e \u003cspan class='nf'\u003e\u003ca href='https://rdrr.io/r/base/sprintf.html'\u003esprintf\u003c/a\u003e\u003c/span\u003e\u003cspan class='o'\u003e(\u003c/span\u003e\u003cspan class='s'\u003e\"%s-hw.fr.md\"\u003c/span\u003e, \u003cspan class='nv'\u003eetudiants\u003c/span\u003e\u003cspan class='o'\u003e)\u003c/span\u003e\u003c/span\u003e\n\u003cspan\u003e\u003cspan class='o'\u003e)\u003c/span\u003e\u003c/span\u003e\n\u003cspan\u003e\u003cspan class='c'\u003e# création des devoirs à partir du modèle ----\u003c/span\u003e\u003c/span\u003e\n\u003cspan\u003e\u003cspan class='nv'\u003emake_assignment\u003c/span\u003e \u003cspan class='o'\u003e\u0026lt;-\u003c/span\u003e \u003cspan class='kr'\u003efunction\u003c/span\u003e\u003cspan class='o'\u003e(\u003c/span\u003e\u003cspan class='nv'\u003eclef\u003c/span\u003e, \u003cspan class='nv'\u003emodele\u003c/span\u003e\u003cspan class='o'\u003e)\u003c/span\u003e \u003cspan class='o'\u003e\u0026#123;\u003c/span\u003e\u003c/span\u003e\n\u003cspan\u003e  \u003cspan class='nf'\u003e\u003ca href='https://rdrr.io/r/base/lapply.html'\u003elapply\u003c/a\u003e\u003c/span\u003e\u003cspan class='o'\u003e(\u003c/span\u003e\u003cspan class='nf'\u003e\u003ca href='https://rdrr.io/r/base/seq.html'\u003eseq\u003c/a\u003e\u003c/span\u003e\u003cspan class='o'\u003e(\u003c/span\u003e\u003cspan class='nv'\u003en\u003c/span\u003e\u003cspan class='o'\u003e)\u003c/span\u003e, \u003cspan class='kr'\u003efunction\u003c/span\u003e\u003cspan class='o'\u003e(\u003c/span\u003e\u003cspan class='nv'\u003ei\u003c/span\u003e\u003cspan class='o'\u003e)\u003c/span\u003e \u003cspan class='o'\u003e\u0026#123;\u003c/span\u003e\u003c/span\u003e\n\u003cspan\u003e    \u003cspan class='nv'\u003enew\u003c/span\u003e \u003cspan class='o'\u003e\u0026lt;-\u003c/span\u003e \u003cspan class='nf'\u003ewhisker\u003c/span\u003e\u003cspan class='nf'\u003e::\u003c/span\u003e\u003cspan class='nf'\u003e\u003ca href='https://rdrr.io/pkg/whisker/man/whisker.render.html'\u003ewhisker.render\u003c/a\u003e\u003c/span\u003e\u003cspan class='o'\u003e(\u003c/span\u003e\u003cspan class='nv'\u003emodele\u003c/span\u003e, data \u003cspan class='o'\u003e=\u003c/span\u003e \u003cspan class='nv'\u003eclef\u003c/span\u003e\u003cspan class='o'\u003e[\u003c/span\u003e\u003cspan class='nv'\u003ei\u003c/span\u003e, \u003cspan class='o'\u003e]\u003c/span\u003e\u003cspan class='o'\u003e)\u003c/span\u003e\u003c/span\u003e\n\u003cspan\u003e    \u003cspan class='nf'\u003ebrio\u003c/span\u003e\u003cspan class='nf'\u003e::\u003c/span\u003e\u003cspan class='nf'\u003e\u003ca href='https://brio.r-lib.org/reference/write_lines.html'\u003ewrite_lines\u003c/a\u003e\u003c/span\u003e\u003cspan class='o'\u003e(\u003c/span\u003e\u003cspan class='nv'\u003enew\u003c/span\u003e, \u003cspan class='nv'\u003eclef\u003c/span\u003e\u003cspan class='o'\u003e$\u003c/span\u003e\u003cspan class='nv'\u003efichier\u003c/span\u003e\u003cspan class='o'\u003e[\u003c/span\u003e\u003cspan class='nv'\u003ei\u003c/span\u003e\u003cspan class='o'\u003e]\u003c/span\u003e\u003cspan class='o'\u003e)\u003c/span\u003e\u003c/span\u003e\n\u003cspan\u003e  \u003cspan class='o'\u003e\u0026#125;\u003c/span\u003e\u003cspan class='o'\u003e)\u003c/span\u003e\u003c/span\u003e\n\u003cspan\u003e  \u003cspan class='kr'\u003e\u003ca href='https://rdrr.io/r/base/function.html'\u003ereturn\u003c/a\u003e\u003c/span\u003e\u003cspan class='o'\u003e(\u003c/span\u003e\u003cspan class='nf'\u003e\u003ca href='https://rdrr.io/r/base/invisible.html'\u003einvisible\u003c/a\u003e\u003c/span\u003e\u003cspan class='o'\u003e(\u003c/span\u003e\u003cspan class='o'\u003e)\u003c/span\u003e\u003cspan class='o'\u003e)\u003c/span\u003e\u003c/span\u003e\n\u003cspan\u003e\u003cspan class='o'\u003e\u0026#125;\u003c/span\u003e\u003c/span\u003e\n\u003cspan\u003e\u003cspan class='nv'\u003emd\u003c/span\u003e \u003cspan class='o'\u003e\u0026lt;-\u003c/span\u003e \u003cspan class='nf'\u003ebrio\u003c/span\u003e\u003cspan class='nf'\u003e::\u003c/span\u003e\u003cspan class='nf'\u003e\u003ca href='https://brio.r-lib.org/reference/read_lines.html'\u003eread_lines\u003c/a\u003e\u003c/span\u003e\u003cspan class='o'\u003e(\u003c/span\u003e\u003cspan class='s'\u003e\"hw-template.fr.md\"\u003c/span\u003e\u003cspan class='o'\u003e)\u003c/span\u003e\u003c/span\u003e\n\u003cspan\u003e\u003cspan class='nf'\u003emake_assignment\u003c/span\u003e\u003cspan class='o'\u003e(\u003c/span\u003e\u003cspan class='nv'\u003eclef\u003c/span\u003e, modele \u003cspan class='o'\u003e=\u003c/span\u003e \u003cspan class='nv'\u003emd\u003c/span\u003e\u003cspan class='o'\u003e)\u003c/span\u003e\u003c/span\u003e\n\u003cspan\u003e\u003cspan class='nf'\u003e\u003ca href='https://rdrr.io/r/base/print.html'\u003eprint\u003c/a\u003e\u003c/span\u003e\u003cspan class='o'\u003e(\u003c/span\u003e\u003cspan class='nv'\u003eclef\u003c/span\u003e\u003cspan class='o'\u003e)\u003c/span\u003e\u003c/span\u003e\n\u003cspan\u003e\u003cspan class='c'\u003e#\u0026gt;          nom moyenne  sd             fichier\u003c/span\u003e\u003c/span\u003e\n\u003cspan\u003e\u003cspan class='c'\u003e#\u0026gt; 1     Maëlle       7 0.1     Maëlle-hw.fr.md\u003c/span\u003e\u003c/span\u003e\n\u003cspan\u003e\u003cspan class='c'\u003e#\u0026gt; 2 Christophe       8 0.7 Christophe-hw.fr.md\u003c/span\u003e\u003c/span\u003e\n\u003cspan\u003e\u003cspan class='c'\u003e#\u0026gt; 3      Zhian       2 0.8      Zhian-hw.fr.md\u003c/span\u003e\u003c/span\u003e\n\u003cspan\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\n\u003c/div\u003e\n\u003cp\u003eVoici à quoi ressemblent les devoirs de Zhian :\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\n\u003cpre class='chroma'\u003e\u003ccode class='language-r' data-lang='r'\u003e---\ntitle: \"Devoir maison 1\"\nauthor: \"Zhian\"\n---\n\nCréez une distribution normale avec une moyenne de 2 et un écart-type de 0.8 :\n\n```{r solution-1}\n# indice: utilisez la fonction rnorm\n```\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/div\u003e\n\u003cdiv class=\"highlight\"\u003e\n\u003c/div\u003e\n\u003ch2 id=\"outils-de-manipulation-des-chaînes-de-caractères\"\u003e\n\n\u003ca class=\"anchor d-print-none\" href=\"#outils-de-manipulation-des-cha%c3%aenes-de-caract%c3%a8res\"\u003e\n  \u003csmall\u003e\u0026#x1F517;\u003c/small\u003e\n\u003c/a\u003e\n\nOutils de manipulation des chaînes de caractères\n\u003c/h2\u003e\u003cp\u003eTu peux utiliser des outils de manipulation de chaînes pour analyser Markdown si tu es sûr·e des variantes de Markdown que ton code recevra en entrée, ou si tu es prêt·e à développer ta base de code pour prendre en compte de nombreux cas de figure\u0026hellip; ce qui signifie en fin de compte que tu écris un véritable analyseur Markdown. Ce n\u0026rsquo;est pas pour les âmes sensibles\u0026hellip; et ce n\u0026rsquo;est pas nécessaire si tu lis la section qui suit celle-ci \u0026#x1f60c;\u003c/p\u003e\n\u003cp\u003eTu détectes les titres en utilisant par exemple \u003ccode\u003egrep(\u0026quot;^#\u0026quot;, markdown_lines)\u003c/code\u003e \u003csup id=\"fnref:2\"\u003e\u003ca href=\"#fn:2\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e2\u003c/a\u003e\u003c/sup\u003e .\u003c/p\u003e\n\u003cp\u003eParmi les exemples d\u0026rsquo;outils de manipulation de chaînes de caractères, on peut citer R base (\u003ca href=\"https://rdrr.io/r/base/grep.html\"\u003e\u003ccode\u003esub()\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://rdrr.io/r/base/grep.html\"\u003e\u003ccode\u003egrep()\u003c/code\u003e\u003c/a\u003e et ses amis), \u003ca href=\"https://stringr.tidyverse.org/\"\u003estringr\u003c/a\u003e (et \u003ca href=\"https://stringi.gagolewski.com/index.html\"\u003estringi\u003c/a\u003e), \u003ca href=\"https://rdrr.io/pkg/xfun/man/gsub_file.html\"\u003e\u003ccode\u003exfun::gsub_file()\u003c/code\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eBien que les outils de manipulation de chaînes de caractères soient d\u0026rsquo;une utilité limitée lors de l\u0026rsquo;analyse de Markdown, ils peuvent \u003cem\u003ecompléter\u003c/em\u003e les outils d\u0026rsquo;analyse proprement dits. Même si l\u0026rsquo;utilisation d\u0026rsquo;outils d\u0026rsquo;analyse Markdown spécifiques t\u0026rsquo;aidera à écrire moins d\u0026rsquo;expressions régulières toi-même\u0026hellip; ils ne t\u0026rsquo;en libéreront pas complètement.\u003c/p\u003e\n\u003ch2 id=\"outils-de-manipulation-des-représentations-abstraites\"\u003e\n\n\u003ca class=\"anchor d-print-none\" href=\"#outils-de-manipulation-des-repr%c3%a9sentations-abstraites\"\u003e\n  \u003csmall\u003e\u0026#x1F517;\u003c/small\u003e\n\u003c/a\u003e\n\nOutils de manipulation des représentations abstraites\n\u003c/h2\u003e\u003cp\u003eLes outils de manipulation des représentations abstraites sont fantastiques et nombreux. Ils traduisent le document Markdown en une structure de données appelée \u003ca href=\"https://en.wikipedia.org/wiki/Abstract_syntax_tree\"\u003eabstrait Syntax Tree (AST)\u003c/a\u003e qui te permet de contrôler finement des éléments spécifiques du document (par exemple, des titres ou des liens individuels, quelle que soit la façon dont ils sont écrits). Grâce à une structure de données formelle, tu peux manipuler par programme le document Markdown en ajoutant, en supprimant ou en manipulant des éléments de Markdown d\u0026rsquo;une manière standardisée.\u003c/p\u003e\n\u003cp\u003eCertains de ces outils te permettent de lire, d\u0026rsquo;éditer et de manipuler des documents Markdown et de les réécrire.\u003c/p\u003e\n\u003cp\u003eNous ne mentionnerons que les outils que tu peux utiliser directement à partir de R.\u003c/p\u003e\n\u003ch3 id=\"exemple-de-cas-dutilisation\"\u003e\n\n\u003ca class=\"anchor d-print-none\" href=\"#exemple-de-cas-dutilisation\"\u003e\n  \u003csmall\u003e\u0026#x1F517;\u003c/small\u003e\n\u003c/a\u003e\n\nExemple de cas d\u0026rsquo;utilisation\n\u003c/h3\u003e\u003cp\u003eDisons que tu as créé une série de tutoriels qui renvoient à un site Web contenant une galerie d\u0026rsquo;extensions pour un paquet populaire de visualisation de données. Disons aussi qu\u0026rsquo;un jour, quelqu\u0026rsquo;un découvre que le lien vers le site Web soudainement\u0026hellip; \u003ca href=\"https://github.com/ggplot2-exts/gallery/issues/112\"\u003eredirige vers un site potentiellement malveillant qui n\u0026rsquo;a certainement rien à voir avec la grammaire des graphiques\u003c/a\u003e et tu dois remplacer toutes les occurrences de ce lien par \u003ccode\u003e**redacted**\u003c/code\u003e. Étant donné que les liens en Markdown peuvent être écrits de plusieurs façons, les expressions régulières ne t\u0026rsquo;aideront pas, mais un analyseur Markdown à granularité fine le fera !\u003c/p\u003e\n\u003cp\u003eUn flux de travail pour cette situation serait le suivant :\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003elis l\u0026rsquo;AST Markdown avec ton analyseur préféré\u003c/li\u003e\n\u003cli\u003eretire tous les liens qui pointent vers le lien pourri\u003c/li\u003e\n\u003cli\u003eremplace-les par un texte en surbrillance qui dit \u0026ldquo;modifié\u0026rdquo;.\u003c/li\u003e\n\u003cli\u003econvertis l\u0026rsquo;AST et écris-le dans le fichier\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"tinkr\"\u003e\n\n\u003ca class=\"anchor d-print-none\" href=\"#tinkr\"\u003e\n  \u003csmall\u003e\u0026#x1F517;\u003c/small\u003e\n\u003c/a\u003e\n\n{tinkr}\n\u003c/h3\u003e\u003cp\u003eLe \u003ca href=\"https://docs.ropensci.org/tinkr/\"\u003epaquet tinkr\u003c/a\u003e créé par Maëlle Salmon et maintenu par Zhian Kamvar, analyse Markdown en XML en utilisant Commonmark, te permet d\u0026rsquo;extraire et de manipuler Markdown en utilisant XPath via le paquet \u003ca href=\"https://xml2.r-lib.org/\"\u003exml2\u003c/a\u003e. Tinkr réécrit le XML en Markdown à l\u0026rsquo;aide de XSLT. Les métadonnées YAML sont disponibles sous forme de chaîne de caractères. Tinkr prend en charge les morceaux de code exécutables.\u003c/p\u003e\n\u003cp\u003eLe paquet tinkr est utilisé dans les paquets \u003ca href=\"https://docs.ropensci.org/babeldown/\"\u003ebabeldown\u003c/a\u003e et \u003ca href=\"https://docs.ropensci.org/aeolus/\"\u003eaeolus\u003c/a\u003e.\u003c/p\u003e\n\u003ch3 id=\"md4r\"\u003e\n\n\u003ca class=\"anchor d-print-none\" href=\"#md4r\"\u003e\n  \u003csmall\u003e\u0026#x1F517;\u003c/small\u003e\n\u003c/a\u003e\n\n{md4r}\n\u003c/h3\u003e\u003cp\u003eLe \u003ca href=\"https://rundel.github.io/md4r/\"\u003epaquet md4r\u003c/a\u003e est un paquet expérimental récent maintenu par Colin Rundel. Il s\u0026rsquo;agit d\u0026rsquo;une enveloppe R autour de la bibliothèque MD4C (Markdown for C) qui représente l\u0026rsquo;AST sous forme de liste imbriquée avec des attributs dans R. La version de développement du paquet comporte des utilitaires permettant de construire des documents Markdown de manière programmatique.\u003c/p\u003e\n\u003ch3 id=\"pandoc\"\u003e\n\n\u003ca class=\"anchor d-print-none\" href=\"#pandoc\"\u003e\n  \u003csmall\u003e\u0026#x1F517;\u003c/small\u003e\n\u003c/a\u003e\n\nPandoc\n\u003c/h3\u003e\u003cp\u003eAvec Pandoc que nous avons présenté dans un \u003ca href=\"/fr/blog/2023/06/01/troubleshooting-pandoc-problems-as-an-r-user/\"\u003enote technique\u003c/a\u003e tu peux transformer un fichier Markdown en un arbre syntaxique abstrait Pandoc (soit dans son format natif, soit en JSON).\u003c/p\u003e\n\u003cp\u003eComment utiliser Pandoc pour éditer et réécrire un fichier Markdown ?\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eEn utilisant des filtres Lua : Pandoc convertit en AST dans son format natif, les filtres Lua permettent de le traiter pour le modifier, puis Pandoc peut écrire en markdown.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUtilisation de filtres JSON : Pandoc convertit en AST en produisant une représentation JSON, puis n\u0026rsquo;importe quel outil peut modifier ce fichier JSON et fournir une version modifiée à Pandoc pour qu\u0026rsquo;il la convertisse à nouveau en markdown.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eNote que Pandoc ne prend pas en charge les morceaux de code exécutables, car il ne sera pas en mesure d\u0026rsquo;analyser les morceaux de code exécutables en tant que \u003ccode\u003eCodeblock\u003c/code\u003e.\u003c/p\u003e\n\u003ch3 id=\"parseqmd\"\u003e\n\n\u003ca class=\"anchor d-print-none\" href=\"#parseqmd\"\u003e\n  \u003csmall\u003e\u0026#x1F517;\u003c/small\u003e\n\u003c/a\u003e\n\n{parseqmd}\n\u003c/h3\u003e\u003cp\u003eNic Crane a créé un paquet expérimental appelé \u003ca href=\"https://github.com/thisisnic/parseqmd\"\u003eparseqmd\u003c/a\u003e qui utilise cette stratégie, en analysant la sortie à l\u0026rsquo;aide de l\u0026rsquo;outil \u003ca href=\"https://jeroen.r-universe.dev/jsonlite\"\u003ejsonlite\u003c/a\u003e . Tu peux aussi transformer le Markdown en HTML, par exemple, puis revenir à Markdown. L\u0026rsquo;avantage du HTML est que tu peux utiliser un paquet tel que \u003ca href=\"https://xml2.r-lib.org/\"\u003exml2\u003c/a\u003e ou \u003ca href=\"https://rvest.tidyverse.org/\"\u003ervest\u003c/a\u003e pour extraire et manipuler les éléments.\u003c/p\u003e\n\u003ch3 id=\"parsermd\"\u003e\n\n\u003ca class=\"anchor d-print-none\" href=\"#parsermd\"\u003e\n  \u003csmall\u003e\u0026#x1F517;\u003c/small\u003e\n\u003c/a\u003e\n\n{parsermd}\n\u003c/h3\u003e\u003cp\u003eLe \u003ca href=\"https://rundel.github.io/parsermd/\"\u003epaquet parsermd\u003c/a\u003e est également maintenu par Colin Rundel et est une \u0026ldquo;implémentation d\u0026rsquo;une grammaire formelle et d\u0026rsquo;un analyseur pour les documents R Markdown en utilisant la bibliothèque Boost Spirit X3. Il comprend également une collection de fonctions de haut niveau pour travailler avec l\u0026rsquo;arbre syntaxique abstrait résultant.\u0026rdquo;\u003c/p\u003e\n\u003cp\u003eCe paquet possède des fonctionnalités pour un flux de travail \u0026ldquo;tidy\u0026rdquo; te permettant de sélectionner différentes sections du document. Une caractéristique utile est qu\u0026rsquo;il possède la fonction \u003ca href=\"https://rundel.github.io/parsermd/articles/templates.html\"\u003e\u003ccode\u003ermd_check_template()\u003c/code\u003e\u003c/a\u003e qui te permet de comparer les documents Markdown soumis par des étudiants par exemple, à un modèle standard. Tu peux regarder sa présentation à la conférence \u003ca href=\"https://posit.co/resources/videos/parsermd-parsing-r-markdown-for-fun-and-profit/\"\u003eRStudio::conf(2021)\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eLe paquet parsermd te permet même de \u003ca href=\"https://github.com/rundel/parsermd/issues/21\"\u003emodifier les documents\u003c/a\u003e.\u003c/p\u003e\n\u003ch3 id=\"lightparser\"\u003e\n\n\u003ca class=\"anchor d-print-none\" href=\"#lightparser\"\u003e\n  \u003csmall\u003e\u0026#x1F517;\u003c/small\u003e\n\u003c/a\u003e\n\n{lightparser}\n\u003c/h3\u003e\u003cp\u003eLe paquet \u003ca href=\"https://cloud.r-project.org/web/packages/lightparser/index.html\"\u003elightparser\u003c/a\u003e de Sébastien Rochette \u0026ldquo;divise tes fichiers rmarkdown ou quarto par sections dans un tibble : titres, texte, chunks ; reconstruit le fichier à partir du tibble\u0026rdquo;. Il peut être utilisé pour \u003ca href=\"https://edenian-prince.github.io/blog/posts/2024-08-21-translate-md-files/\"\u003etraduire des documents\u003c/a\u003e par exemple.\u003c/p\u003e\n\u003ch3 id=\"limpossibilité-dun-aller-retour-parfait\"\u003e\n\n\u003ca class=\"anchor d-print-none\" href=\"#limpossibilit%c3%a9-dun-aller-retour-parfait\"\u003e\n  \u003csmall\u003e\u0026#x1F517;\u003c/small\u003e\n\u003c/a\u003e\n\nL\u0026rsquo;impossibilité d\u0026rsquo;un aller-retour parfait\n\u003c/h3\u003e\u003cp\u003eLorsque l\u0026rsquo;on analyse et modifie du Markdown, puis que l\u0026rsquo;on réécrit en Markdown, certaines modifications indésirables peuvent apparaître. Par exemple, avec \u003ca href=\"https://docs.ropensci.org/tinkr/#general-principles-and-solution\"\u003etinkr\u003c/a\u003e les éléments de la liste commencent tous par un \u003ccode\u003e-\u003c/code\u003e même si dans le document original ils commençaient par un \u003ccode\u003e*\u003c/code\u003e. Avec md4r, les listes qui sont indentées avec un espace supplémentaire seront réajustées.\u003c/p\u003e\n\u003cp\u003eEn fonction de ton cas d\u0026rsquo;utilisation, tu peux trouver des moyens d\u0026rsquo;atténuer ces pertes, par exemple en ne réécrivant que les lignes sur lesquelles tu as fait des modifications intentionnelles.\u003c/p\u003e\n\u003ch3 id=\"comment-choisir-un-analyseur-\"\u003e\n\n\u003ca class=\"anchor d-print-none\" href=\"#comment-choisir-un-analyseur-\"\u003e\n  \u003csmall\u003e\u0026#x1F517;\u003c/small\u003e\n\u003c/a\u003e\n\nComment choisir un analyseur ?\n\u003c/h3\u003e\u003cp\u003eTu peux choisir un analyseur en fonction de ce qu\u0026rsquo;il te permet de manipuler avec le Markdown : si tu préfères XML\u003csup id=\"fnref:3\"\u003e\u003ca href=\"#fn:3\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e3\u003c/a\u003e\u003c/sup\u003e et HTML aux listes imbriquées, par exemple, tu préféreras utiliser tinkr ou Pandoc. Si les fonctions de haut niveau de md4r ou parsermd conviennent à ton cas d\u0026rsquo;utilisation, tu peux préférer l\u0026rsquo;un d\u0026rsquo;entre eux.\u003c/p\u003e\n\u003cp\u003eIl est important de noter que si tes documents contiennent des morceaux de code exécutable, tu dois utiliser un outil qui les prend en charge, comme parsermd, lightparser, tinkr.\u003c/p\u003e\n\u003cp\u003eUn autre critère important est de choisir un analyseur syntaxique qui se rapproche le plus possible du cas d\u0026rsquo;utilisation de tes fichiers Markdown. Si tu ne comptes travailler avec des fichiers Markdown que pour GitHub, commonmark/tinkr est un excellent choix puisque GitHub lui-même utilise commonmark. Maintenant, ton travail peut englober différentes sortes de fichiers Markdown qui seront utilisés par différents outils. Par exemple, l\u0026rsquo;outil \u003ca href=\"https://docs.ropensci.org/babeldown/\"\u003ebabeldown\u003c/a\u003e traite n\u0026rsquo;importe quel fichier Markdown\u003csup id=\"fnref:4\"\u003e\u003ca href=\"#fn:4\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e4\u003c/a\u003e\u003c/sup\u003e: Markdown, R Markdown, Quarto, Hugo. Dans ce cas, ou si aucun analyseur R ne fait exactement ce que fait l\u0026rsquo;utilisateur·rice final·e de ton Markdown, tu dois faire attention aux bizarreries de cet utilisateur·rice final·e. Tu devras peut-être ajouter des \u003ca href=\"/blog/2023/06/01/troubleshooting-pandoc-problems-as-an-r-user/#raw-attributes\"\u003eattributs bruts de Pandoc\u003c/a\u003e autour d\u0026rsquo;un shortcode Hugo, par exemple. De plus, si tu as besoin d\u0026rsquo;analyser certains éléments, comme encore une fois les shortcodes Hugo, tu peux avoir besoin d\u0026rsquo;écrire le code d\u0026rsquo;analyse toi-même, c\u0026rsquo;est-à-dire des expressions régulières.\u003c/p\u003e\n\u003ch2 id=\"quen-est-il-des-morceaux-de-code-\"\u003e\n\n\u003ca class=\"anchor d-print-none\" href=\"#quen-est-il-des-morceaux-de-code-\"\u003e\n  \u003csmall\u003e\u0026#x1F517;\u003c/small\u003e\n\u003c/a\u003e\n\nQu\u0026rsquo;en est-il des morceaux de code ?\n\u003c/h2\u003e\u003cp\u003eL\u0026rsquo;analyse et l\u0026rsquo;édition programmatiques du code R n\u0026rsquo;entrent pas dans le cadre de ce billet, mais sont suffisamment proches pour que tu y ajoutes quelques conseils.\u003c/p\u003e\n\u003ch3 id=\"expressions-régulières\"\u003e\n\n\u003ca class=\"anchor d-print-none\" href=\"#expressions-r%c3%a9guli%c3%a8res\"\u003e\n  \u003csmall\u003e\u0026#x1F517;\u003c/small\u003e\n\u003c/a\u003e\n\nExpressions régulières\n\u003c/h3\u003e\u003cp\u003eComme pour Markdown, tu peux avoir besoin d\u0026rsquo;utiliser des expressions régulières, mais c\u0026rsquo;est une approche risquée, car par exemple \u003ccode\u003eplot (x)\u003c/code\u003e et \u003ccode\u003eplot(x)\u003c/code\u003e sont tous deux des appels de fonction valides dans R.\u003c/p\u003e\n\u003ch3 id=\"xmlparsedata\"\u003e\n\n\u003ca class=\"anchor d-print-none\" href=\"#xmlparsedata\"\u003e\n  \u003csmall\u003e\u0026#x1F517;\u003c/small\u003e\n\u003c/a\u003e\n\n{xmlparsedata}\n\u003c/h3\u003e\u003cp\u003eTu peux analyser le code en XML à l\u0026rsquo;aide de l\u0026rsquo;analyseur de base R et de l\u0026rsquo;analyseur de code XML. \u003ca href=\"https://r-lib.github.io/xmlparsedata/\"\u003exmlparsedata\u003c/a\u003e puis tu manipules le XML avec \u003ca href=\"https://masalmon.eu/2022/04/08/xml-xpath/\"\u003eXPath\u003c/a\u003e. Pour réécrire le code, tu peux utiliser les attributs de chaque nœud qui indiquent les lignes et les colonnes d\u0026rsquo;origine.\u003c/p\u003e\n\u003cp\u003eAinsi, un flux de travail possible, tel qu\u0026rsquo;il est \u003ca href=\"https://masalmon.eu/2024/05/15/refactoring-xml/\"\u003eillustré dans l\u0026rsquo;article de Maëlle\u003c/a\u003e est le suivant :\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eTransforme le code en XML, utiliser xmlparsedata pour savoir ce qu\u0026rsquo;il faut changer et où. Ces étapes te permettront d\u0026rsquo;obtenir une liste des positions des éléments, par exemple.\u003c/li\u003e\n\u003cli\u003eUtilise brio pour lire les lignes, modifie-en quelques-unes avec les outils de base de R, puis utilise à nouveau brio pour réécrire les lignes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"treesitter\"\u003e\n\n\u003ca class=\"anchor d-print-none\" href=\"#treesitter\"\u003e\n  \u003csmall\u003e\u0026#x1F517;\u003c/small\u003e\n\u003c/a\u003e\n\n{treesitter}\n\u003c/h3\u003e\u003cp\u003e\u003ca href=\"https://github.com/DavisVaughan/r-tree-sitter\"\u003etree-sitter\u003c/a\u003e par Davis Vaughan \u0026ldquo;fournit des liens R à tree-sitter, un système d\u0026rsquo;analyse incrémentielle\u0026rdquo;.\u003c/p\u003e\n\u003ch2 id=\"quen-est-il-des-métadonnées-\"\u003e\n\n\u003ca class=\"anchor d-print-none\" href=\"#quen-est-il-des-m%c3%a9tadonn%c3%a9es-\"\u003e\n  \u003csmall\u003e\u0026#x1F517;\u003c/small\u003e\n\u003c/a\u003e\n\nQu\u0026rsquo;en est-il des métadonnées ?\n\u003c/h2\u003e\u003cp\u003eNous avons consacré tout ce billet à la question du \u003cem\u003ecorps\u003c/em\u003e des documents Markdown. Qu\u0026rsquo;en est-il des métadonnées contenues dans leur frontmatter, comme par exemple :\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" class=\"chroma\"\u003e\u003ccode class=\"language-yaml\" data-lang=\"yaml\"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nn\"\u003e---\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nt\"\u003etitle\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;Cool doc\u0026#34;\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nt\"\u003eauthor\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;Jane Doe\u0026#34;\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nn\"\u003e---\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003ePour extraire ou modifier les métadonnées YAML/TOML/JSON, tu dois d\u0026rsquo;abord décapiter les documents Markdown. Par exemple, rmarkdown possède une fonction appelée \u003ca href=\"https://pkgs.rstudio.com/rmarkdown/reference/yaml_front_matter.html\"\u003e\u003ccode\u003ermarkdown::yaml_front_matter()\u003c/code\u003e\u003c/a\u003e pour extraire les métadonnées YAML d\u0026rsquo;un document R Markdown ; le paquet R quarto possède une fonction appelée \u003ca href=\"https://quarto-dev.github.io/quarto-r/reference/quarto_inspect.html\"\u003e\u003ccode\u003equarto::quarto_inspect()\u003c/code\u003e\u003c/a\u003e qui, entre autres choses, produit les métadonnées.\u003c/p\u003e\n\u003cp\u003eTu peux lire les \u003cem\u003elignes\u003c/em\u003e du document Markdown en utilisant \u003ca href=\"https://rdrr.io/r/base/readLines.html\"\u003e\u003ccode\u003ereadLines()\u003c/code\u003e\u003c/a\u003e ou \u003ca href=\"https://brio.r-lib.org/reference/read_lines.html\"\u003e\u003ccode\u003ebrio::read_lines()\u003c/code\u003e\u003c/a\u003e avant de recourir à des expressions régulières pour identifier le début et la fin de la page de garde en fonction de son format.\u003c/p\u003e\n\u003cp\u003eEnsuite, pour gérer YAML, tu utiliseras \u003ca href=\"https://github.com/vubiostat/r-yaml/\"\u003e{yaml}\u003c/a\u003e et pour gérer TOML, tu pourrais utiliser \u003ca href=\"https://github.com/extendr/tomledit\"\u003e{tomledit}\u003c/a\u003e ou \u003ca href=\"https://cran.r-project.org/web/packages/RcppTOML/index.html\"\u003e{RcppTOML}\u003c/a\u003e Pour gérer JSON, tu peux utiliser \u003ca href=\"https://jeroen.r-universe.dev/jsonlite\"\u003e{jsonlite}\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eEnfin, si tu as besoin de réécrire le document Markdown, tu écriras ses lignes en utilisant \u003ca href=\"https://rdrr.io/r/base/writeLines.html\"\u003e\u003ccode\u003ewriteLines()\u003c/code\u003e\u003c/a\u003e ou \u003ca href=\"https://brio.r-lib.org/reference/write_lines.html\"\u003e\u003ccode\u003ebrio::write_lines()\u003c/code\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003ch2 id=\"exemples-danalyse-et-dédition-markdown\"\u003e\n\n\u003ca class=\"anchor d-print-none\" href=\"#exemples-danalyse-et-d%c3%a9dition-markdown\"\u003e\n  \u003csmall\u003e\u0026#x1F517;\u003c/small\u003e\n\u003c/a\u003e\n\nExemples d\u0026rsquo;analyse et d\u0026rsquo;édition Markdown\n\u003c/h2\u003e\u003cp\u003eLe paquet \u003ca href=\"https://carpentries.github.io/pegboard/\"\u003epegboard\u003c/a\u003e créé par Zhian Kamvar et maintenu par The Carpentries, analyse et valide les leçons de Carpentries pour les éléments structurels de Markdown, y compris les liens valides, le texte alt, et les fenced-divs connus grâce à tinkr. Ce paquet a permis de convertir toute l\u0026rsquo;infrastructure des leçons de The Carpentries de la syntaxe Markdown de Jekyll à la syntaxe Markdown de Pandoc. \u003csup id=\"fnref:5\"\u003e\u003ca href=\"#fn:5\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e5\u003c/a\u003e\u003c/sup\u003e .\u003c/p\u003e\n\u003cp\u003eLe \u003ca href=\"https://docs.ropensci.org/babeldown/\"\u003epaquet babeldown\u003c/a\u003e maintenu par Maëlle Salmon transforme Markdown en XML, l\u0026rsquo;envoie à l\u0026rsquo;API DeepL pour traduction, et réécrit les résultats en Markdown, en utilisant également tinkr.\u003c/p\u003e\n\u003ch2 id=\"conclusion\"\u003e\n\n\u003ca class=\"anchor d-print-none\" href=\"#conclusion\"\u003e\n  \u003csmall\u003e\u0026#x1F517;\u003c/small\u003e\n\u003c/a\u003e\n\nConclusion\n\u003c/h2\u003e\u003cp\u003eDans ce billet, nous avons expliqué comment analyser et éditer au mieux les fichiers Markdown. Pour créer des documents à partir d\u0026rsquo;un modèle (comme du publipostage), nous avons recommandé des outils de modélisation tels que \u003ca href=\"https://bookdown.org/yihui/rmarkdown-cookbook/knit-expand.html\"\u003e\u003ccode\u003eknitr::knit_expand()\u003c/code\u003e\u003c/a\u003e, le \u003ca href=\"https://github.com/edwindj/whisker\"\u003epaquet whisker\u003c/a\u003e, le \u003ca href=\"https://github.com/gregfrog/brew\"\u003epaquet brew\u003c/a\u003e, Pandoc. Pour éditer de petites parties d\u0026rsquo;un document, nous avons fait appel à des outils de manipulation de chaînes de caractères, c\u0026rsquo;est-à-dire des expressions régulières, avec R base (\u003ca href=\"https://rdrr.io/r/base/grep.html\"\u003e\u003ccode\u003esub()\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://rdrr.io/r/base/grep.html\"\u003e\u003ccode\u003egrep()\u003c/code\u003e\u003c/a\u003e et ses amis), \u003ca href=\"https://stringr.tidyverse.org/\"\u003estringr\u003c/a\u003e (et stringi), \u003ca href=\"https://rdrr.io/pkg/xfun/man/gsub_file.html\"\u003e\u003ccode\u003exfun::gsub_file()\u003c/code\u003e\u003c/a\u003e. Pour une manipulation plus lourde, et plus sûre, nous avons listé des outils basés sur des outils qui manipulent la représentation abstraite des documents : tinkr, md4r, Pandoc, parseqmd, parsermd, lightparser. Nous avons également mentionné des outils permettant de travailler avec le \u003cem\u003ecode R\u003c/em\u003e à l\u0026rsquo;intérieur des cellules de code, et pour travailler avec le \u003cem\u003efrontmatter\u003c/em\u003e YAML/TOML/JSON.\u003c/p\u003e\n\u003cp\u003eQu\u0026rsquo;est-ce que \u003cem\u003etu\u003c/em\u003e utilises pour gérer les fichiers Markdown ?\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003eEn date du 2024-06-20, il y a \u003ca href=\"https://web.archive.org/web/20250328101117/https://github.com/markdown/markdown.github.com/wiki/Implementations\"\u003e76 programmes qui analysent Markdown\u003c/a\u003e dont certains ont une saveur particulière.\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:2\"\u003e\n\u003cp\u003eMais cela détecterait également les commentaires de code ! Ne fais pas ça !\u0026#160;\u003ca href=\"#fnref:2\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:3\"\u003e\n\u003cp\u003eMaëlle et Zhian sont\u003cem\u003eénormes\u003c/em\u003e fans de XML et de XPath (voir : \u003ca href=\"https://masalmon.eu/2022/04/08/xml-xpath/\"\u003ehttps://masalmon.eu/2022/04/08/xml-xpath/\u003c/a\u003e et \u003ca href=\"https://zkamvar.netlify.app/blog/gh-task-lists/\"\u003ehttps://zkamvar.netlify.app/blog/gh-task-lists/\u003c/a\u003e).\u0026#160;\u003ca href=\"#fnref:3\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:4\"\u003e\n\u003cp\u003eOu du moins c\u0026rsquo;est censé être le cas :sweat_smile : Heureusement, les utilisateur·rice·s signalent des cas limites qui ne sont pas encore couverts.\u0026#160;\u003ca href=\"#fnref:4\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:5\"\u003e\n\u003cp\u003ePour des exemples, voir \u003ca href=\"https://carpentries.github.io/workbench/transition-guide.html\"\u003eThe Carpentries Workbench Transition Guide\u003c/a\u003e.\u0026#160;\u003ca href=\"#fnref:5\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n",
				"url": "https://deploy-preview-1283--ropensci.netlify.app/fr/blog/2025/09/18/markdown-programmatique/",
				"date_published": "2025-09-18T00:00:00+00:00"
			}
		
		, 
			{
				"id": "https://deploy-preview-1283--ropensci.netlify.app/fr/blog/2025/06/23/publication-multilingue-faq/",
				"title": "Publication multilingue : Questions fréquemment posées",
				"content_text": "\u003cp\u003eComme nous l\u0026rsquo;avons \u003ca href=\"/multilingual-publishing\"\u003enous l\u0026rsquo;avons déjà dit\u003c/a\u003e, nous pensons que la publication de ressources multilingues peut abaisser la barrière d\u0026rsquo;accès au savoir, aider à démocratiser l\u0026rsquo;accès à des ressources de qualité et augmenter les possibilités de contribuer à des logiciels et à des projets de science ouverte.\nNos efforts continus de \u003ca href=\"/multilingual-publishing\"\u003epublication multilingue\u003c/a\u003e sont cruciaux pour la \u003ca href=\"/about\"\u003emission de rOpenSci\u003c/a\u003e.\nEn présentant ce projet à des \u003ca href=\"/talks-papers/\"\u003econférences\u003c/a\u003e et \u003ca href=\"/commcalls/nov2023-multilingual/\"\u003eailleurs\u003c/a\u003e, nous entamons une conversation importante avec des personnes moins familières avec ce type de projet ou qui ne connaissent pas nos \u003ca href=\"https://translationguide.ropensci.org/\"\u003eméthodes de travail\u003c/a\u003e.\nDans ce billet, nous résumons les questions fréquemment posées, et nos meilleures réponses à ces questions (encore mieux formulées que dans le feu de l\u0026rsquo;action lors d\u0026rsquo;une séances de questions après une présentation \u0026#x1f601;).\u003c/p\u003e\n\u003ch2 id=\"les-traductions-rendront-elles-les-gens-paresseux-en-ce-sens-quilelles-napprendront-pas-langlais-\"\u003e\n\n\u003ca class=\"anchor d-print-none\" href=\"#les-traductions-rendront-elles-les-gens-paresseux-en-ce-sens-quilelles-napprendront-pas-langlais-\"\u003e\n  \u003csmall\u003e\u0026#x1F517;\u003c/small\u003e\n\u003c/a\u003e\n\nLes traductions rendront-elles les gens \u0026ldquo;paresseux\u0026rdquo; en ce sens qu\u0026rsquo;il·elle·s n\u0026rsquo;apprendront pas l\u0026rsquo;anglais ?\n\u003c/h2\u003e\u003cp\u003eTout d\u0026rsquo;abord, il est important de préciser que \u003cem\u003epas\u003c/em\u003e n\u0026rsquo;apprend pas l\u0026rsquo;anglais ne signifie pas que les gens sont paresseux.\nDe nombreuses personnes qui ne parlent pas anglais parlent déjà plusieurs langues, et même si elles n\u0026rsquo;en parlent qu\u0026rsquo;une, travailler sur son projet avec les outils dont on dispose est déjà un travail suffisant.\u003c/p\u003e\n\u003cp\u003eDeuxièmement, notre objectif n\u0026rsquo;est pas que les gens deviennent anglophones. Les gens peuvent choisir (ou non) d\u0026rsquo;apprendre l\u0026rsquo;anglais à tout moment, mais le fait d\u0026rsquo;avoir d\u0026rsquo;abord appris à, disons, développer un logiciel en utilisant le français ne va pas les en empêcher.\nNotre objectif est que les gens puissent utiliser des logiciels libres et y contribuer, et cela ne devrait pas dépendre du fait qu\u0026rsquo;il·elle·s parlent anglais. Dans le domaine des sciences, il est déjà assez difficile de ne pas être de langue maternelle anglaise et il existe un grand \u0026ldquo;potentiel inexploité de locuteurs non natifs de l\u0026rsquo;anglais\u0026rdquo; \u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e. Libérons ce potentiel !\u003c/p\u003e\n\u003ch3 id=\"relatif--est-ce-si-difficile-de-lire-en-anglais-\"\u003e\n\n\u003ca class=\"anchor d-print-none\" href=\"#relatif--est-ce-si-difficile-de-lire-en-anglais-\"\u003e\n  \u003csmall\u003e\u0026#x1F517;\u003c/small\u003e\n\u003c/a\u003e\n\nRelatif : Est-ce si difficile de lire en anglais ?\n\u003c/h3\u003e\u003cp\u003eOui, c\u0026rsquo;est l\u0026rsquo;un des \u0026ldquo;multiples coûts liés au fait d\u0026rsquo;être un anglophone non natif dans le domaine des sciences\u0026rdquo; \u003csup id=\"fnref1:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e .\nDe plus, plusieurs études ont démontré les difficultés d\u0026rsquo;apprendre à coder dans des langages de programmation basés sur l\u0026rsquo;anglais sans être anglophone, et les avantages d\u0026rsquo;avoir la possibilité d\u0026rsquo;apprendre dans sa langue maternelle.\u003c/p\u003e\n\u003cp\u003eGou\u003csup id=\"fnref:2\"\u003e\u003ca href=\"#fn:2\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e2\u003c/a\u003e\u003c/sup\u003e a constaté que les personnes dont l\u0026rsquo;anglais n\u0026rsquo;est pas la langue maternelle se heurtaient à des obstacles dans la lecture de matériel pédagogique, la communication technique, la lecture et l\u0026rsquo;écriture de code, et l\u0026rsquo;apprentissage simultané de l\u0026rsquo;anglais et de la programmation.\nCes difficultés trouvent leur origine dans la nécessité de développer la compréhension de l\u0026rsquo;anglais \u003cem\u003een même temps\u003c/em\u003e que l\u0026rsquo;on attend d\u0026rsquo;elles·eux qu\u0026rsquo;il·elle·s se familiarisent avec le sujet spécifique : dans notre cas, comment développer des logiciels libre et de haute qualité pour la recherche.\nSi vous avez déjà essayé d\u0026rsquo;apprendre les statistiques et R en même temps, vous avez peut-être une idée de la difficulté de la tâche. Ce type d\u0026rsquo;apprentissage double augmente la charge cognitive, ce qui peut entraver l\u0026rsquo;apprentissage\u003csup id=\"fnref:3\"\u003e\u003ca href=\"#fn:3\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e3\u003c/a\u003e\u003c/sup\u003e.\u003c/p\u003e\n\u003cp\u003eUne autre étude \u003csup id=\"fnref:4\"\u003e\u003ca href=\"#fn:4\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e4\u003c/a\u003e\u003c/sup\u003e suggère que si l\u0026rsquo;apprentissage de la programmation en anglais n\u0026rsquo;est pas nécessairement difficile pour tous les non-anglophones, l\u0026rsquo;inclusion de la langue maternelle des apprenant·e·s peut rendre l\u0026rsquo;expérience d\u0026rsquo;apprentissage plus claire, plus encourageante et plus agréable.\u003c/p\u003e\n\u003cp\u003ePour en savoir plus sur le sujet, vous pouvez suivre le travail de \u003ca href=\"https://www.felienne.com\"\u003eFelienne Hermans\u003c/a\u003e, spécialisée dans la conception de langages de programmation, qui a développé un langage de programmation multilingue pour l\u0026rsquo;enseignement.\u003c/p\u003e\n\u003ch3 id=\"relatif--les-gens-devraient-apprendre-langlais\"\u003e\n\n\u003ca class=\"anchor d-print-none\" href=\"#relatif--les-gens-devraient-apprendre-langlais\"\u003e\n  \u003csmall\u003e\u0026#x1F517;\u003c/small\u003e\n\u003c/a\u003e\n\nRelatif : Les gens devraient apprendre l\u0026rsquo;anglais\n\u003c/h3\u003e\u003cp\u003eCertaines personnes assènent que l\u0026rsquo;on doit apprendre l\u0026rsquo;anglais si l\u0026rsquo;on veut travailler dans le domaine de la programmation et des sciences parce que l\u0026rsquo;anglais est la lingua franca de ces disciplines.\u003c/p\u003e\n\u003cp\u003eMalheureusement, même si c\u0026rsquo;était souhaitable, ce n\u0026rsquo;est tout simplement pas possible pour beaucoup de personnes, en particulier pour les programmeur·rice·s occasionnel·le·s ou les utilisateur·rice·s finaux·les. Il·elle·s n\u0026rsquo;ont pas forcément le temps, l\u0026rsquo;énergie ou l\u0026rsquo;argent pour apprendre la programmation et l\u0026rsquo;anglais en même temps \u003csup id=\"fnref:5\"\u003e\u003ca href=\"#fn:5\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e5\u003c/a\u003e\u003c/sup\u003e.\u003c/p\u003e\n\u003cp\u003eAvec quelques chiffres : \u003ca href=\"https://www.languagecert.org/en/guided-learning-hours\"\u003eLe Cadre européen commun de référence pour les langues\u003c/a\u003e a établi un tableau des heures d\u0026rsquo;apprentissage guidé généralement nécessaires pour atteindre chaque niveau de compétence linguistique. Il s\u0026rsquo;agit des heures passées à étudier avec un·e professeur·e ou dans le cadre d\u0026rsquo;un apprentissage structuré.\u003c/p\u003e\n\u003cp\u003ePar exemple, en commençant en tant que débutant·e (A1), pour devenir intermédiaire (B1), il faudra environ \u003cstrong\u003e400 heures d\u0026rsquo;apprentissage guidé\u003c/strong\u003e.  En pouvant consacrer \u003cstrong\u003e5 heures par semaine\u003c/strong\u003e il faudra \u003cstrong\u003e1,5 an\u003c/strong\u003e  et un budget minimum de \u003cstrong\u003e6 000 DOLLARS AMÉRICAINS\u003c/strong\u003e pour apprendre l\u0026rsquo;anglais. À titre de référence, cela équivaudrait à deux ans de salaire pour une personne ayant un salaire minimum en Argentine. Ce montant ne prend pas non plus en compte le coût pour trouver le temps d\u0026rsquo;étudier (services de garde d\u0026rsquo;enfants, réduction du nombre d\u0026rsquo;heures de travail, etc.)\u003c/p\u003e\n\u003cp\u003eEn traduisant les documents et les ressources, nous réduisons la charge qui pèse sur les non-anglophones. Plus il y a de personnes impliquées dans les logiciels libres et la science, plus nous bénéficions tous d\u0026rsquo;un plus grand réservoir d\u0026rsquo;expériences et d\u0026rsquo;expertise.\nEnfin, nous voulons que tout le monde ait les mêmes chances d\u0026rsquo;apprendre !\u003c/p\u003e\n\u003ch2 id=\"pourquoi-ne-pas-juste-utiliser-des-traductions-automatiques-\"\u003e\n\n\u003ca class=\"anchor d-print-none\" href=\"#pourquoi-ne-pas-juste-utiliser-des-traductions-automatiques-\"\u003e\n  \u003csmall\u003e\u0026#x1F517;\u003c/small\u003e\n\u003c/a\u003e\n\nPourquoi ne pas juste utiliser des traductions automatiques ?\n\u003c/h2\u003e\u003cp\u003ePour nos \u003ca href=\"https://translationguide.ropensci.org/intro.html#general-aspects-of-the-stage-1-of-the-translation-process\"\u003eflux de traduction\u003c/a\u003e les traductions automatiques constituent la première étape, suivie des révisions humaines.\nBien qu\u0026rsquo;il soit techniquement possible de publier directement des traductions automatiques ou d\u0026rsquo;utiliser des outils de traduction à la volée, il y a des inconvénients.\nTout d\u0026rsquo;abord, il est bien documenté que la traduction automatique ne fonctionne pas bien pour les langues les moins courantes\u003csup id=\"fnref1:5\"\u003e\u003ca href=\"#fn:5\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e5\u003c/a\u003e\u003c/sup\u003e.\nMême pour les langues courantes, les traductions automatiques comportent toujours des erreurs, et font des erreurs liées au contexte, à la grammaire et à la syntaxe, ainsi qu\u0026rsquo;aux marques de genre.\nLa traduction automatique ne peut pas non plus localiser certains contenus, comme les expressions idiomatiques ou les symboles monétaires et numériques.\u003c/p\u003e\n\u003cp\u003eSi nous nous fions uniquement à la traduction automatique, le contenu dans des langues traduites sera de moins bonne qualité, ce qui reviendrait à accepter que les utilisateur·rice·s des langues semi-supportées ne méritent pas la même qualité que les autres.\nC\u0026rsquo;est pourquoi, à rOpenSci, des traducteur·rice·s humain·e·s sont impliqué·e·s dans le processus pour s\u0026rsquo;assurer que tout notre contenu est de bonne qualité, quelle que soit la langue.\u003c/p\u003e\n\u003ch2 id=\"pourquoi-ne-pas-utiliser-insérer-le-nom-dune-plateforme-de-traduction-au-lieu-de-git-et-github-\"\u003e\n\n\u003ca class=\"anchor d-print-none\" href=\"#pourquoi-ne-pas-utiliser-ins%c3%a9rer-le-nom-dune-plateforme-de-traduction-au-lieu-de-git-et-github-\"\u003e\n  \u003csmall\u003e\u0026#x1F517;\u003c/small\u003e\n\u003c/a\u003e\n\nPourquoi ne pas utiliser \u003ccode\u003e\u0026lt;insérer-le-nom-d'une-plateforme-de-traduction\u0026gt;\u003c/code\u003e au lieu de Git et GitHub ?\n\u003c/h2\u003e\u003cp\u003eIl existe de nombreuses plateformes différentes pour la traduction, ce qui est fantastique !\nCependant, nous sommes une communauté technique et nous traduisons et localisons du contenu technique.\nNous utilisons déjà Git et GitHub dans nos autres flux de développement et de nombreux membres de notre communauté connaissent ces outils ou prévoient de les apprendre.\nPour les membres qui ne connaissent pas Git et GitHub, nous avons des ressources et les aidons volontiers à apprendre, et il·elle·s disposent alors de nouveaux outils qu\u0026rsquo;il·elle·s peuvent appliquer à d\u0026rsquo;autres projets techniques.\nPour en savoir plus sur nos outils et nos processus, consultez notre rubrique \u003ca href=\"https://translationguide.ropensci.org/intro.html#technical-infrastructure-and-workflows\"\u003eguide de traduction\u003c/a\u003e.\u003c/p\u003e\n\u003ch2 id=\"la-traduction-et-la-maintenance-des-traductions-ne-représentent-elles-pas-un-travail-considérable-\"\u003e\n\n\u003ca class=\"anchor d-print-none\" href=\"#la-traduction-et-la-maintenance-des-traductions-ne-repr%c3%a9sentent-elles-pas-un-travail-consid%c3%a9rable-\"\u003e\n  \u003csmall\u003e\u0026#x1F517;\u003c/small\u003e\n\u003c/a\u003e\n\nLa traduction et la maintenance des traductions ne représentent-elles pas un travail considérable ?\n\u003c/h2\u003e\u003cp\u003eOui, c\u0026rsquo;est vrai !\nMais nous pensons que cela en vaut la peine.\nDe plus, le travail de traduction apporte de nouveaux·elles contributeur·rice·s à la communauté, ce qui a) aide à partager la charge de travail, b) sert de tremplin à d\u0026rsquo;autres formes de contributions, et c) diversifie notre communauté.\u003c/p\u003e\n\u003ch2 id=\"conclusion\"\u003e\n\n\u003ca class=\"anchor d-print-none\" href=\"#conclusion\"\u003e\n  \u003csmall\u003e\u0026#x1F517;\u003c/small\u003e\n\u003c/a\u003e\n\nConclusion\n\u003c/h2\u003e\u003cp\u003eDans ce billet, nous avons répondu aux questions courantes que nous recevons sur notre projet de publication multilingue.\nNous sommes convaincus que fournir des ressources multilingues de qualité fait partie du travail pour plus de \u003ca href=\"/blog/2025/02/05/no-science-without-deia/\"\u003ediversité, l\u0026rsquo;équité, l\u0026rsquo;inclusion et l\u0026rsquo;accessibilité\u003c/a\u003e dans le logiciel libre et la science ouverte.\nVotre participation est la bienvenue\u0026hellip; tout comme vos questions !\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003eAmano T, Ramírez-Castañeda V, Berdejo-Espinola V, Borokini I, Chowdhury S, Golivets M, et al. (2023) The manifold costs of being a non-native English speaker in science. PLoS Biol 21(7) : e3002184.\u003ca href=\"https://doi.org/10.1371/journal.pbio.3002184\"\u003ehttps://doi.org/10.1371/journal.pbio.3002184\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref1:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:2\"\u003e\n\u003cp\u003ePhilip J. Guo. 2018. Les personnes dont l\u0026rsquo;anglais n\u0026rsquo;est pas la langue maternelle apprennent la programmation informatique : Barrières, désirs et possibilités de conception. Dans les actes de la conférence 2018 de la CHI sur les facteurs humains dans les systèmes informatiques (CHI \u0026lsquo;18). Association for Computing Machinery, New York, NY, États-Unis, document 396, 1-14.\u003ca href=\"https://doi.org/10.1145/3173574.3173970\"\u003ehttps://doi.org/10.1145/3173574.3173970\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:2\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:3\"\u003e\n\u003cp\u003eGoldin, A. (2022). Neurociencia en la escuela : Guía amigable (sin bla bla) para entender cómo funciona el cerebro durante el aprendizaje. Siglo XXI Editores.\u0026#160;\u003ca href=\"#fnref:3\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:4\"\u003e\n\u003cp\u003eEthel Tshukudu, Emma Dodoo, Felienne Hermans, et Monkgogi Mudongo. 2024. La programmation bilingue : Une étude sur les attitudes et les expériences des étudiants dans le contexte africain. Dans les actes de la 24e conférence internationale de Koli Calling sur la recherche en éducation informatique (Koli Calling \u0026lsquo;24). Association for Computing Machinery, New York, NY, États-Unis, article 42, 1-11.\u003ca href=\"https://doi.org/10.1145/3699538.3699561\"\u003ehttps://doi.org/10.1145/3699538.3699561\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:4\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:5\"\u003e\n\u003cp\u003eAlaaeddin Swidan et Felienne Hermans. 2023. Un cadre pour la localisation des langages de programmation. Dans les actes du 2023 ACM SIGPLAN International Symposium on SPLASH-E (SPLASH-E 2023). Association for Computing Machinery, New York, NY, États-Unis, 13-25.\u003ca href=\"https://doi.org/10.1145/3622780.3623645\"\u003ehttps://doi.org/10.1145/3622780.3623645\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:5\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref1:5\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n",
				"url": "https://deploy-preview-1283--ropensci.netlify.app/fr/blog/2025/06/23/publication-multilingue-faq/",
				"date_published": "2025-06-23T00:00:00+00:00"
			}
		
    ]
}