diff options
Diffstat (limited to '_rss')
-rw-r--r-- | _rss/head.xml | 37 | ||||
-rw-r--r-- | _rss/item.xml | 60 |
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> |