feed.twig 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. {%- if config.tagblog.site_url is defined -%}
  2. {%- set site_url = config.tagblog.site_url -%}{%- else -%}{%- set site_url = config.base_url -%}
  3. {%- endif -%}
  4. <?xml version="1.0" encoding="utf-8"?>
  5. <feed xmlns="http://www.w3.org/2005/Atom">
  6. <!-- Thanks to Lars for helping me improve this file -->
  7. <title>{{ site_title }}</title>
  8. <link href="{{ site_url }}{{ current_page.id }}" rel="self"/>
  9. <subtitle>
  10. {% if config.tagblog.site_description %}
  11. {{ config.tagblog.site_description }}
  12. {% else %}
  13. Blog feed
  14. {% endif %}
  15. </subtitle>
  16. {# <language>en-us</language> #}
  17. <updated>{{ "now"|date("Y-m-d\\TH:i:sP") }}</updated>
  18. <id>{{ site_url }}</id>
  19. {% set limit = config.tagblog.feed.limit|default('10') %}
  20. {# it is not easy to break out of a loop in twig: stackoverflow.com/a/29161205 #}
  21. {% set break = false %}
  22. {% set count = 0 %}
  23. {% for page in pages if not break %}
  24. {% if page.meta.tags and page.meta.date %}
  25. <entry>
  26. <title>{{ page.title }}</title>
  27. <link href="{{ site_url }}{{ page.id }}" rel="alternate"/>
  28. <updated>{{ page.date_formatted|date("Y-m-d\\TH:i:sP") }}</updated>
  29. <published>{{ page.date_formatted|date("Y-m-d\\TH:i:sP") }}</published>
  30. <author><name>{% if page.author %}{{ page.author }}{% else %}{{ site_title }}{% endif %}</name></author>
  31. {% for tag in page.meta.tags|split(',') %}
  32. <category term="{{ tag }}"/>
  33. {% endfor %}
  34. <id>{{ site_url }}{{ page.id }}</id>
  35. {% if config.tagblog.feed.content is defined and config.tagblog.feed.content %}
  36. <content><![CDATA[{{ page.id|content }}]]></content>
  37. {% else %}
  38. <summary type="html"><![CDATA[{% if page.description %}{{ page.description }}{% else %}{{ page.id|content|striptags|slice(0, 300) }}...{% endif %}]]></summary>
  39. {% endif %}
  40. </entry>
  41. {% set count = count + 1 %}
  42. {% if count == limit %}{% set break = true %}{% endif %}
  43. {% endif %}
  44. {% endfor %}
  45. </feed>