R 使用blogdown自动化站点构建

R 使用blogdown自动化站点构建,r,blogdown,R,Blogdown,我正在尝试自动化blogdown网站的构建过程。 我有几个页面只需要更新yaml标题中的日期。 这些页面下载数据,然后生成更新的报告 我的问题是:当我手动更改日期并仅从工具栏上的“编辑”按钮编辑文件时,查看器窗口中的站点将有更新的文件并在内容页上显示其链接。 但当我进一步运行代码时,将呈现文件,但查看器(以及指向本地服务器的浏览器)将不再显示这些条目和文件 要在自动驾驶仪上运行站点更新,我需要添加什么 library(tidyverse) library(knitr) library(fs) l

我正在尝试自动化blogdown网站的构建过程。
我有几个页面只需要更新yaml标题中的日期。
这些页面下载数据,然后生成更新的报告

我的问题是:当我手动更改日期并仅从工具栏上的“编辑”按钮编辑文件时,查看器窗口中的站点将有更新的文件并在内容页上显示其链接。
但当我进一步运行代码时,将呈现文件,但查看器(以及指向本地服务器的浏览器)将不再显示这些条目和文件

要在自动驾驶仪上运行站点更新,我需要添加什么

library(tidyverse)
library(knitr)
library(fs)
library(here)
library(rmarkdown)
library(blogdown)

change_yaml_matter <- function(input_file, ..., output_file) {
  input_lines <- readLines(input_file)
  delimiters <- grep("^---\\s*$", input_lines)
  if (!length(delimiters)) {
    stop("unable to find yaml delimiters")
  } else if (length(delimiters) == 1L) {
    if (delimiters[1] == 1L) {
      stop("cannot find second delimiter, first is on line 1")
    } else {
      # found just one set, assume it is *closing* the yaml matter;
      # fake a preceding line of delimiter
      delimiters <- c(0L, delimiters[1])
    }
  }
  delimiters <- delimiters[1:2]
  yaml_list <- yaml::yaml.load(
    input_lines[ (delimiters[1]+1):(delimiters[2]-1) ])

  dots <- list(...)
    
  for (element_name in names(dots)){
    if(element_name %in% names(yaml_list)) {
      yaml_list[element_name] <- dots[element_name]
    } else {
      yaml_list <- c(yaml_list,dots[element_name]) 
    }
  }
    
  output_lines <- c(
    if (delimiters[1] > 0) input_lines[1:(delimiters[1])],
    strsplit(yaml::as.yaml(yaml_list), "\n")[[1]],
    input_lines[ -(1:(delimiters[2]-1)) ]
  )

  if (missing(output_file)) {
    return(output_lines)
  } else {
    writeLines(output_lines, con = output_file)
    return(invisible(output_lines))
  }
}

dir_ls(
  file.path(here(),"content","post") 
) ->
content_dirs



content_dirs %>%
   file.path("index.Rmd") ->
files_to_change

for (f in files_to_change){
  change_yaml_matter(f,date=as.character(Sys.Date()),
    output_file=f)
}



build_dir(file.path(
  here(),"content")
)
build_site(local=TRUE,run_hugo=TRUE)
hugo_build()
库(tidyverse)
图书馆(knitr)
图书馆(财政司)
图书馆(这里)
图书馆(rmarkdown)
图书馆(博客下载)
改变事情