复现问题的步骤和运行环境如下

复现问题

第一步

跟随 RStudio 的指导,创建一个 blogdown 项目,一切步骤按照默认的来。

第二步

执行如下命令,渲染网站

 blogdown:::serve_site()

发现如下报错,网站无法渲染

Launching the server via the command:
  hugo server --bind 127.0.0.1 -p 6310 --themesDir themes -t hugo-lithium -D -F --navigateToChanged
Error: error building site: render: failed to render pages: render of "taxonomy" failed: "/Users/xiangyun/Documents/hugo-test/themes/hugo-lithium/layouts/_default/list.html:35:3": execute of template failed: template: _default/list.html:35:3: executing "_default/list.html" at <partial "footer.html" .>: error calling partial: "/Users/xiangyun/Documents/hugo-test/themes/hugo-lithium/layouts/partials/footer.html:4:29": execute of template failed: template: partials/footer.html:4:29: executing "partials/footer.html" at <.Site.RSSLink>: can't evaluate field RSSLink in type page.Site

软件环境

> xfun::session_info(packages = c('blogdown','knitr','rmarkdown'), dependencies = F)
R version 4.3.0 (2023-04-21)
Platform: x86_64-apple-darwin22.4.0 (64-bit)
Running under: macOS Ventura 13.3.1, RStudio 2023.3.1.446

Locale: en_US.UTF-8 / en_US.UTF-8 / en_US.UTF-8 / C / en_US.UTF-8 / en_US.UTF-8

time zone: Asia/Shanghai
tzcode source: internal

Package version:
  blogdown_1.17  knitr_1.43     rmarkdown_2.21

Hugo version: 0.112.5

Pandoc version: 2.19.2

不确定是问题还是 breaking change 毕竟我用的是 hugo 0.112.5

CyrusYip 旧版本是没有问题的。我不知道怎么确定这是 BUG 还是开发者有意要改动的部分。

    CyrusYip 更改标题为「blogdown can't evaluate field RSSLink in type page.Site

    Cloud2016 如我日志中所说,强烈建议不要用 0.112.x 系列的 Hugo,开发者从 0.112.0 开始就在擦屁股,擦到第 6 个版本了还没擦完。建议用低版本的 Hugo。

    我有点好奇,你已经是建站老手了为啥还会安装最新版本的 Hugo 呢?是在搭什么新网站吗?

      之前也遇到了类似的问题,的确是在 Hugo 0.112.x 出现的。后来我发现 .Site.RSSLink 大概是一个过时的写法,我更新了主题改成了使用 with 的写法就可以了。不过可能由于 with 是感知上下文的,单个文章的渲染结果就没有那个 RSS link 了。

        yihui 我猜可能很多人(如我)在本地默认都是用 Homebrew 或者 Chocolatey 之类的包管理器安装的全局 Hugo,所以只能被动升级,一般没事,偶尔会有小问题。主要是方便,不用考虑开一个项目先想 Hugo 在哪里需不需要升级的问题。

          yihui 确如 nan.xiao 所说,更新软件的时候,顺带也更新了 Hugo 。没有倒腾新网站,按照 nan.xiao 给的链接,更新了 with 的写法就好了。

            nan.xiao 这个 .RSSLink 变量似乎名义上已经被弃用很久了,但一直到 0.111.3 还可以用,0.112.0 才彻底毙掉它。

            nan.xiao 明白了。当然,我依然不推荐用 Homebrew 或系统管理软件来管理 Hugo,感觉它的开发者有时候释放新版本有点随意,所以版本能固定尽量固定吧,而且固定的好处是可以保证本地预览和服务器渲染的结果是相同的,否则会本地用最新版本,而服务器端用某个固定的低版本。

            Cloud2016 我也在这个主题中修正了

              nan.xiao blowdown 会使用固定的 Hugo,这就解决了包管理器不能固定版本的问题。可以把 blowdown 装的某个 Hugo 加到 PATH 变量,这样就可以一直用它。

              一直升级 Hugo 着实是提心吊胆,Hugo 更新快变化多,我没那么对时间读更新日志还有看网站有没有出问题。给同一个项目用固定的 Hugo 不就保证可复现嘛。没什么吸引我的新功能我就不升级了。

              更新主题也很可怕,得好好对比主题配置的变化,对照着改自己的。

              一直升级也有好处,用户可能只是每次做些小改动。一下跨很多版本升级可能需要改动很对配置。

                CyrusYip 我就是这么考虑的。不过,看来以后可以保守些,等出 1.0 这样的版本再升级不迟。

                  Cloud2016 Hugo 2013 年就发布了,照现在的版本号增长规律,十年后估计都没有 1.0 啊。刚发现 Hugo 的文档只有一个版本,看来只适用于最新版。

                    除了代码折叠这样的功能,我想我不会再有动力去折腾 Hugo 配置网站,眼下的基本够用。我期待 @yihui 某一天加上这个功能,或者等某个人基于跟我一样的主题,做了一个折叠功能,我再去折腾一下。

                      yihui 目前,我不知道该怎么同步你的这个主题仓库。我之前是用 git subtree 将你的主题仓库整个拷贝一份过来,添加了一条 commit ,之后折腾 utterances 又留下两条脏记录。关于这个 subtree 下的提交记录 见这

                        Hugo 发第 7 个修补版本了,以后真不能去随意更新了,真麻烦。