read_md()
imports metadata from a markdown file into the workspace as a
tibble
.
Details
read_md()
is unusual in that it calls rmarkdown::render()
or
quarto::quarto_render()
internally to ensure code blocks and snippets
are parsed correctly. This ensures dynamic content is rendered correctly in
the resulting EML
document, but makes this function considerably slower
than a standard import function. Conceptually, therefore, it is closer to a
renderer with output type tibble
than a traditional read_
function.
This approach has one unusual consequence; it prevents 'round-tripping' of
embedded code. That is, dynamic content in code snippets within the
metadata statement is rendered to plain text in EML.
If that EML
document
is later re-imported to Rmd
using read_eml()
and write_md()
, formerly
dynamic content will be shown as plain text.
Internally, read_md()
calls lightparser::split_to_tbl()
.
Examples
source_file <- system.file("extdata",
"bionet_metadata.Rmd",
package = "delma")
read_md(source_file)
#> # A tibble: 62 × 4
#> level label text attributes
#> <dbl> <chr> <list> <list>
#> 1 1 eml:eml <lgl [1]> <lgl [1]>
#> 2 2 dataset <lgl [1]> <lgl [1]>
#> 3 3 alternateIdentifier <chr [1]> <lgl [1]>
#> 4 3 alternateIdentifier <chr [1]> <lgl [1]>
#> 5 3 alternateIdentifier <chr [1]> <lgl [1]>
#> 6 3 alternateIdentifier <chr [1]> <lgl [1]>
#> 7 3 title <chr [1]> <lgl [1]>
#> 8 3 creator <lgl [1]> <lgl [1]>
#> 9 4 organizationName <chr [1]> <lgl [1]>
#> 10 4 address <lgl [1]> <lgl [1]>
#> # ℹ 52 more rows