Skip to main content

RSS テンプレート

Hugo には、ほとんど設定が不要な独自の RSS 2.0 テンプレートが同梱されています。また、独自の RSS テンプレートを作成することもできます。

RSS テンプレートの検索順序

完全なリファレンスについては、テンプレートの検索順序 を参照してください。

RSS ページは Page というタイプで、テンプレートで使用できるすべての ページ変数 を持っています。

セクション RSS

セクションの RSS は /<SECTION>/index.xml にレンダリングされます (たとえば、 https://spf13.com/project/index.xml  )。

Hugo は、必要な RSS タイプを定義する機能を提供し、セクションとタクソノミーごとに異なる RSS ファイルを持つことができます。

RSS テンプレートのための検索順序

以下の表は、異なる種類のページに対する RSS テンプレートの検索順序を示しています。 最初のリストは、テーマ (demoTheme) で実行した場合の検索順序を表しています。

Example OutputFormat Suffix Template Lookup Order
RSS ホーム RSS xml
  1. layouts/index.rss.xml
  2. layouts/home.rss.xml
  3. layouts/rss.xml
  4. layouts/list.rss.xml
  5. layouts/index.xml
  6. layouts/home.xml
  7. layouts/list.xml
  8. layouts/_default/index.rss.xml
  9. layouts/_default/home.rss.xml
  10. layouts/_default/rss.xml
  11. layouts/_default/list.rss.xml
  12. layouts/_default/index.xml
  13. layouts/_default/home.xml
  14. layouts/_default/list.xml
  15. layouts/_internal/_default/rss.xml
RSS セクションの投稿 RSS xml
  1. layouts/posts/section.rss.xml
  2. layouts/posts/rss.xml
  3. layouts/posts/list.rss.xml
  4. layouts/posts/section.xml
  5. layouts/posts/list.xml
  6. layouts/section/section.rss.xml
  7. layouts/section/rss.xml
  8. layouts/section/list.rss.xml
  9. layouts/section/section.xml
  10. layouts/section/list.xml
  11. layouts/_default/section.rss.xml
  12. layouts/_default/rss.xml
  13. layouts/_default/list.rss.xml
  14. layouts/_default/section.xml
  15. layouts/_default/list.xml
  16. layouts/_internal/_default/rss.xml
カテゴリーのタクソノミー RSS xml
  1. layouts/categories/category.terms.rss.xml
  2. layouts/categories/terms.rss.xml
  3. layouts/categories/taxonomy.rss.xml
  4. layouts/categories/rss.xml
  5. layouts/categories/list.rss.xml
  6. layouts/categories/category.terms.xml
  7. layouts/categories/terms.xml
  8. layouts/categories/taxonomy.xml
  9. layouts/categories/list.xml
  10. layouts/category/category.terms.rss.xml
  11. layouts/category/terms.rss.xml
  12. layouts/category/taxonomy.rss.xml
  13. layouts/category/rss.xml
  14. layouts/category/list.rss.xml
  15. layouts/category/category.terms.xml
  16. layouts/category/terms.xml
  17. layouts/category/taxonomy.xml
  18. layouts/category/list.xml
  19. layouts/taxonomy/category.terms.rss.xml
  20. layouts/taxonomy/terms.rss.xml
  21. layouts/taxonomy/taxonomy.rss.xml
  22. layouts/taxonomy/rss.xml
  23. layouts/taxonomy/list.rss.xml
  24. layouts/taxonomy/category.terms.xml
  25. layouts/taxonomy/terms.xml
  26. layouts/taxonomy/taxonomy.xml
  27. layouts/taxonomy/list.xml
  28. layouts/_default/category.terms.rss.xml
  29. layouts/_default/terms.rss.xml
  30. layouts/_default/taxonomy.rss.xml
  31. layouts/_default/rss.xml
  32. layouts/_default/list.rss.xml
  33. layouts/_default/category.terms.xml
  34. layouts/_default/terms.xml
  35. layouts/_default/taxonomy.xml
  36. layouts/_default/list.xml
  37. layouts/_internal/_default/rss.xml
カテゴリーの用語 RSS xml
  1. layouts/categories/term.rss.xml
  2. layouts/categories/category.rss.xml
  3. layouts/categories/taxonomy.rss.xml
  4. layouts/categories/rss.xml
  5. layouts/categories/list.rss.xml
  6. layouts/categories/term.xml
  7. layouts/categories/category.xml
  8. layouts/categories/taxonomy.xml
  9. layouts/categories/list.xml
  10. layouts/term/term.rss.xml
  11. layouts/term/category.rss.xml
  12. layouts/term/taxonomy.rss.xml
  13. layouts/term/rss.xml
  14. layouts/term/list.rss.xml
  15. layouts/term/term.xml
  16. layouts/term/category.xml
  17. layouts/term/taxonomy.xml
  18. layouts/term/list.xml
  19. layouts/taxonomy/term.rss.xml
  20. layouts/taxonomy/category.rss.xml
  21. layouts/taxonomy/taxonomy.rss.xml
  22. layouts/taxonomy/rss.xml
  23. layouts/taxonomy/list.rss.xml
  24. layouts/taxonomy/term.xml
  25. layouts/taxonomy/category.xml
  26. layouts/taxonomy/taxonomy.xml
  27. layouts/taxonomy/list.xml
  28. layouts/category/term.rss.xml
  29. layouts/category/category.rss.xml
  30. layouts/category/taxonomy.rss.xml
  31. layouts/category/rss.xml
  32. layouts/category/list.rss.xml
  33. layouts/category/term.xml
  34. layouts/category/category.xml
  35. layouts/category/taxonomy.xml
  36. layouts/category/list.xml
  37. layouts/_default/term.rss.xml
  38. layouts/_default/category.rss.xml
  39. layouts/_default/taxonomy.rss.xml
  40. layouts/_default/rss.xml
  41. layouts/_default/list.rss.xml
  42. layouts/_default/term.xml
  43. layouts/_default/category.xml
  44. layouts/_default/taxonomy.xml
  45. layouts/_default/list.xml
  46. layouts/_internal/_default/rss.xml

RSS を設定する

デフォルトでは、Hugo は無制限の数の RSS エントリを作成します。 プロジェクトの設定ファイル の rssLimit: フィールドに数値を割り当てることで、組み込みの RSS テンプレートに含まれる記事の数を制限できます。

また、以下の値が指定されている場合は、RSS 出力に含まれます。

埋め込み型 rss.xml

以下は、Hugo に同梱されているデフォルトの RSS テンプレートです。

https://github.com/gohugoio/hugo/blob/master/tpl/tplimpl/embedded/templates/_default/rss.xml 

<head> で RSS フィードを参照する

header.html テンプレートでは、以下のように Hugo の 出力形式 を使用して <head></head> タグで RSS フィードを指定できます。

{{ range .AlternativeOutputFormats -}}
    {{ printf `<link rel="%s" type="%s" href="%s" title="%s" />` .Rel .MediaType.Type .Permalink $.Site.Title | safeHTML }}
{{ end -}}

RSS のリンクだけが必要な場合は、フォーマットをクエリできます。

{{ with .OutputFormats.Get "rss" -}}
    {{ printf `<link rel="%s" type="%s" href="%s" title="%s" />` .Rel .MediaType.Type .Permalink $.Site.Title | safeHTML }}
{{ end -}}

上記の 2 つのスニペットのどちらかを使用すると、サイトのホームページに以下のような RSS 出力用の link タグが生成されます。

<link rel="alternate" type="application/rss+xml" href="https://example.com/index.xml" title="Site Title">

上記の例では、BaseURLhttps://example.com/$.Site.Title"Site Title" と仮定しています。