如何防止 blogdown 重新呈现所有帖子?
How to prevent blogdown from rerendering all posts?
背景:
我的特色是 blog 基于@YihuiXie 的 R 包 blogdown
。
问题:
当我 render_site()
、所有 源文件 (*.Rmd) 被渲染时 - 即使是 未更改的 源文件也是重新渲染。
完全重新渲染既费时又没必要(我认为)。
问题/期望的解决方案:
如何防止 blogdown 重新呈现未更改的源文件?我希望 blogdown 仅呈现新的或更改的源文件。
我已经尝试过的:
我读过blogdown book; Yihui seems to propose the "rebuild-all" approach。
我已阅读 render_site()
和 hugo_build()
的帮助文件。第一个声明它将呈现所有 rmd 文件。相反 hugo_build()
不编织 rmd 文件(即 rmd 文件不编译为 md 文件)。
我已经检查过SO和Google,但是这个问题以前好像没有人问过。
会话信息():
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 ("A recommended workflow")。好像你说的还不够清楚,我改一下:
您应该很少需要 bookdown::render_site()
。你可以看到我在 1.7 节中甚至没有提到这个函数。
使用blogdown::serve_site()
,这是唯一函数,如果您的网站发布在Netlify上,或者任何可以的服务器运行 hugo
命令在服务器端构建您的网站。
如果不使用Netlify,或者不在服务器端调用hugo
,而是想在本地建站,手动发布public/
文件夹,调用blogdown::hugo_build()
在您发布网站之前。
既然你用的是Netlify,答案基本就是blogdown::serve_site()
。这就是你所需要的。它不会重新渲染未更改的 Rmd 文件。见 Appendix D.3.
blogdown::serve_site()
在我重置计算机并从 github.
重新下载代码后尝试重新呈现我的一些旧博客文章
通过使用 blogdown:::build_rmds("content/post/{file_name}.Rmd")
,我能够将单个 Rmd 文件渲染到 html。要检查结果,我 运行 hugo server
在终端 window.
背景:
我的特色是 blog 基于@YihuiXie 的 R 包 blogdown
。
问题:
当我 render_site()
、所有 源文件 (*.Rmd) 被渲染时 - 即使是 未更改的 源文件也是重新渲染。
完全重新渲染既费时又没必要(我认为)。
问题/期望的解决方案:
如何防止 blogdown 重新呈现未更改的源文件?我希望 blogdown 仅呈现新的或更改的源文件。
我已经尝试过的:
我读过blogdown book; Yihui seems to propose the "rebuild-all" approach。
我已阅读
render_site()
和hugo_build()
的帮助文件。第一个声明它将呈现所有 rmd 文件。相反hugo_build()
不编织 rmd 文件(即 rmd 文件不编译为 md 文件)。我已经检查过SO和Google,但是这个问题以前好像没有人问过。
会话信息():
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 ("A recommended workflow")。好像你说的还不够清楚,我改一下:
您应该很少需要
bookdown::render_site()
。你可以看到我在 1.7 节中甚至没有提到这个函数。使用
blogdown::serve_site()
,这是唯一函数,如果您的网站发布在Netlify上,或者任何可以的服务器运行hugo
命令在服务器端构建您的网站。如果不使用Netlify,或者不在服务器端调用
hugo
,而是想在本地建站,手动发布public/
文件夹,调用blogdown::hugo_build()
在您发布网站之前。
既然你用的是Netlify,答案基本就是blogdown::serve_site()
。这就是你所需要的。它不会重新渲染未更改的 Rmd 文件。见 Appendix D.3.
blogdown::serve_site()
在我重置计算机并从 github.
通过使用 blogdown:::build_rmds("content/post/{file_name}.Rmd")
,我能够将单个 Rmd 文件渲染到 html。要检查结果,我 运行 hugo server
在终端 window.