This function is implemented using tidyselect::eval_select() which enables a variety of useful syntax for selecting nodes from the ast.

Additionally, a number of additional parsermd specific selection helpers are available: by_section(), has_type(), has_label(), and has_option().

rmd_select(x, ...)

Arguments

x

Rmd object, e.g. rmd_ast or rmd_tibble.

...

One or more unquoted expressions separated by commas. Chunk labels can be used as if they were positions in the data frame, so expressions like x:y can be used to select a range of nodes.

Value

Returns a subset Rmd object (either rmd_ast or rmd_tibble depending on input).

Examples

rmd = parse_rmd(system.file("hw01.Rmd", package = "parsermd")) rmd_select(rmd, "plot-dino", "cor-dino")
#> ├── Chunk [r, 2 opts, 5 lines] - plot-dino #> └── Chunk [r, 2 lines] - cor-dino
rmd_select(rmd, "plot-dino":"cor-dino")
#> ├── Chunk [r, 2 opts, 5 lines] - plot-dino #> ├── Markdown [2 lines] #> └── Chunk [r, 2 lines] - cor-dino
rmd_select(rmd, `plot-dino`:`cor-dino`)
#> ├── Chunk [r, 2 opts, 5 lines] - plot-dino #> ├── Markdown [2 lines] #> └── Chunk [r, 2 lines] - cor-dino
rmd_select(rmd, has_type("rmd_chunk"))
#> ├── Chunk [r, 1 opt, 2 lines] - load-packages #> ├── Chunk [r, 2 opts, 5 lines] - plot-dino #> ├── Chunk [r, 2 lines] - cor-dino #> ├── Chunk [r, 1 lines] - plot-star #> └── Chunk [r, 1 lines] - cor-star
rmd_select(rmd, by_section(c("Exercise *", "Solution")))
#> ├── Heading [h3] - Exercise 1 #> │ └── Heading [h4] - Solution #> │ └── Markdown [2 lines] #> ├── Heading [h3] - Exercise 2 #> │ └── Heading [h4] - Solution #> │ ├── Markdown [4 lines] #> │ ├── Chunk [r, 2 opts, 5 lines] - plot-dino #> │ ├── Markdown [2 lines] #> │ └── Chunk [r, 2 lines] - cor-dino #> └── Heading [h3] - Exercise 3 #> └── Heading [h4] - Solution #> ├── Markdown [4 lines] #> ├── Chunk [r, 1 lines] - plot-star #> ├── Markdown [2 lines] #> └── Chunk [r, 1 lines] - cor-star