上下文:
我有一个使用Blogdown和Hugo创建的网站,已部署在Netlify上。我目前正在处理一些帖子(.Rmd文件)(在RStudio中),而这些帖子仍是草稿(YAML标头中的draft: true
)。在草稿工作时,我喜欢随身保存东西。
问题:
如果我在R会话中至少已经使用过一次命令blogdown::serve_site()
,那么每次我保存.Rmd草稿后,它都会“渲染”文档(例如,点击“保存”图标到Rendering content/post/Post 1.Rmd
出现在控制台中,并且-如果可行,最终该帖子将在查看器中更新)。
这总是要花费很长的时间(至少5分钟),如果代码块中有任何错误(打字错误,缺少参数等),则会进入循环,在该循环中,它会不断尝试呈现文档并不断失败。有时,我可以在发生这种情况时解决代码错误,然后下一次渲染尝试将成功。
但是,尽管我更正了代码中的错误,但更常见的是,我的会话完全死机;要么什么都没有发生(没有错误,但控制台中没有更多活动),但是我再也无法在RStudio中使用任何东西,或者我从RStudio中得到了一个错误(应用程序中的下拉消息框,而不是控制台中的代码错误),说:“保存文件:无法与R会话建立连接。”在这两种情况下,我唯一的选择就是强制退出RStudio,而我的.Rmd文件中所有未保存的更改都会丢失。
这个无尽的错误循环看起来像这样(在这种情况下,legend()函数中的参数有错误):
Quitting from lines 317-357 (Post 1.Rmd)
Error in legend("topleft", lables = unique(df.vis$PtType), pch = unique(df.vis$PtSym), :
unused argument (lables = unique(df.vis$PtType))
Calls: local ... handle -> withCallingHandlers -> withVisible -> eval -> eval
Execution halted
<simpleError in render_page(f): Failed to render 'content/post/Post 1.Rmd'>
* Retrying in 2 seconds...
Rendering content/post/Post 1.Rmd
....,“ 2”秒变为8秒,直到32秒,然后一遍又一遍地循环到32,直到它识别出我的修正或(通常)冻结。
当我调用blogdown::serve_site()
时,我永远不会遇到这样的问题,它只会引发错误,并且如果代码块中有错误,则停止尝试。
问题:
如何防止每次保存时Blogdown呈现我的.Rmd帖子文档?
OR
如何制作它,以便在保存时渲染时抛出错误,它只是停止尝试渲染它(但如果可能,仍然保存我的.Rmd文件)?
我已经读完the blogdown book,并且我认为这可能与LiveReload有关,但是我不确定如何将这些说明应用于我的特定问题。
任何帮助将不胜感激!谢谢!
更新-会话信息
> xfun::session_info('blogdown')
R version 3.5.1 (2018-07-02)
Platform: x86_64-apple-darwin15.6.0 (64-bit)
Running under: macOS 10.14, RStudio 1.2.1114
Locale: en_CA.UTF-8 / en_CA.UTF-8 / en_CA.UTF-8 / C / en_CA.UTF-8 / en_CA.UTF-8
Package version:
backports_1.1.2
base64enc_0.1.3
BH_1.66.0.1
blogdown_0.9
bookdown_0.7
digest_0.6.18
evaluate_0.12
glue_1.3.0
graphics_3.5.1
grDevices_3.5.1
highr_0.7
htmltools_0.3.6
httpuv_1.4.5
jsonlite_1.5
knitr_1.20
later_0.7.5
magrittr_1.5
markdown_0.8
methods_3.5.1
mime_0.6
promises_1.0.1
R6_2.3.0
Rcpp_1.0.0
rlang_0.3.0.1
rmarkdown_1.10
rprojroot_1.3.2
servr_0.11
stats_3.5.1
stringi_1.2.4
stringr_1.3.1
tinytex_0.9
tools_3.5.1
utils_3.5.1
xfun_0.4
yaml_2.2.0