summaryrefslogtreecommitdiff
path: root/tools/html-to-atom-dump.xsl
diff options
context:
space:
mode:
Diffstat (limited to 'tools/html-to-atom-dump.xsl')
-rw-r--r--tools/html-to-atom-dump.xsl110
1 files changed, 0 insertions, 110 deletions
diff --git a/tools/html-to-atom-dump.xsl b/tools/html-to-atom-dump.xsl
deleted file mode 100644
index fce78a2..0000000
--- a/tools/html-to-atom-dump.xsl
+++ /dev/null
@@ -1,110 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- xmlns:atom="http://www.w3.org/2005/Atom"
- xmlns:xhtml="http://www.w3.org/1999/xhtml"
- xmlns="http://www.w3.org/2005/Atom"
- version="1.0">
- <xsl:output method="xml" indent="yes"/>
- <xsl:variable name="baseIRI">
- <xsl:text>https://defanor.uberspace.net/</xsl:text>
- </xsl:variable>
-
- <!-- Feed -->
- <xsl:template match="/">
- <feed>
- <title>defanor's notes</title>
- <link rel="self" href="{$baseIRI}atom.xml" />
- <link rel="alternate" href="{$baseIRI}" />
- <id>
- <xsl:value-of select="$baseIRI" />
- </id>
- <!--
- Setting <updated> statically, since it applies to some
- meaningful feed updates. Perhaps should be modified on
- metadata changes.
- -->
- <updated>2018-04-14T10:00:00Z</updated>
- <xsl:apply-templates select="/list/entry" />
- </feed>
- </xsl:template>
-
- <!-- Turns index entries into Atom entries -->
- <xsl:template match="entry">
- <xsl:variable name="localPath">
- <xsl:text>../</xsl:text>
- <xsl:value-of select="@name" />
- </xsl:variable>
- <xsl:variable name="doc" select="document($localPath)" />
- <entry>
- <link rel="alternate" href="{$baseIRI}{@name}" />
- <id>
- <xsl:text>https://defanor.uberspace.net/</xsl:text>
- <xsl:value-of select="@name" />
- </id>
- <!-- Setting this statically for now. -->
- <author>
- <name>defanor</name>
- </author>
- <xsl:apply-templates mode="atom-entry" select="$doc" />
- </entry>
- </xsl:template>
-
- <xsl:template mode="atom-entry" match="/ | xhtml:head | xhtml:html">
- <xsl:apply-templates mode="atom-entry" />
- </xsl:template>
-
- <!-- Title -->
- <xsl:template mode="atom-entry" match="xhtml:title">
- <title>
- <xsl:value-of select="." />
- </title>
- </xsl:template>
-
- <!-- Description/summary -->
- <xsl:template mode="atom-entry"
- match="xhtml:meta[@name='description' or
- @property='dc:description schema:description']">
- <summary>
- <xsl:value-of select="@content" />
- </summary>
- </xsl:template>
-
- <!--
- Atom is rather strict in its date-time requriements. It's not
- always convenient or useful to be that strict in HTML metadata,
- so might be better to introduce some check and conversion.
- -->
- <!-- Publication date -->
- <xsl:template mode="atom-entry"
- match="xhtml:meta[@property='dc:issued schema:datePublished']">
- <published>
- <xsl:value-of select="@content" />
- </published>
- </xsl:template>
-
- <!-- Modification date -->
- <xsl:template mode="atom-entry"
- match="xhtml:meta[@property='dc:modified schema:dateModified']">
- <updated>
- <xsl:value-of select="@content" />
- </updated>
- </xsl:template>
-
- <!-- Body/content -->
- <xsl:template mode="atom-entry" match="xhtml:body">
- <content type="xhtml">
- <!--
- "the content of atom:content MUST be a single XHTML div
- element"
- -->
- <xhtml:div>
- <xsl:copy-of select="*" />
- </xhtml:div>
- </content>
- </xsl:template>
-
- <!-- Skip everything else -->
- <xsl:template mode="atom-entry" match="node()" priority="0" />
-
-</xsl:stylesheet>