• 综合已解决
  • 将rmd格式文档上传博客时部署失败,报了个blogdown相关的错

如题,楼主头一回鼓捣 rmd 格式的博客,很正常地能在 viewer 窗格看到内容,很正常地上传 github ,但是等了一会没见博客更新,我用的部署工具是 netlify,上去查发现部署失败了。报的错误长这样:

Error: Error building site: "/opt/build/repo/content/project/2022-10-27-dt-manual-for-me/index.html:13:14": failed to extract shortcode: template for shortcode "blogdown/postref" not found

3:01:19 PM: ❯ Context
3:01:19 PM:   production
3:01:19 PM: ​
3:01:19 PM: Creating deploy upload records
3:01:19 PM: ────────────────────────────────────────────────────────────────
3:01:19 PM:   1. build.command from netlify.toml                            
3:01:19 PM: ────────────────────────────────────────────────────────────────
3:01:19 PM: ​
3:01:19 PM: $ hugo
3:01:19 PM: Failed during stage 'building site': Build script returned non-zero exit code: 2 (https://ntl.fyi/exit-code-2)
3:01:19 PM: Start building sites …
3:01:19 PM: Total in 223 ms
3:01:19 PM: Error: Error building site: "/opt/build/repo/content/project/2022-10-27-dt-manual-for-me/index.html:13:14": failed to extract shortcode: template for shortcode "blogdown/postref" not found
3:01:19 PM: ​
3:01:19 PM: ────────────────────────────────────────────────────────────────
3:01:19 PM:   "build.command" failed                                        
3:01:19 PM: ────────────────────────────────────────────────────────────────
3:01:19 PM: ​
3:01:19 PM:   Error message
3:01:19 PM:   Command failed with exit code 255: hugo (https://ntl.fyi/exit-code-255)
3:01:19 PM: ​
3:01:19 PM:   Error location
3:01:19 PM:   In build.command from netlify.toml:
3:01:19 PM:   hugo

本来我想截个图,可是这个部署失败以后,后面传的图片也看不了了。请大神抽空帮忙瞅瞅呐。

blogdown::check_site() 会诊断出这个问题。把那个 postref.html 文件添加到 git 里传上去就好了。

是的,把那个文件传上去就好了。不过由于我建博客是照着用 R 语言的 blogdown+hugo+netlify+github 建博客这篇来弄的。其中在设置gitignore部分,这篇文章写道:

设置 gitignore
打开 rstudio 右下角的Files标签,点击.gitignore文件,改成下面这样吧(copy Yihui 的):
```
.Rproj.user
.Rhistory
.RData
.Ruserdata
public
static/figures
blogdown
```

由于直接把 blogdown 给忽略了,所以在用 rmd 格式生成博客时,layouts/shortcodes/blogdown/postref.html这个文件也会被忽略,于是才有楼主碰到的那个错误。

    yihui 我之前也是按这篇文章改的 .gitignore,之前试过 .rmd 会有错误,就一直用的 markdown。逃避果然有用哈哈哈。

    讲真,我以前也一直逃避来着,主要原因是觉得 rmd 格式弄起来好像很难,我最大最大的困惑是:rmd 格式会生成一个index.rmd 文档,一个 index.html 文档和一个文件夹 index_files,前两个我知道是 rmd 文档写好了 knit 会生成 html,可是不知道 index_files 文件夹怎么生成的……

    这个困惑的源头是最早湘云帮我编辑 rmd 格式文档并往主站投稿时里面有 index_files,可是我翻 yihui 那本 blogdown 的书并没有见到,书里1.2小节A quick example里举的例子也没有讲这个,而是:

    content/
    ├── post
    │   ├── 2020-12-01-r-rmarkdown
    │   │   ├── index.html <- blogdown knitted this for you
    │   │   └── index.Rmd
    │   ├── 2015-01-01-lorem-ipsum
    │   └── 2016-12-30-hello-markdown

    而且平时写 rmd 格式的文档也从没见过什么 index_files 相关的文件夹,我也搞不懂博客的仓库里面没有那些可视化图表包的话,那些交互图表是怎么显示在静态网页上面的。

    最近我又想往主站投稿,可是湘云没空帮我编辑了,于是我自己琢磨,万万没想到,在 blogdown 里,那个 index_files 是在 knit 的时候自动生成的。哈哈哈,我还以为我是一个拿着宝剑要斩杀巨龙的勇士呢,没想到只是一个不敢动手的笨蛋而已啊。

      yuanfan 看来是解决你的困惑了,也解决了我的困惑 — 为什么你会觉得很难。其实,只需要 yihui 更新一些说明文档,提及 Rmd 文章会生成一些副产物,并将这些副产物是什么,什么时候会产生,交代一下就行。我之前是边用边明白的,明白了也就没有太把它当回事,反而没法明白你的困惑。

      最后,抽空把你的稿件投过来吧!

      4 个月 后