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()
.
Examples
rmd = parse_rmd(system.file("examples/hw01.Rmd", package = "parsermd"))
rmd_select(rmd, "plot-dino", "cor-dino")
#> ├── Chunk [r, 2 options, 5 lines] - plot-dino
#> └── Chunk [r, 0 options, 2 lines] - cor-dino
rmd_select(rmd, "plot-dino":"cor-dino")
#> ├── Chunk [r, 2 options, 5 lines] - plot-dino
#> ├── Markdown [2 lines]
#> └── Chunk [r, 0 options, 2 lines] - cor-dino
rmd_select(rmd, `plot-dino`:`cor-dino`)
#> ├── Chunk [r, 2 options, 5 lines] - plot-dino
#> ├── Markdown [2 lines]
#> └── Chunk [r, 0 options, 2 lines] - cor-dino
rmd_select(rmd, has_type("rmd_chunk"))
#> ├── Chunk [r, 1 option, 2 lines] - load-packages
#> ├── Chunk [r, 2 options, 5 lines] - plot-dino
#> ├── Chunk [r, 0 options, 2 lines] - cor-dino
#> ├── Chunk [r, 0 options, 1 line] - plot-star
#> └── Chunk [r, 0 options, 1 line] - 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 options, 5 lines] - plot-dino
#> │ ├── Markdown [2 lines]
#> │ └── Chunk [r, 0 options, 2 lines] - cor-dino
#> └── Heading [h3] - Exercise 3
#> └── Heading [h4] - Solution
#> ├── Markdown [4 lines]
#> ├── Chunk [r, 0 options, 1 line] - plot-star
#> ├── Markdown [2 lines]
#> └── Chunk [r, 0 options, 1 line] - cor-star