about summary refs log tree commit diff homepage
path: root/_rss
diff options
context:
space:
mode:
Diffstat (limited to '_rss')
-rw-r--r--_rss/head.xml37
-rw-r--r--_rss/item.xml60
2 files changed, 97 insertions, 0 deletions
diff --git a/_rss/head.xml b/_rss/head.xml
new file mode 100644
index 0000000..4c9f62b
--- /dev/null
+++ b/_rss/head.xml
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+This is based on Yandex's https://yandex.com/support/zen/website/rss-modify.html
+
+The scope of this segment is the GLOBAL scope (variables defined in config.md).
+For instance 'website_url' or 'website_description'.
+
+Notes:
+* namespaces (xmlns): https://validator.w3.org/feed/docs/howto/declare_namespaces.html
+* best practices: https://www.rssboard.org/rss-profile
+* fd2rss convers markdown to html and fixes or removes relative links
+* fd_rss_feed_url is built out of {website_url}/{rss_file}.xml, you can change the
+rss_file variable in your config file if you want to use something different than 'feed'
+-->
+<rss version="2.0"
+  xmlns:content="http://purl.org/rss/1.0/modules/content/"
+  xmlns:dc="http://purl.org/dc/elements/1.1/"
+  xmlns:media="http://search.yahoo.com/mrss/"
+  xmlns:atom="http://www.w3.org/2005/Atom"
+  xmlns:georss="http://www.georss.org/georss">
+
+  <channel>
+    <title>
+      <![CDATA[  {{fd2rss website_title}}  ]]>
+    </title>
+    <link> {{website_url}} </link>
+    <description>
+      <![CDATA[  {{fd2rss website_description}}  ]]>
+    </description>
+    <atom:link
+      href="{{fd_rss_feed_url}}"
+      rel="self"
+      type="application/rss+xml" />
+<!--
+* items will be added here in chronological order
+* the channel will then be closed
+-->
diff --git a/_rss/item.xml b/_rss/item.xml
new file mode 100644
index 0000000..07f6506
--- /dev/null
+++ b/_rss/item.xml
@@ -0,0 +1,60 @@
+<!--
+This is based on Yandex's https://yandex.com/support/zen/website/rss-modify.html
+
+The scope of this segment is the LOCAL scope (page variables). For instance 'rss_title'.
+
+Notes:
+* the local var rss_description (or rss) *must* be given otherwise the item
+is not generated.
+* rss_title if not given is inferred from page title
+* rss_pubdate if not given is inferred from the date of last modification
+* the full content is not added by default but can be if the variable rss_full_content
+is set to true (either globally or locally).
+* RFC822 or RFC1123 is a date format required by RSS.
+* there is debate about supporting one or several enclosures
+(see https://www.rssboard.org/rss-profile#element-channel-item-enclosure).
+We use the conservative 'only one' approach by default but you could tweak this by
+defining your own `rss_enclosures` variable with a list of string and use that.
+-->
+<item>
+  <title>
+    <![CDATA[  {{fd2rss rss_title}}  ]]>
+  </title>
+  <link> {{fd_full_url}} </link>
+  <guid> {{fd_full_url}} </guid>
+  <description>
+    <![CDATA[  {{fd2rss rss_description}}  ]]>
+  </description>
+
+  <!-- note that fd_page_html is already HTML, so we don't use fd2rss here -->
+  {{if rss_full_content}}
+  <content:encoded>
+    <![CDATA[  {{fix_relative_links fd_page_html}} ]]>
+  </content:encoded>
+  {{end}}
+
+  <!-- RFC1123 enforces a RSS-compliant date formatting -->
+  <pubDate>{{RFC822 rss_pubdate}}</pubDate>
+
+  <!-- if given this must be an email, see specs -->
+  {{isnotempty rss_author}}
+  <author> {{rss_author}} </author>
+  {{end}}
+  {{isnotempty author}}
+  <atom:author>
+    <atom:name>{{author}}</atom:name>
+  </atom:author>
+  {{end}}
+
+  {{isnotempty rss_category}}
+  <category> {{rss_category}} </category>
+  {{end}}
+
+  {{isnotempty rss_comments}}
+  <comments> {{rss_comments}} </comments>
+  {{end}}
+
+  {{isnotempty rss_enclosure}}
+  <enclosure> {{rss_enclosure}} </enclosure>
+  {{end}}
+</item>