如何防止博客重新发布所有帖子?

时间:2018-05-28 11:31:45

标签: r markdown r-markdown hugo blogdown

背景:

我在{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   
> 

2 个答案:

答案 0 :(得分:7)

我认为答案在您引用的页面上 - Section 1.7 of the blogdown book(“推荐的工作流程”)。看起来对你来说还不够清楚,所以让我重新说一下:

  1. 您应该很少需要bookdown::render_site()。你可以看到我甚至没有在1.7节中提到这个功能。

  2. 使用blogdown::serve_site(),如果您的网站在Netlify上发布,或者任何可以运行hugo的服务器,则需要调用功能命令在服务器端构建您的网站。

  3. 如果您不使用Netlify,或者不在服务器端调用hugo,但想在本地构建网站并手动发布public/文件夹,请致电{{1}在您发布网站之前。

  4. 由于您使用的是Netlify,答案基本上是blogdown::hugo_build()。这就是你所需要的一切。它不会重新呈现尚未更改的Rmd文件。请参阅Appendix D.3

答案 1 :(得分:0)

127.0.0.1 localhost 127.0.1.1 Serevya # The following lines are desirable for IPv6 capable hosts ::1 ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters 104.20.26.217 assets.windscribe.com #ws-dns 104.20.26.217 api.windscribe.com #ws-dns 尝试在我重置计算机并从github重新下载代码后重新呈现我的一些旧博客文章。

通过使用blogdown::serve_site(),我可以将单个Rmd文件呈现为html。要检查结果,我在终端窗口中运行blogdown:::build_rmds("content/post/{file_name}.Rmd")