generator()函数是blogdown包中一个用于生成网站页面的函数。当使用serve_site函数进行网站本地构建预览时,generator()函数会被调用来生成并更新所有的网站页面。可以通过下面的示例代码来查看generator()的使用方法:
library(blogdown)
site <- site_build()
serve_site(site)
在这个例子中,调用了blogdown包中的site_build()函数和serve_site()函数。site_build()函数将按照配置文件生成的网站内容保存到硬盘上,返回生成的网站路径;serve_site()函数将启动一个本地的http服务器来构建预览该网站。在serve_site()函数中,generator()函数将被多次调用以生成所有网站页面。
可以通过以下代码来查看generator()函数的具体实现:
generator <- function(incremental = FALSE, baseurl = "", args = list()) {
message("Rendering content")
if (!is.null(args$verbosity)) {
verbosity <- args$verbosity
cat(paste("verbosity level: ", verbosity, "\n", sep = ""))
} else {
verbosity <- -1
}
if (!is.null(args$output_format)) {
out_format <- knitr:::resolve_output_format(args$output_format)
} else {
out_format <- "html_document"
}
if (!is.null(args$encoding)) {
encoding <- args$encoding
} else {
encoding <- ""
}
set_seed()
hidden <- blogdown::udiff_hidden_files()
if (is.null(blogdown:::get_bs_version())) {
message("Rendering content with raw HTML rendering\n")
} else {
message("Rendering content using Bootstrap\n")
}
build_dir <- getwd()
blogdown:::dig_to_html(
blogdown:::get_global("blogdown.hugo.path"),
incremental = incremental, baseurl = baseurl,
args = args, verbose = verbosity, build_dir = build_dir,
hidden = hidden, encoding = encoding, out_format = out_format