重命名index.Rmd时,“找不到站点生成器”

时间:2019-08-06 14:25:45

标签: r rstudio bookdown

当我

  1. 在Rstudio中创建一个全新的bookdown项目,

  2. index.Rmd重命名为prep.Rmd,并相应地自定义rmd_files中的_bookdown.yml键(如官方bookdown documentation中所述)到:

    rmd_files:
      - "prep.Rmd"
      - "01-intro.Rmd"
      - "02-literature.Rmd"
      - "03-method.Rmd"
      - "04-application.Rmd"
      - "05-summary.Rmd"
      - "06-references.Rmd"
    
  3. ,然后尝试从 Build 窗格中使用RStudio的?Build Book 按钮来构建图书,将显示以下错误消息:

    ==> rmarkdown::render_site(encoding = 'UTF-8')
    
    Error in rmarkdown::render_site(encoding = "UTF-8") : 
      No site generator found.
    Execution halted
    
    Exited with status 1.
    

有什么方法可以使RStudio的?Build Book 按钮再次起作用,同时保留上述自定义内容?

更多观察结果:

  • 我将prep.Rmd重命名回index.Rmd并相应地调整了rmd_files键后,就可以使用RStudio的?Build Book 按钮。

  • 仅当重命名第一本书的章节index.Rmd,重命名任何后续章节时才出现此问题。

  • 错误似乎与two requirements of the rmarkdown::render_site() function RStudio的?Build Book 按钮的第一个有关:

      

    将目录呈现为网站有两个要求:

         
        
    1. 它必须包含“ index.Rmd”或“ index.md”文件。

    2.   
    3. 它必须包含一个站点配置文件(“ _site.yml”)。

    4.   

    有趣的是,第二个“要求”也没有在默认的新鲜书本项目中得到满足,即没有_site.yml文件。因此,对于像我这样的局外人来说,不清楚的是,如果书本文档中没有提及任何内容(并且没有!),我为什么应该关心第一个要求。

当然,我可以生活而无需重命名Bookdown项目的默认index.Rmd 。但是我仍然想正确地了解自己在做什么(以及应该避免的事情)。由于我不知道这应该被视为错误还是只是缺少适当的文档,因此我在此询问有关该问题的信息,而不是直接提交错误报告。如果是后者,我猜应该更新官方的bookdown documentation


我的设置(xfun::session_info()的输出):

R version 3.6.1 (2019-07-05)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Ubuntu 16.04.6 LTS, RStudio 1.2.1335

Locale:
  LC_CTYPE=de_CH.UTF-8       LC_NUMERIC=C               LC_TIME=de_CH.UTF-8        LC_COLLATE=de_CH.UTF-8     LC_MONETARY=de_CH.UTF-8    LC_MESSAGES=de_CH.UTF-8    LC_PAPER=de_CH.UTF-8      
  LC_NAME=C                  LC_ADDRESS=C               LC_TELEPHONE=C             LC_MEASUREMENT=de_CH.UTF-8 LC_IDENTIFICATION=C       

Package version:
  askpass_1.1        assertthat_0.2.1   backports_1.1.4    base64enc_0.1.3    BH_1.69.0.1        bookdown_0.12      broom_0.5.2        callr_3.3.1        cellranger_1.1.0   cli_1.1.0         
  clipr_0.7.0        colorspace_1.4-1   compiler_3.6.1     crayon_1.3.4       curl_4.0           DBI_1.0.0          dbplyr_1.4.2       digest_0.6.20      dplyr_0.8.3        ellipsis_0.2.0.1  
  evaluate_0.14      fansi_0.4.0        forcats_0.4.0      fs_1.3.1           generics_0.0.2     ggplot2_3.2.0      glue_1.3.1         graphics_3.6.1     grDevices_3.6.1    grid_3.6.1        
  gtable_0.3.0       haven_2.1.1        highr_0.8          hms_0.5.0          htmltools_0.3.6    httr_1.4.0         jsonlite_1.6       knitr_1.23         labeling_0.3       lattice_0.20-38   
  lazyeval_0.2.2     lubridate_1.7.4    magrittr_1.5       markdown_1.0       MASS_7.3.51.4      Matrix_1.2.17      methods_3.6.1      mgcv_1.8.28        mime_0.7           modelr_0.1.4      
  munsell_0.5.0      nlme_3.1-140       openssl_1.4.1      packrat_0.5.0      pillar_1.4.2       pkgconfig_2.0.2    plogr_0.2.0        plyr_1.8.4         prettyunits_1.0.2  processx_3.4.1    
  progress_1.2.2     ps_1.3.0           purrr_0.3.2        R6_2.4.0           RColorBrewer_1.1.2 Rcpp_1.0.2         readr_1.3.1        readxl_1.3.1       rematch_1.0.1      reprex_0.3.0      
  reshape2_1.4.3     rlang_0.4.0        rmarkdown_1.14     rstudioapi_0.10    rvest_0.3.4        scales_1.0.0       selectr_0.4.1      splines_3.6.1      stats_3.6.1        stringi_1.4.3     
  stringr_1.4.0      sys_3.2            tibble_2.1.3       tidyr_0.8.3        tidyselect_0.2.5   tidyverse_1.2.1    tinytex_0.14       tools_3.6.1        utf8_1.1.4         utils_3.6.1       
  vctrs_0.2.0        viridisLite_0.3.0  whisker_0.3.2      withr_2.1.2        xfun_0.8           xml2_1.2.1         yaml_2.2.0         zeallot_0.1.0

1 个答案:

答案 0 :(得分:1)

无法更改第一个Rmdmd文件的名称。在给定rmarkdown的源代码的情况下,这是查找方法:

  • render_site返回site_generator时,观察者在NULL中抛出异常,参见GitHub

  • site_generator中,可能的文件名index.Rmdindex.md是硬编码的,请参见。 GitHub

  • 使用_site.yml的另一种方法是在索引文件c.f的YAML标头中使用site: ...GitHub