如果代码块中有任何错误,保存Blogdown草稿帖子(.Rmd文件)将冻结我的RStudio会话。

时间:2018-11-01 09:56:22

标签: r rstudio r-markdown blogdown

上下文:

我有一个使用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     

0 个答案:

没有答案