背景:

我的特色是基于@YihuiXie的R包blogdown构建的blog

问题:

当我render_site()时,将渲染所有源文件(* .Rmd)-甚至重新渲染未更改的源文件。

这种完全重新渲染既费时又不必要(我认为)。

问题/所需解决方案:

如何防止Blogdown重新呈现未更改的源文件?我希望Blogdown仅呈现新的或更改的源文件。

我已经尝试过的:


我已经读过blogdown book; Yihui似乎提出了"rebuild-all" approach
我已经阅读了render_site()hugo_build()的帮助文件。第一个声明它将渲染所有rmd文件。相反,hugo_build()不会编织rmd文件(即rmd文件未编译为md文件)。
我已经检查过SO和Google,但是以前似乎没有问过这个问题。


SessionInfo():

R version 3.4.4 (2018-03-15)
Platform: x86_64-apple-darwin15.6.0 (64-bit)
Running under: macOS High Sierra 10.13.4

Matrix products: default
BLAS: /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libBLAS.dylib
LAPACK: /Library/Frameworks/R.framework/Versions/3.4/Resources/lib/libRlapack.dylib

locale:
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base

other attached packages:
[1] shiny_1.1.0

loaded via a namespace (and not attached):
 [1] Rcpp_0.12.17    rstudioapi_0.7  knitr_1.20      magrittr_1.5    RcppTOML_0.1.3  xtable_1.8-2    R6_2.2.2        rlang_0.2.0     stringr_1.3.1   tools_3.4.4     xfun_0.1
[12] miniUI_0.1.1.1  htmltools_0.3.6 yaml_2.1.19     rprojroot_1.3-2 digest_0.6.15   bookdown_0.7    later_0.7.2     promises_1.0.1  evaluate_0.10.1 mime_0.5        rmarkdown_1.9.4
[23] blogdown_0.6    stringi_1.2.2   compiler_3.4.4  backports_1.1.2 jsonlite_1.5    httpuv_1.4.3
>

最佳答案

我认为答案在您引用的页面上-Section 1.7 of the blogdown book(“推荐的工作流程”)。您似乎还不太清楚,所以让我改一下:


您应该很少需要bookdown::render_site()。您可以看到在1.7节中我什至没有提到此功能。
使用blogdown::serve_site(),如果您的网站发布在Netlify或任何可以运行hugo命令在服务器端构建网站的服务器上,则它是唯一需要调用的功能。
如果您不使用Netlify,或者不在服务器端调用hugo,但是要在本地构建站点并手动发布public/文件夹,请在发布网站之前调用blogdown::hugo_build()


由于您使用的是Netlify,因此答案基本上是blogdown::serve_site()。这就是您所需要的。它不会重新渲染尚未更改的Rmd文件。请参见Appendix D.3

07-24 09:23