commit: 651c4072698bc8727a71cbe31b74132fc0a652a1
parent 96520e50d1d981f402072cd2b6dbda63abae8882
Author: Haelwenn (lanodan) Monnier <contact@hacktivis.me>
Date:   Mon,  8 Jan 2024 16:00:08 +0100
atom.xsl: New xml-stylesheet for Atom feeds
Diffstat:
2 files changed, 40 insertions(+), 0 deletions(-)
diff --git a/atom.xsl.in b/atom.xsl.in
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet version="1.0"
+	xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+	xmlns="http://www.w3.org/1999/xhtml"
+	xmlns:xhtml="http://www.w3.org/1999/xhtml"
+	xmlns:xi="http://www.w3.org/2001/XInclude"
+	xmlns:atom="http://www.w3.org/2005/Atom"
+	xml:space="preserve"
+>
+	<xsl:import href="templates/en/nav.xsl" />
+	<xsl:output method="xml" encoding="UTF-8" indent="yes" omit-xml-declaration="yes"/>
+	<xsl:template match="/"><xsl:text disable-output-escaping='yes'><!DOCTYPE html></xsl:text>
+<html xml:lang="en" lang="en">
+	<head>
+		<xi:include href="templates/head.xml" parse="xml" xpointer="xpointer(/xml/*)"/>
+		<title><xsl:value-of select="/atom:feed/atom:title" /></title>
+	</head>
+	<body>
+	<xsl:call-template name="nav">
+		<xsl:with-param name="feedURL" select="/atom:feed/atom:link[@rel='self']/@href"/>
+	</xsl:call-template>
+		<main>
+			<h1><xsl:value-of select="/atom:feed/atom:title" /></h1>
+			<p>This is an Atom feed, you can regularly pull updates from it via a <a href="https://en.wikipedia.org/wiki/Feedreader">feedreader</a> and <a href="{/atom:feed/atom:link[@rel='self']/@href}">this feed's URL</a>. Included below are entries included in it, rendered without their included content for simplicity.</p>
+
+			<xsl:apply-templates select="/atom:feed/atom:entry"/>
+		</main>
+	<xi:include href="templates/en/footer.shtml" parse="xml"/>
+	</body>
+</html></xsl:template>
+
+	<xsl:template match="atom:entry">
+		<a href="{atom:id}"><h2><xsl:value-of select="atom:title"/></h2></a>
+		<p class="timestamps"><xsl:apply-templates select="atom:published"/><xsl:apply-templates select="atom:updated"/></p>
+	</xsl:template>
+
+<xsl:template match="atom:published">published on <xsl:value-of select="."/></xsl:template>
+<xsl:template match="atom:updated">, last updated on <xsl:value-of select="."/></xsl:template>
+</xsl:stylesheet>
diff --git a/build.ninja b/build.ninja
@@ -25,6 +25,7 @@ build bookmarks.html: xslt bookmarks.xsl bookmarks.xbel
 build bookmarks.html.br: brotli bookmarks.html
 
 build feed.atom: xinclude feed.atom.in
+build atom.xsl: xinclude atom.xsl.in
 
 build images/linux-audio-output.png: dot images/linux-audio-output.dot
   format = png