- Notifications
You must be signed in to change notification settings - Fork5
From Rmd And Qmd To Tibble And Back
License
Unknown, MIT licenses found
Licenses found
ThinkR-open/lightparser
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
You need to extract some specific information from your Rmd or Qmd file?{lightparser} is designed to split your Rmd or Qmd file by sections intoa tibble: titles, text, chunks. It stores them as a tibble, so you caneasily manipulate it with {dplyr} or {purrr}. Later, you can rebuild aRmd or Qmd from the tibble.
You can install the released CRAN version:
install.packages("lightparser")You can install the development version of lightparser fromGitHub with:
# install.packages("devtools")devtools::install_github("ThinkR-open/lightparser")
Full documentation website on:https://thinkr-open.github.io/lightparser/
Split your Rmd or Qmd file into a 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
Combine the tibble into a Rmd or Qmd file:
file_out<- tempfile(fileext=".Rmd")out<- combine_tbl_to_file(tbl_rmd,file_out)
Read the file re-created withcombine_tbl_to_file() to verify it is aproper Rmd
cat(readLines(file_out),sep="\n")#> ---#> title: dev_history.Rmd for working package#> output: html_document#> author: statnmap#> date: '2023-10-12'#> editor_options:#> chunk_output_type: console#> ---#>#>#> ```{r development}#> #| include: no#>#> library(testthat)#> ```#>#>#> <!--#> # Description of your package#>#> This will fill the description of your package.#> -->#> ```{r description}#> # --> for parse tests#> fusen::fill_description(#> pkg = here::here(),#> fields = list(#> Title = "Build A Package From Rmarkdown file",#> Description = "Use Rmarkdown First method to build your package. Start your package with documentation. Everything can be set from a Rmarkdown file in your project.",#> `Authors@R` = c(#> person("John", "Doe", email = "john@email.me", role = c("aut", "cre"), comment = c(ORCID = "0000-0000-0000-0000"))#> )#> )#> )#> # Define License with use_*_license()#> usethis::use_mit_license("John Doe")#> ```#>#>#> # Read data#>#> <!-- Store your dataset in a directory named "inst/" at the root of your project -->#> <!-- Use it for your tests in this Rmd thanks to `load_all()` to make it available#> and `system.file()` to read it in your examples#> -->#> ```{r development-2}#> # Set error=TRUE for checks() if needed#> # Run all in the console directly#> # Create "inst/" directory#> dir.create(here::here("inst"))#> # Example dataset#> file.copy(system.file("nyc_squirrels_sample.csv", package = "fusen"), here::here("inst"))#> ```#>#>#> # Calculate the median of a vector#>#> Here is some inline R code : `r 1+1`#> ```{r function}#> #' My median#> #'#> #' @param x Vector of Numeric values#> #' @inheritParams stats::median#> #'#> #' @return#> #' Median of vector x#> #' @export#> #'#> #' @examples#> #' my_median(2:20)#> my_median <- function(x, na.rm = TRUE) {#> if (!is.numeric(x)) {#> stop("x should be numeric")#> }#> stats::median(x, na.rm = na.rm)#> }#> ```#>#>#> ```{r examples}#> my_median(1:12)#> ```#>#>#> ```{r tests}#> test_that("my_median works properly and show error if needed", {#> expect_error(my_median("text"))#> })#> ```#>#>#> # Calculate the mean of a vector#> ## Use sub-functions in the same chunk#> ```{r function-1}#> #| filename: the_median_file#>#> #' My Other median#> #'#> #' @param x Vector of Numeric values#> #' @inheritParams stats::median#> #'#> #' @return#> #' Median of vector x#> #' @export#> #'#> #' @examples#> my_other_median <- function(x, na.rm = TRUE) {#> if (!is.numeric(x)) {#> stop("x should be numeric")#> }#> sub_median(x, na.rm = na.rm)#> }#>#> #' Core of the median not exported#> #' @param x Vector of Numeric values#> #' @inheritParams stats::median#> sub_median <- function(x, na.rm = TRUE) {#> stats::median(x, na.rm)#> }#> ```#>#>#> ```{r examples-1}#> my_other_median(1:12)#> my_other_median(8:20)#> my_other_median(20:50)#> ```#>#>#> ```{r tests-1}#> test_that("my_median works properly and show error if needed", {#> expect_true(my_other_median(1:12) == 6.5)#> expect_error(my_other_median("text"))#> })#> ```#>#>#> ```#> not a R chunk that should be kept in vignette, but not in code#> ```#>#> ```{r development-1}#> #| eval: no#>#> # Run but keep eval=FALSE to avoid infinite loop#> # Execute in the console directly#> fusen::inflate(flat_file = "dev/dev_history.Rmd")#> ```#>#>#>#> # Inflate your package#> ```{r}#> # duplicate empty name#> ```#>#>#> ```{r}#> # duplicate empty name#> ```#>#>#>#> You're one inflate from paper to box.#> Build your package from this very Rmd using `fusen::inflate()`#>#> - Verify your `"DESCRIPTION"` file has been updated#> - Verify your function is in `"R/"` directory#> - Verify your test is in `"tests/testthat/"` directory#> - Verify this Rmd appears in `"vignettes/"` directory
{lightparser} is a light version of {parsermd} that has not been updatedfor a long time, and which is not compatible with the latest versions ofC++ compilers. {lightparser} does not rely on C++ compilation.
Please note that the lightparser project is released with aContributorCode ofConduct.By contributing to this project, you agree to abide by its terms.
About
From Rmd And Qmd To Tibble And Back
Resources
License
Unknown, MIT licenses found
Licenses found
Code of conduct
Contributing
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Packages0
Uh oh!
There was an error while loading.Please reload this page.
Contributors2
Uh oh!
There was an error while loading.Please reload this page.