PluginProbe
ThinkRank AI SEO – AI SEO Plugin for WordPress: Schema, XML Sitemaps, Meta Tags, Search Console & Local SEO / 2.9.0
ThinkRank AI SEO – AI SEO Plugin for WordPress: Schema, XML Sitemaps, Meta Tags, Search Console & Local SEO v2.9.0
2.9.0 2.8.0 2.7.0 2.6.0 2.5.0 2.4.0 2.3.0 2.2.0 2.1.1 2.1.0 2.0.2 2.0.1 2.0.0 1.32.0 1.31.0 1.30.0 1.29.0 1.28.0 1.27.0 1.26.0 1.25.0 trunk 1.0.0 1.0.1 1.0.2 All 50 releases
thinkrank / static / xsl / sitemap-index.xsl

sitemap-index.xsl in ThinkRank AI SEO – AI SEO Plugin for WordPress: Schema, XML Sitemaps, Meta Tags, Search Console & Local SEO 2.9.0, at static/xsl/sitemap-index.xsl

276 lines 12.4 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?xml version="1.0" encoding="UTF-8"?>
2 <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:sitemap="http://www.sitemaps.org/schemas/sitemap/0.9">
3 <xsl:output method="html" version="1.0" encoding="UTF-8" indent="yes"/>
4
5 <xsl:template match="/">
6 <html xmlns="http://www.w3.org/1999/xhtml">
7 <head>
8 <title>XML Sitemap Index - ThinkRank SEO</title>
9 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
10 <style type="text/css">
11 /*
12 * Brand palette.
13 *
14 * Every value here is the stock one, so this stylesheet is
15 * complete on its own: opened directly it renders exactly
16 * as it always has. Sitemap_Stylesheet overrides these
17 * declarations when the site has set a brand colour, which
18 * is why each brandable colour is a custom property and
19 * nothing below repeats a literal.
20 */
21 :root {
22 --tr-brand-main: #667eea;
23 --tr-brand-accent: #764ba2;
24 --tr-brand-on-brand: #ffffff;
25 --tr-brand-link: #007bff;
26 --tr-brand-link-hover: #0056b3;
27 --tr-brand-th: #6c757d;
28 --tr-brand-th-text: #ffffff;
29 --tr-brand-rule: #2196f3;
30 --tr-brand-note: #1565c0;
31 --tr-brand-note-bg: #e3f2fd;
32 --tr-brand-badge: #28a745;
33 --tr-brand-badge-text: #ffffff;
34 }
35 .sitemap-logo {
36 display: block;
37 margin: 0 auto 18px;
38 max-height: 64px;
39 max-width: 260px;
40 width: auto;
41 height: auto;
42 }
43 body {
44 font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
45 margin: 0;
46 padding: 20px;
47 background-color: #f8f9fa;
48 color: #333;
49 line-height: 1.6;
50 }
51 .header {
52 background: linear-gradient(135deg, var(--tr-brand-main) 0%, var(--tr-brand-accent) 100%);
53 color: var(--tr-brand-on-brand);
54 padding: 30px;
55 border-radius: 10px;
56 margin-bottom: 30px;
57 text-align: center;
58 }
59 .header h1 {
60 margin: 0;
61 font-size: 2.5em;
62 font-weight: 300;
63 }
64 .header p {
65 margin: 10px 0 0 0;
66 opacity: 0.9;
67 font-size: 1.1em;
68 }
69 .stats {
70 display: flex;
71 justify-content: center;
72 gap: 30px;
73 margin: 20px 0;
74 flex-wrap: wrap;
75 }
76 .stat-item {
77 background: rgba(255,255,255,0.2);
78 padding: 15px 25px;
79 border-radius: 8px;
80 text-align: center;
81 }
82 .stat-number {
83 font-size: 2em;
84 font-weight: bold;
85 display: block;
86 }
87 .stat-label {
88 font-size: 0.9em;
89 opacity: 0.8;
90 }
91 .container {
92 max-width: 1200px;
93 margin: 0 auto;
94 background: white;
95 border-radius: 10px;
96 box-shadow: 0 4px 6px rgba(0,0,0,0.1);
97 overflow: hidden;
98 }
99 .table-header {
100 background: #f8f9fa;
101 padding: 20px;
102 border-bottom: 2px solid #e9ecef;
103 }
104 .table-header h2 {
105 margin: 0;
106 color: #495057;
107 font-size: 1.5em;
108 }
109 .description {
110 background: var(--tr-brand-note-bg);
111 padding: 15px 20px;
112 border-left: 4px solid var(--tr-brand-rule);
113 margin: 20px;
114 border-radius: 4px;
115 }
116 .description p {
117 margin: 0;
118 color: var(--tr-brand-note);
119 font-size: 0.95em;
120 }
121 table {
122 width: 100%;
123 border-collapse: collapse;
124 font-size: 14px;
125 }
126 th {
127 background: var(--tr-brand-th);
128 color: var(--tr-brand-th-text);
129 padding: 15px 10px;
130 text-align: left;
131 font-weight: 600;
132 text-transform: uppercase;
133 font-size: 12px;
134 letter-spacing: 0.5px;
135 }
136 td {
137 padding: 12px 10px;
138 border-bottom: 1px solid #e9ecef;
139 vertical-align: top;
140 }
141 tr:hover {
142 background-color: #f8f9fa;
143 }
144 .sitemap-cell {
145 max-width: 400px;
146 word-break: break-all;
147 }
148 .sitemap-cell a {
149 color: var(--tr-brand-link);
150 text-decoration: none;
151 font-weight: 500;
152 }
153 .sitemap-cell a:hover {
154 text-decoration: underline;
155 color: var(--tr-brand-link-hover);
156 }
157 .sitemap-type {
158 display: inline-block;
159 background: var(--tr-brand-badge);
160 color: var(--tr-brand-badge-text);
161 padding: 4px 8px;
162 border-radius: 12px;
163 font-size: 11px;
164 font-weight: 600;
165 text-transform: uppercase;
166 letter-spacing: 0.5px;
167 }
168 .lastmod {
169 color: #6c757d;
170 font-family: 'Courier New', monospace;
171 font-size: 13px;
172 }
173 .footer {
174 text-align: center;
175 margin-top: 40px;
176 padding: 20px;
177 color: #6c757d;
178 font-size: 14px;
179 }
180 .footer a {
181 color: var(--tr-brand-link);
182 text-decoration: none;
183 }
184 .footer a:hover {
185 text-decoration: underline;
186 }
187
188 /* Responsive design */
189 @media (max-width: 768px) {
190 body { padding: 10px; }
191 .header { padding: 20px; }
192 .header h1 { font-size: 2em; }
193 .stats { gap: 15px; }
194 .stat-item { padding: 10px 15px; }
195 table { font-size: 12px; }
196 th, td { padding: 8px 6px; }
197 .sitemap-cell { max-width: 200px; }
198 }
199 </style>
200 </head>
201 <body>
202 <div class="header">
203 <!-- thinkrank:logo -->
204 <h1>XML Sitemap Index</h1>
205 <p>Generated by ThinkRank SEO Plugin</p>
206 <div class="stats">
207 <div class="stat-item">
208 <span class="stat-number"><xsl:value-of select="count(sitemap:sitemapindex/sitemap:sitemap)"/></span>
209 <span class="stat-label">Total Sitemaps</span>
210 </div>
211 <div class="stat-item">
212 <span class="stat-number">Today</span>
213 <span class="stat-label">Generated</span>
214 </div>
215 </div>
216 </div>
217
218 <div class="description">
219 <p><strong>What is a Sitemap Index?</strong> This file contains links to all the individual sitemaps for this website. Each sitemap contains specific types of content (posts, pages, products, etc.) to help search engines crawl and index your site more efficiently.</p>
220 </div>
221
222 <div class="container">
223 <div class="table-header">
224 <h2>Individual Sitemaps</h2>
225 </div>
226 <table>
227 <thead>
228 <tr>
229 <th>Sitemap URL</th>
230 <th>Content Type</th>
231 <th>Last Modified</th>
232 </tr>
233 </thead>
234 <tbody>
235 <xsl:for-each select="sitemap:sitemapindex/sitemap:sitemap">
236 <tr>
237 <td class="sitemap-cell">
238 <a href="{sitemap:loc}" target="_blank">
239 <xsl:value-of select="sitemap:loc"/>
240 </a>
241 </td>
242 <td>
243 <span class="sitemap-type">
244 <xsl:choose>
245 <xsl:when test="contains(sitemap:loc, 'posts')">Posts</xsl:when>
246 <xsl:when test="contains(sitemap:loc, 'pages')">Pages</xsl:when>
247 <xsl:when test="contains(sitemap:loc, 'categories')">Categories</xsl:when>
248 <xsl:when test="contains(sitemap:loc, 'products')">Products</xsl:when>
249 <xsl:when test="contains(sitemap:loc, 'product-categories')">Product Categories</xsl:when>
250 <xsl:otherwise>Content</xsl:otherwise>
251 </xsl:choose>
252 </span>
253 </td>
254 <td class="lastmod">
255 <xsl:choose>
256 <xsl:when test="sitemap:lastmod">
257 <xsl:value-of select="substring(sitemap:lastmod, 1, 10)"/>
258 </xsl:when>
259 <xsl:otherwise>-</xsl:otherwise>
260 </xsl:choose>
261 </td>
262 </tr>
263 </xsl:for-each>
264 </tbody>
265 </table>
266 </div>
267
268 <div class="footer">
269 <p>This XML sitemap index helps search engines discover and crawl all your website's content efficiently.</p>
270 <p>Generated by <a href="https://wordpress.org/plugins/thinkrank/" target="_blank">ThinkRank SEO</a></p>
271 </div>
272 </body>
273 </html>
274 </xsl:template>
275 </xsl:stylesheet>
276