You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于Hugo Academic与blogdown的站点RSS订阅配置需求及问题

为你的Hugo Academic站点添加RSS订阅(含「面向R Bloggers」分类独立订阅)

我帮你梳理一下具体的操作步骤,针对你用blogdown搭建的Hugo Academic站点,不管是全站RSS还是特定分类的独立订阅,都能轻松搞定:

一、先搞定全站默认RSS

其实Hugo Academic模板默认就开启了全站RSS订阅功能,你直接访问站点根目录加/index.xml就能看到(比如你的站点就是根域名拼上这个路径)。

如果想确认配置是否正确,可以打开站点根目录的config/_default/config.toml,检查有没有这段配置(一般默认就有,要是没有就加上):

[outputs]
  home = ["HTML", "RSS", "JSON"]
  page = ["HTML"]
  section = ["HTML", "RSS"]

这里的home = ["HTML", "RSS", "JSON"]就是让Hugo生成全站的RSS feed,section包含RSS则是为后续分类RSS做准备。

二、配置「面向R Bloggers」分类的独立RSS

接下来是你需要的特定分类独立订阅,步骤如下:

  1. 确认分类的slug:首先得搞清楚这个分类在Hugo里的slug(也就是URL里的标识)。你可以看已发布的分类页面地址,或者打开示例博文的Front Matter(就是博文开头的那段YAML配置),看categories字段。如果是中文分类名,Hugo可能会自动转成拼音slug(比如mian-xiang-r-bloggers),你可以先部署后访问分类页面,从地址栏里拿到正确的slug。

  2. 自动生成分类RSS:刚才的config.toml里section = ["HTML", "RSS"]已经开启了每个分类的RSS生成,所以对应的分类RSS地址就是/categories/[你的分类slug]/index.xml。比如slug是r-bloggers,那地址就是/categories/r-bloggers/index.xml,部署后访问这个地址就能看到该分类下所有文章的RSS feed了。

  3. 自定义分类RSS内容(可选):如果你想给这个分类的RSS改个专属标题、描述之类的,可以自定义模板。先在站点根目录新建layouts/section文件夹(没有的话就创建),然后新建[你的分类slug].rss.xml文件(比如r-bloggers.rss.xml),复制下面的模板内容并修改你需要的部分(比如把<title>改成「面向R Bloggers - Malte Grosser的站点」):

<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>{{ .Site.Title }} - 面向R Bloggers</title>
    <link>{{ .Permalink }}</link>
    <description>这里可以写分类专属的描述内容</description>
    <generator>Hugo -- gohugo.io</generator>{{ with .Site.LanguageCode }}
    <language>{{ . }}</language>{{ end }}{{ with .Site.Author.email }}
    <managingEditor>{{ . }} {{ with $.Site.Author.name }}({{ . }}){{ end }}</managingEditor>{{ end }}{{ with .Site.Author.email }}
    <webMaster>{{ . }} {{ with $.Site.Author.name }}({{ . }}){{ end }}</webMaster>{{ end }}{{ with .Site.Copyright }}
    <copyright>{{ . }}</copyright>{{ end }}{{ if not .Date.IsZero }}
    <lastBuildDate>{{ .Date.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML }}</lastBuildDate>{{ end }}
    <atom:link href="{{ .Permalink }}index.xml" rel="self" type="application/rss+xml" />
    {{ range .Pages }}
    <item>
      <title>{{ .Title }}</title>
      <link>{{ .Permalink }}</link>
      <pubDate>{{ .Date.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML }}</pubDate>
      {{ with .Site.Author.email }}<author>{{ . }} {{ with $.Site.Author.name }}({{ . }}){{ end }}</author>{{ end }}
      <guid>{{ .Permalink }}</guid>
      <description>{{ .Summary | html }}</description>
    </item>
    {{ end }}
  </channel>
</rss>
  1. 添加订阅入口到站点(可选):为了方便用户订阅,你可以把RSS链接加到导航栏里。打开config/_default/menus.toml,添加下面的内容:
[[main]]
  name = "全站RSS订阅"
  url = "/index.xml"
  weight = 100

[[main]]
  name = "面向R Bloggers RSS"
  url = "/categories/r-bloggers/index.xml"
  weight = 101

这里的weight用来控制导航项的顺序,数字越小越靠前,你可以根据自己的需求调整。

最后,把修改后的代码推送到GitHub,Netlify会自动重新部署,部署完成后你就可以验证这两个RSS feed是否正常工作啦!

内容的提问来源于stack exchange,提问作者Taz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 09:00:04