3 回答
TA贡献1802条经验 获得超6个赞
这有点棘手,但是您只需要date通过引用内联R表达式来使字段在YAML中有效,例如
date: "`r format(Sys.time(), '%d %B, %Y')`"
然后解析错误将消失,日期将在markdown输出中生成,因此Pandoc可以使用中的值Sys.time()。
TA贡献1880条经验 获得超4个赞
一种解决方法是使用该brew程序包,并将您的YAML前端问题写为brew模板。
---
title: "Sample Document"
output:
html_document:
toc: true
theme: united
date: <%= format(Sys.time(), "%d %B, %Y") %>
author: baptiste
---
现在,您可以使用一个brew_n_render函数,该函数将使用对文档进行预处理brew,然后通过来运行rmarkdown。
brew_n_render <- function(input, ...){
output_file <- gsub("\\.[R|r]md$", ".html", input)
brew::brew(input, 'temp.Rmd'); on.exit(unlink('temp.Rmd'))
rmarkdown::render('temp.Rmd', output_file = output_file)
}
要使用KnitHTMLRStudio中的按钮进行此操作,您可以编写一种自定义输出格式,该格式将自动brew用作预处理程序。使用brew进行预处理可确保knitr在预处理阶段保持文档中的代码块不变。理想情况下,rmarkdown程序包应在其API中公开元数据,并允许用户通过自定义功能运行它。
- 3 回答
- 0 关注
- 1440 浏览
添加回答
举报