]> git.ipfire.org Git - ipfire.org.git/blob - src/templates/blog/feed.xml
RSS: Fix empty GUID field
[ipfire.org.git] / src / templates / blog / feed.xml
1 <?xml version="1.0" encoding="utf-8"?>
2
3 {% import ipfire.accounts as accounts %}
4
5 <rss version="2.0"
6 xmlns:content="http://purl.org/rss/1.0/modules/content/"
7 xmlns:atom="http://www.w3.org/2005/Atom"
8 xmlns:sy="http://purl.org/rss/1.0/modules/syndication/">
9 <channel>
10 <title>IPFire Blog</title>
11 <atom:link href="https://blog.ipfire.org/feed.xml" rel="self" type="application/rss+xml" />
12 <link>https://blog.ipfire.org</link>
13 <description>The official blog of the IPFire Project</description>
14 <lastBuildDate>{{ now }}</lastBuildDate>
15 <language>en-GB</language>
16 <sy:updatePeriod>hourly</sy:updatePeriod>
17 <sy:updateFrequency>1</sy:updateFrequency>
18
19 <image>
20 <url>https://www.ipfire.org{{ static_url("img/tux/ipfire_tux_32x32.png") }}</url>
21 <title>IPFire Blog</title>
22 <link>https://blog.ipfire.org</link>
23 <width>32</width>
24 <height>32</height>
25 </image>
26
27 <atom:link rel="payment" title="Donate!" href="https://www.ipfire.org/donate" type="text/html" />
28
29 {% for post in posts %}
30 <item>
31 <title>{{ post.title }}</title>
32 <link>https://blog.ipfire.org/post/{{ post.slug }}</link>
33 {% if isinstance(post.author, accounts.Account) %}
34 <author>{{ post.author.email }} ({{ post.author.name }})</author>
35 {% else %}
36 <author>{{ post.author }}</author>
37 {% end %}
38 <pubDate>{{ post.published_at.strftime("%a, %d %b %Y %H:%M:%S +0200") }}</pubDate>
39 <guid isPermaLink="true">https://blog.ipfire.org/post/{{ post.slug }}</guid>
40 <description><![CDATA[{% raw post.html %}]]></description>
41 </item>
42 {% end %}
43 </channel>
44 </rss>