{lightparser} reads your flat file to detect what is a yaml header,
what is a code chunk and its options, what is a text part.
Function split_to_tbl()
returns a tibble with all these
parts.
file <- system.file(
"dev-template-parsing.Rmd",
package = "lightparser"
)
split_to_tbl(file)
#> It seems you are currently knitting a Rmd/Qmd file. The parsing of the file will be done in a new R session.
#> # 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
You can re-create the Rmd/Qmd file from the tibble returned by
split_to_tbl()
. As this is a tibble, before combining it as
a new file, you can modify its content by removing or adding rows,
replacing content, etc.
file <- system.file("dev-template-parsing.Rmd",
package = "lightparser"
)
# split first
tbl_rmd <- split_to_tbl(file)
#> It seems you are currently knitting a Rmd/Qmd file. The parsing of the file will be done in a new R session.
# apply your filters
tbl_rmd_filtered <- tbl_rmd[-5, ]
# combine then
combine_tbl_to_file(tbl_rmd_filtered, tempfile(fileext = ".Rmd"))