summaryrefslogtreecommitdiff
path: root/static/sitemap_style.xsl
diff options
context:
space:
mode:
authorAlejandro Soto <alejandro@34project.org>2025-09-13 14:55:15 -0600
committerAlejandro Soto <alejandro@34project.org>2025-09-13 14:55:15 -0600
commita2ea06d513a5802964f8f0ef5795cec7e548ed7b (patch)
tree8afb58e3749d19bc46cffc6473f3059d647c515b /static/sitemap_style.xsl
Squashed 'themes/tabi-lean/' content from commit 95c8796
git-subtree-dir: themes/tabi-lean git-subtree-split: 95c879696445ede40daa7a30a88dae5dd74d5c0c
Diffstat (limited to 'static/sitemap_style.xsl')
-rw-r--r--static/sitemap_style.xsl51
1 files changed, 51 insertions, 0 deletions
diff --git a/static/sitemap_style.xsl b/static/sitemap_style.xsl
new file mode 100644
index 0000000..70c3bb4
--- /dev/null
+++ b/static/sitemap_style.xsl
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet version="2.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:sitemap="http://www.sitemaps.org/schemas/sitemap/0.9">
+ <xsl:output method="html" encoding="UTF-8" indent="yes" />
+
+ <!-- The base URL is assumed to be the first URL in the sitemap. -->
+ <xsl:variable name="baseUrl" select="(sitemap:urlset/sitemap:url)[1]/sitemap:loc"/>
+ <!-- Remove http[s]:// -->
+ <xsl:variable name="baseUrlWithoutProtocol" select="substring-after($baseUrl, '://')"/>
+ <!-- Remove trailing slash -->
+ <xsl:variable name="clean_base_url" select="substring-before($baseUrlWithoutProtocol, '/')"/>
+
+ <xsl:template match="/sitemap:urlset">
+ <html>
+ <head>
+ <title>Sitemap • <xsl:value-of select="$clean_base_url"/></title>
+ <link rel="stylesheet" href="{$baseUrl}main.css"/>
+ <script src="{$baseUrl}js/sortTable.min.js" defer="defer"></script>
+ </head>
+ <body>
+ <div class="full-width">
+ <h1>Sitemap of <xsl:value-of select="$clean_base_url"/></h1>
+ <p>Number of URLs: <xsl:value-of select="count(sitemap:url)"/></p>
+ <table id="sitemapTable" class="sitemap-table" aria-label="URLs on the site and their last modification dates">
+ <thead>
+ <tr>
+ <th><span class="columntitle">URL</span></th>
+ <th><span class="columntitle">Last modification</span></th>
+ </tr>
+ </thead>
+ <tbody>
+ <xsl:for-each select="sitemap:url">
+ <tr>
+ <td>
+ <a href="{sitemap:loc}">
+ <xsl:value-of select="sitemap:loc"/>
+ </a>
+ </td>
+ <td>
+ <xsl:value-of select="sitemap:lastmod"/>
+ </td>
+ </tr>
+ </xsl:for-each>
+ </tbody>
+ </table>
+ </div>
+ </body>
+ </html>
+ </xsl:template>
+</xsl:stylesheet>