{fusen} s’appuie désormais sur {lightparser} pour détecter les différentes parties d’un fichier Rmd ou Qmd avant de gonfler votre fichier plat en tant que package R. Avant la sortie sur CRAN, j’ai besoin que vous testiez la version de développement et me signaliez les cas particuliers avec vos fichiers plats.
Pas l’temps d’tout lire
Table des matières
Veuillez essayer la version préliminaire de {fusen} avec {lightparser}, afin que je puisse identifier les cas particuliers avant la sortie sur CRAN.
- Installez {fusen} et {lightparser} depuis r-universe :
install.packages('lightparser', repos = c('https://thinkr-open.r-universe.dev', 'https://cloud.r-project.org'))
install.packages('fusen', repos = c('https://thinkr-open.r-universe.dev', 'https://cloud.r-project.org'))
- Je vous suggère de créer une nouvelle branche git sur votre projet pour tester cette version de {fusen}.
- Essayez de gonfler tous vos fichiers plats:
fusen::inflate_all()
- Vérifiez le diff de votre projet pour voir si quelque chose vous semble étrange dans le processus de copier-coller.
- Si vous rencontrez un problème, veuillez ajouter un commentaire dans ce ticket #237 sur le repo {fusen} avec un exemple reproductible : https://github.com/ThinkR-open/fusen/issues/237
Merci !
fusen 0.6.0 avec un nouveau parseur
{fusen} utilise maintenant {lightparser} au lieu de {parsermd} pour détecter les différentes parties d’un fichier Rmd ou Qmd avant de gonfler votre fichier plat en tant que package R.
Le changement de parseur a été motivé par des problèmes d’installation rencontrés avec {fusen} et {parsermd} sur CentOS ou sur Windows.
Error : C++14 standard requested but CXX14 is not defined
Vous pouvez essayer cette nouvelle version de {fusen} sur vos projets actuels. Je vous suggère de créer une nouvelle branche git sur votre projet pour tester cette version de {fusen}.
Installez {fusen} et {lightparser} depuis r-universe :
install.packages('lightparser', repos = c('https://thinkr-open.r-universe.dev', 'https://cloud.r-project.org'))
install.packages('fusen', repos = c('https://thinkr-open.r-universe.dev', 'https://cloud.r-project.org'))
Gonflez tous vos fichiers plats en cours, ou bien tous les fichiers plats en même temps :
fusen::inflate_all()
Il y aura des différences connues dans les sorties :
- Le fichier DESCRIPTION stockera le nouveau numéro de version de {fusen}.
- Les vignettes seront réécrites avec le paramètre de chunk en tant que liste Quarto (
#| eval: false
) à l’intérieur du chunk, au lieu de l’ancien paramètre{r, eval = FALSE}
dans l’appel du chunk, quelle que soit la manière dont vous les avez déclarées dans le fichier plat. - Vous verrez probablement des différences dans le nombre de lignes vides dans les vignettes en raison de la façon dont les différentes sections sont détectées et restaurées par {lightparser}.
Veuillez signaler tout comportement suspect en ajoutant un commentaire dans ce ticket #237 sur le repo {fusen} avec un exemple reproductible avant que je ne publie cette version sur CRAN.
En théorie, cela ne devrait affecter que le processus de copier-coller de votre fichier plat dans les fichiers R, de test et de vignettes résultants.
Selon la version de {fusen} que vous utilisiez auparavant, les changements peuvent être plus importants.
Veuillez consulter l’historique des modifications :
- dans le NEWS : https://thinkr-open.github.io/fusen/news/index.html
- ou dans les articles de blog correspondants : https://rtask.thinkr.fr/fr/fusen-fr/
Notez qu’il y a d’autres changements dans cette version de {fusen} :
- Ajout du paramètre
organisation
dansinit_share_on_github()
pour envoyer vers une organisation GitHub load_flat_functions()
fonctionne avec VSCode
lightparser 0.0.1, le nouveau parseur pour les fichiers Rmd/Qmd
{lightparser} est une version légère de ce que {parsermd} faisait, mais sans C++. Il a été conçu pour être utilisé avec {fusen}, mais peut également être utilisé indépendamment.
Cela me permettra également de maintenir {lightparser} en fonction des besoins de {fusen}.
Installez {lightparser} depuis r-universe :
install.packages('lightparser', repos = c('https://thinkr-open.r-universe.dev', 'https://cloud.r-project.org'))
Séparer votre Rmd ou Qmd en section dans un tibble :
library(lightparser)
file <- system.file(
"dev-template-parsing.Rmd",
package = "lightparser"
)
tbl_rmd <- split_to_tbl(file)
tbl_rmd
#> # A tibble: 35 × 8
#> type label params text code heading heading_level section
#> <chr> <chr> <list> <named > <lis> <chr> <dbl> <chr>
#> 1 yaml <NA> <named list> <lgl> <lgl> <NA> NA <NA>
#> 2 inline <NA> <lgl [1]> <chr> <lgl> <NA> NA <NA>
#> 3 block development <named list> <lgl> <chr> <NA> NA <NA>
#> 4 inline <NA> <lgl [1]> <chr> <lgl> <NA> NA <NA>
#> 5 heading <NA> <lgl [1]> <chr> <lgl> Descri… 1 Descri…
#> 6 inline <NA> <lgl [1]> <chr> <lgl> <NA> NA Descri…
#> 7 block description <named list> <lgl> <chr> <NA> NA Descri…
#> 8 inline <NA> <lgl [1]> <chr> <lgl> <NA> NA Descri…
#> 9 heading <NA> <lgl [1]> <chr> <lgl> Read d… 1 Read d…
#> 10 inline <NA> <lgl [1]> <chr> <lgl> <NA> NA Read d…
#> # ℹ 25 more rows
Vous pouvez recréer le fichier Rmd/Qmd à partir du tibble renvoyé par split_to_tbl()
.
Avant de combiner le tibble en tant que nouveau fichier, vous pouvez modifier son contenu en supprimant ou ajoutant des lignes, en remplaçant du contenu, etc.
file <- system.file("dev-template-parsing.Rmd",
package = "lightparser"
)
# split first
tbl_rmd <- split_to_tbl(file)
# apply your filters on any part you'd like to remove
tbl_rmd_filtered <- tbl_rmd[-5, ]
# combine then
combine_tbl_to_file(tbl_rmd_filtered, tempfile(fileext = ".Rmd"))
Qu’est-ce qui se passe après ?
Je vais publier cette version de {fusen} sur CRAN dans quelques jours si aucun problème n’est signalé.
J’espère que ces changements faciliteront l’installation de {fusen} pour tout le monde, en particulier pour les utilisateurs de Windows et de CentOS.
Au cas où vous l’auriez manqué, les dernières versions de {fusen} ont apporté quelques améliorations :
- Gonflez tous vos fichiers plats en une seule fois avec
fusen::inflate_all()
: https://rtask.thinkr.fr/fusen-v0-5-gotta-inflate-em-all/ et https://thinkr-open.github.io/fusen/articles/inflate-all-your-flat-files.html - Partagez votre package avec une documentation complète et un CI/CD sur GitHub en une seule commande avec
fusen::init_share_on_github()
: https://thinkr-open.github.io/fusen/articles/share-on-a-github-website.html - {fusen} fonctionne sur VSCode