Blogdown new post 插件创建但不加载新文件

Blogdown new post addin creates but not loads new file

上下文

安装后(参见之前的 ) and configured my personal Hugo website for a multilingual setup (by directories), I wanted to start creating content. Ideally, I wanted to use blogdown in RStudio, via the addins. The website uses the Academic theme, rebranded 现在是 Wowchemy。

内容目录树如下:

content
|
├── en
    ├── authors
    ├── files (for static files)
    ├── home (homepage widgets)
    ├── post
    ├── project
    └── resources
|
└── hu
    ├── authors
    ├── files (for static files)
    ├── home (homepage widgets)
    ├── post
    ├── project
    └── resources

多语言 设置参考:

问题

当我在 RStudio 中使用新的 post 插件时,文件是在适当的位置创建的,但不会自动打开以进行编辑。英语和匈牙利语语言设置的工作方式相同。

> blogdown:::new_post_addin()

Listening on http://127.0.0.1:6918
C:\Users\HP\Documents\R\website\content\en\post20-11-04-how-this-site-was-created\index.en.md created
Warning in file(con, "r") :
  cannot open file 'content/post/2020-11-04-how-this-site-was-created/index.en.md': No such file or directory
Warning: Error in file: cannot open the connection
  91: file
  90: readLines
  87: hugo_convert_one
  86: new_content
  85: blogdown::new_post
  84: observeEventHandler
  13: shiny::runApp
  12: shiny::runGadget
  11: eval
  10: eval
   4: eval
   3: eval
   2: sys.source
   1: blogdown:::new_post_addin

问题

如何解决?据我所知,创建文件后必须包含文件路径,因为文件是在正确的位置创建的。

配置

> sessionInfo()
R version 4.0.3 (2020-10-10)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 7 x64 (build 7601) Service Pack 1

Matrix products: default

locale:
[1] LC_COLLATE=Hungarian_Hungary.1250  LC_CTYPE=Hungarian_Hungary.1250   
[3] LC_MONETARY=Hungarian_Hungary.1250 LC_NUMERIC=C                      
[5] LC_TIME=Hungarian_Hungary.1250    

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
[1] shiny_1.5.0

loaded via a namespace (and not attached):
 [1] Rcpp_1.0.5      bookdown_0.21   crayon_1.3.4    digest_0.6.26   later_1.1.0.1  
 [6] mime_0.9        R6_2.4.1        jsonlite_1.7.1  xtable_1.8-4    magrittr_1.5   
[11] evaluate_0.14   blogdown_0.21   rlang_0.4.8     rstudioapi_0.11 miniUI_0.1.1.1 
[16] promises_1.1.1  rmarkdown_2.4   tools_4.0.3     tinytex_0.26    fastmap_1.0.1  
[21] httpuv_1.5.4    xfun_0.18       yaml_2.2.1      compiler_4.0.3  htmltools_0.5.0
[26] knitr_1.30

我不擅长使用调试工具,所以只是单步调试代码。 (感谢好教程的建议!)

第一件事:When in Doubt, Try to Upgrade Your Software Packages这是blogdown包创建者的建议。已检查。

  1. 启动插件,blogdown:::new_post_addin被调用。
  2. 这调用了new_post.R。可以在以下位置找到源代码:https://github.com/rstudio/blogdown/blob/master/inst/scripts/new_post.R
  3. blogdown::new_post()called at the end, with file parameter from the updated输入文本域,也就是问题的情况下:“post20-11-04-how-this-site-was-created\index.en.md”
  4. new_post() 函数(在 hugo.R) calls new_content() 中带有第三个参数,open = FALSE,这意味着它不会打开文件,只是覆盖 file 变量(后面的路径)。在 new_post() 的末尾应该打开文件:这是发生错误的地方(通过尝试在错误的位置打开文件,错误的路径)。这意味着 new_content().
  5. 中必须发生一些不好的事情
  6. new_content() modify content_file() 的路径。这也是实际创建文件的步骤。
  7. content_file() modify 添加前缀的路径 get_config().
  8. get_config() 尝试 extract 配置中某个字段的值,在 Hugo 的情况下:尝试找到 contentDir。如果这导致 NULL(没有这样的列表项),则查看另一种可能性,最后 return 默认值(在 Hugo 的情况下:content)。就是这样! RStudio 尝试打开内容目录中的文件,而不是语言子目录中的文件!
  9. 这意味着最后一个选项在%n%行中被return编辑(它是从knitr导入的,代表:if (is.null(x)) y else x)。这意味着前面的参数 return 为 NULL,这意味着在 config 变量中找不到 contentDir。 config 的默认值由 config = load_config() 设置。这使用 find_config() 找到要解析的配置文件。
  10. find_config() uses config_files() 设置 Hugo 情况下的值:c('config.toml', 'config.yaml')。但是我的设置在子目录中:在 /config/default_/languages.toml 文件中!哦,又一个学术主题的悲哀...

总结一下:blogdown 目前只加载根目录中的 config.toml 以检查 contentDir 值。 Academic,现在是 Wowchemy Hugo 主题,但是也将配置文件保存在 /config/default_/ 目录中,其中 languages.toml 包含所需的值。

保留还是不保留学术主题? 是否坚持blogdown也许配置文件应该是合并为一个 config.toml,但无法在网上找到学术类的提示或示例。

编辑: 好的,问题的根源已经找到,但引发错误消息的实际错误与hugo_convert_one()有关,作为回溯在问题中建议。这是第一次(也是最后一次)尝试打开错误路径的文件。