R/args.r

Defines functions get.yaml.block.args parse.chunk.args

#' Parse the name of a knitr chunk and its arguments
#' @export
parse.chunk.args = function(header, arg.str=NULL) {
  restore.point("parse.chunk.opt.and.name")
  if (!is.null(arg.str)) {
    if (is.na(arg.str)) return(list())
    return(knitr:::parse_params(arg.str))
  }

  str = str.right.of(header,"r ",not.found = NA)
  if (is.na(str)) return(list())
  knitr:::parse_params(str.left.of(str,"}"))
}


get.yaml.block.args = function(bi,am) {
  restore.point("get.yaml.block.args")

  args = parse.block.args(arg.str = am$bdf$arg.str[[bi]])
  yaml = get.bi.am.str(bi,am)
  if (!is.null(yaml)) {
    yaml.arg = yaml.load(paste0(yaml,collapse="\n"))
    args[names(yaml.arg)] = yaml.arg
  }
  args
}
skranz/armd documentation built on Sept. 4, 2020, 12:22 p.m.