sitemap.xsl (136 lines of code) (raw):

<?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="2.0" xmlns:html="http://www.w3.org/TR/REC-html40" xmlns:sitemap="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="html" version="1.0" encoding="UTF-8" indent="yes" /> <xsl:template match="/"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>XML Sitemap</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <style type="text/css"> body { font-size: 14px; } a { color: inherit; } table { width: 100%; border-radius: 8px; border-collapse: collapse; overflow: hidden; text-align: center; } caption { font-weight: bold; font-size: 1.5rem; line-height: 2; } th { min-width: 56px; padding: 8px; background-color: #41b883; color: #fff; font-weight: bold; font-size: 16px; } @media (max-width: 719px) { th { font-size: 14px; } } th:first-child { text-align: start; } tr:nth-child(even) { background-color: #f2f2f2; } tr:hover { background-color: #e8e8e8; } td { padding: 4px; font-size: 14px; } @media (max-width: 719px) { td { font-size: 12px; } } td:first-child { text-align: start; } footer { margin-top: 10px; padding: 4px; color: grey; font-size: 12px; text-align: center; } </style> </head> <body> <h1>XML Sitemap</h1> <div id="content"> <table> <caption>URLs list</caption> <thead> <tr> <th> <xsl:value-of select="concat('URL (', count(sitemap:urlset/sitemap:url), ')')" /> </th> <th>Priority</th> <th>Change Frequency</th> <th>Last Updated Time</th> </tr> </thead> <tbody> <xsl:variable name="lower" select="'abcdefghijklmnopqrstuvwxyz'" /> <xsl:variable name="upper" select="'ABCDEFGHIJKLMNOPQRSTUVWXYZ'" /> <xsl:for-each select="sitemap:urlset/sitemap:url"> <tr> <td> <xsl:variable name="itemURL"> <xsl:value-of select="sitemap:loc" /> </xsl:variable> <a href="{$itemURL}"> <xsl:value-of select="sitemap:loc" /> </a> </td> <td> <xsl:choose> <xsl:when test="sitemap:priority"> <xsl:value-of select="concat(sitemap:priority*100,'%a')" /> </xsl:when> <xsl:otherwise> <xsl:text>0.5</xsl:text> </xsl:otherwise> </xsl:choose> </td> <td> <xsl:choose> <xsl:when test="sitemap:changefreq"> <xsl:value-of select="concat(translate(substring(sitemap:changefreq, 1, 1),concat($lower, $upper),concat($upper, $lower)),substring(sitemap:changefreq, 2))" /> </xsl:when> <xsl:otherwise> <xsl:text>-</xsl:text> </xsl:otherwise> </xsl:choose> </td> <td> <xsl:value-of select="concat(substring(sitemap:lastmod,0,11),concat(' ', substring(sitemap:lastmod,12,5)))" /> </td> </tr> </xsl:for-each> </tbody> </table> </div> <footer> Generatd by <a href="https://plugin-sitemap2.vuejs.press">vuepress-plugin-sitemap2</a> </footer> </body> </html> </xsl:template> </xsl:stylesheet>