我正尝试每周以编程方式创建新帖子。我想从一个模板创建一个Rmd文件,可以将参数传递给该文件,然后让blogdown::serve_site()
正确呈现它。
我已经尝试过使用rmarkdown::render
,并且基本上可以通过呈现HTML文件来使其执行我想要的操作。但是我想以某种方式将此纳入我的blogdown::serve_site()
过程中。
这是我可以使用rmarkdown::render()
进行操作的示例。
首先,如下创建模板Rmd文件。
author: James Day
params:
week: 1
year: 2019
星期是r params$week
,年份是r params$year
一些使用params处理数据的代码
library(dplyr)
data <- tibble(week = 1:52,
year = 2019,
num = runif(52))
data_for_report <- data %>%
filter(week >= params$week & year == params$year)
print(data_for_report)
# some other code.....
如果我将该文件另存为test.Rmd
,则以下代码将使用提供的参数将其呈现为HTML。
render_blog_post = function(fname, week, year) {
rmarkdown::render(
fname,
params = list(week = week, year = year),
output_file = paste0(year, "-week-", week, "-report.html"),
output_options = list(pandoc_args = c(paste0("--metadata=title:\"Week ", week, " Report\""),
paste0("--metadata=slug:\"", year, "-week-", week, "-report\"")
)
)
)
}
render_blog_post("test.Rmd", week = 10, year = 2019)
这个HTML文件是我想要的,但是显然我希望它成为我创建新博客文章的工作流程的一部分。
我想知道如何使用类似的工作流使用Blogdown从模板创建Rmd?
基本上,我想在每周脚本中
./content/posts
文件夹中blogdown::serve_site()
渲染Rmd文件