diff options
-rw-r--r-- | content/feed-styles/index.md | 4 | ||||
-rw-r--r-- | templates/atom.xml | 48 | ||||
-rw-r--r-- | templates/feed-styles.html | 77 |
3 files changed, 129 insertions, 0 deletions
diff --git a/content/feed-styles/index.md b/content/feed-styles/index.md new file mode 100644 index 0000000..bac7916 --- /dev/null +++ b/content/feed-styles/index.md @@ -0,0 +1,4 @@ ++++ +title = "feed-styles" +template = "feed-styles.html" ++++ diff --git a/templates/atom.xml b/templates/atom.xml new file mode 100644 index 0000000..3fd5dee --- /dev/null +++ b/templates/atom.xml @@ -0,0 +1,48 @@ +<?xml version="1.0" encoding="UTF-8"?> +<?xml-stylesheet href="/feed-styles/" type="text/xsl"?> +<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="{{ lang }}"> + <title>{{ config.title }} + {%- if term %} - {{ term.name }} + {%- elif section.title %} - {{ section.title }} + {%- endif -%} + </title> + {%- if config.description %} + <subtitle>{{ config.description }}</subtitle> + {%- endif %} + <link href="{{ feed_url | safe }}" rel="self" type="application/atom+xml"/> + <link href=" + {%- if section -%} + {{ section.permalink | escape_xml | safe }} + {%- else -%} + {{ config.base_url | escape_xml | safe }} + {%- endif -%} + "/> + <generator uri="https://www.getzola.org/">Zola</generator> + <updated>{{ last_updated | date(format="%+") }}</updated> + <id>{{ feed_url | safe }}</id> + {%- for page in pages %} + <entry xml:lang="{{ page.lang }}"> + <title>{{ page.title }}</title> + <published>{{ page.date | date(format="%+") }}</published> + <updated>{{ page.updated | default(value=page.date) | date(format="%+") }}</updated> + <author> + <name> + {%- if page.authors -%} + {{ page.authors[0] }} + {%- elif config.author -%} + {{ config.author }} + {%- else -%} + Unknown + {%- endif -%} + </name> + </author> + <link rel="alternate" href="{{ page.permalink | safe }}" type="text/html"/> + <id>{{ page.permalink | safe }}</id> + {% if page.summary %} + <summary type="html">{{ page.summary }}</summary> + {% else %} + <content type="html">{{ page.content }}</content> + {% endif %} + </entry> + {%- endfor %} +</feed> diff --git a/templates/feed-styles.html b/templates/feed-styles.html new file mode 100644 index 0000000..a6cae59 --- /dev/null +++ b/templates/feed-styles.html @@ -0,0 +1,77 @@ +<?xml version="1.0" encoding="utf-8"?> +<xsl:stylesheet version="3.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" + xmlns:atom="http://www.w3.org/2005/Atom"> + <xsl:output method="html" version="1.0" encoding="UTF-8" indent="yes"/> + <xsl:template match="/"> + <html xmlns="http://www.w3.org/1999/xhtml" lang="en"> + <head> + <title> + RSS Feed | + <xsl:value-of select="/atom:feed/atom:title"/> + </title> + <meta charset="utf-8"/> + <meta http-equiv="content-type" content="text/html; charset=utf-8"/> + <meta name="viewport" content="width=device-width, initial-scale=1"/> + {% include "style.html" ignore missing -%} + </head> + <body> + <main> + <div class="helptext"> + <strong>This is an RSS feed</strong>. Subscribe by copying + the URL from the address bar into your newsreader. Visit + <a href="https://aboutfeeds.com">About Feeds</a> + to learn more and get started. It's free. + </div> + <div> + <h1> + <!-- https://commons.wikimedia.org/wiki/File:Feed-icon.svg --> + <svg xmlns="http://www.w3.org/2000/svg" version="1.1" + style="width: 1.5ex; height: 1.5ex" + viewBox="0 0 256 256"> + <rect width="256" height="256" x="0" y="0" fill="#7F7F7F"/> + <rect width="246" height="246" x="5" y="5" fill="#A0A0A0"/> + <rect width="236" height="236" x="10" y="10" fill="#A6A6A6"/> + <circle cx="68" cy="189" r="24" fill="#FFF"/> + <path + d="M160 213h-34a82 82 0 0 0 -82 -82v-34a116 116 0 0 1 116 116z" + fill="#FFF"/> + <path + d="M184 213A140 140 0 0 0 44 73 V 38a175 175 0 0 1 175 175z" + fill="#FFF"/> + </svg> + RSS Feed Preview | + <span> + <xsl:value-of select="/atom:feed/atom:title"/> + </span> + </h1> + <nav> + <a> + <xsl:attribute name="href"> + <xsl:value-of select="/atom:feed/atom:link[2]/@href"/> + </xsl:attribute> + Visit Website + </a> + </nav> + <ul class="blog-posts"> + <xsl:for-each select="/atom:feed/atom:entry"> + <li> + <span> + <xsl:value-of select="substring(atom:updated, 0, 11)" /> + </span> + <div> + <a> + <xsl:attribute name="href"> + <xsl:value-of select="atom:link/@href"/> + </xsl:attribute> + <xsl:value-of select="atom:title"/> + </a> + </div> + </li> + </xsl:for-each> + </ul> + </div> + </main> + </body> + </html> + </xsl:template> +</xsl:stylesheet> |