The goal of parsermd is to extract the content of an R Markdown file to allow for programmatic interactions with the documentâs contents (i.e. code chunks and markdown text). The goal is to capture the fundamental structure of the document and as such we do not attempt to parse every detail of the Rmd. Specifically, the yaml front matter, markdown text, and R code are read as text lines allowing them to be processed using other tools.
Installationparsermd
can be installed from CRAN with:
You can install the latest development version of parsermd
from GitHub with:
For more details see the getting started vignette or any of the topic specific articles.
(rmd = parsermd::parse_rmd(system.file("minimal.Rmd", package = "parsermd")))
#> âââ YAML [4 lines]
#> âââ Heading [h1] - Setup
#> â âââ Chunk [r, 1 opt, 1 lines] - setup
#> âââ Heading [h1] - Content
#> âââ Heading [h2] - R Markdown
#> â âââ Markdown [6 lines]
#> â âââ Chunk [r, 1 lines] - cars
#> â âââ Chunk [r, 1 lines] - unnamed-chunk-1
#> âââ Heading [h2] - Including Plots
#> âââ Markdown [2 lines]
#> âââ Chunk [r, 1 opt, 1 lines] - pressure
#> âââ Markdown [2 lines]
as_tibble(rmd)
#> # A tibble: 12 Ã 5
#> sec_h1 sec_h2 type label ast
#> <chr> <chr> <chr> <chr> <rmd_ast>
#> 1 <NA> <NA> rmd_yaml_list <NA> <yaml>
#> 2 Setup <NA> rmd_heading <NA> <heading [h1]>
#> 3 Setup <NA> rmd_chunk setup <chunk [r]>
#> 4 Content <NA> rmd_heading <NA> <heading [h1]>
#> 5 Content R Markdown rmd_heading <NA> <heading [h2]>
#> 6 Content R Markdown rmd_markdown <NA> <rmd_mrkd [6]>
#> 7 Content R Markdown rmd_chunk cars <chunk [r]>
#> 8 Content R Markdown rmd_chunk unnamed-chunk-1 <chunk [r]>
#> 9 Content Including Plots rmd_heading <NA> <heading [h2]>
#> 10 Content Including Plots rmd_markdown <NA> <rmd_mrkd [2]>
#> 11 Content Including Plots rmd_chunk pressure <chunk [r]>
#> 12 Content Including Plots rmd_markdown <NA> <rmd_mrkd [2]>
rmd_select(rmd, by_section("Content"))
#> âââ Heading [h1] - Content
#> âââ Heading [h2] - R Markdown
#> â âââ Markdown [6 lines]
#> â âââ Chunk [r, 1 lines] - cars
#> â âââ Chunk [r, 1 lines] - unnamed-chunk-1
#> âââ Heading [h2] - Including Plots
#> âââ Markdown [2 lines]
#> âââ Chunk [r, 1 opt, 1 lines] - pressure
#> âââ Markdown [2 lines]
rmd_select(rmd, by_section(c("Content", "*"))) %>%
rmd_select(has_type(c("rmd_chunk", "rmd_heading")))
#> âââ Heading [h1] - Content
#> âââ Heading [h2] - R Markdown
#> â âââ Chunk [r, 1 lines] - cars
#> â âââ Chunk [r, 1 lines] - unnamed-chunk-1
#> âââ Heading [h2] - Including Plots
#> âââ Chunk [r, 1 opt, 1 lines] - pressure
rmd_select(rmd, "pressure")
#> âââ Chunk [r, 1 opt, 1 lines] - pressure
rmd_select(rmd, 1:3)
#> âââ YAML [4 lines]
#> âââ Heading [h1] - Setup
#> âââ Chunk [r, 1 opt, 1 lines] - setup
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4