feat(sitemap): add custom sitemap configuration and XSLT file
This commit is contained in:
@ -10,7 +10,38 @@ export default defineConfig({
|
|||||||
site: "https://jleibl.net",
|
site: "https://jleibl.net",
|
||||||
integrations: [
|
integrations: [
|
||||||
react(),
|
react(),
|
||||||
sitemap(),
|
sitemap({
|
||||||
|
changefreq: "weekly",
|
||||||
|
priority: 1.0,
|
||||||
|
lastmod: new Date("2025-05-16"),
|
||||||
|
customPages: [
|
||||||
|
"https://jleibl.net/#about",
|
||||||
|
"https://jleibl.net/#work",
|
||||||
|
"https://jleibl.net/#hobby",
|
||||||
|
"https://jleibl.net/#contact",
|
||||||
|
],
|
||||||
|
i18n: {
|
||||||
|
defaultLocale: "en",
|
||||||
|
locales: {
|
||||||
|
en: "en-US",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
serialize: (item) => {
|
||||||
|
if (item.url === "https://jleibl.net/") {
|
||||||
|
return {
|
||||||
|
...item,
|
||||||
|
img: [
|
||||||
|
{
|
||||||
|
url: "https://jleibl.net/profile-image-futu-style.jpg",
|
||||||
|
caption: "Jan-Marlon Leibl - Fullstack Developer",
|
||||||
|
},
|
||||||
|
],
|
||||||
|
};
|
||||||
|
}
|
||||||
|
return item;
|
||||||
|
},
|
||||||
|
xslURL: "/sitemap.xsl",
|
||||||
|
}),
|
||||||
icon({
|
icon({
|
||||||
include: {
|
include: {
|
||||||
ph: ["*"],
|
ph: ["*"],
|
||||||
|
77
public/sitemap.xsl
Normal file
77
public/sitemap.xsl
Normal file
@ -0,0 +1,77 @@
|
|||||||
|
<?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 - Jan-Marlon Leibl</title>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||||
|
<style type="text/css">
|
||||||
|
body {
|
||||||
|
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
|
||||||
|
color: #333;
|
||||||
|
max-width: 75rem;
|
||||||
|
margin: 0 auto;
|
||||||
|
padding: 2rem;
|
||||||
|
}
|
||||||
|
table {
|
||||||
|
width: 100%;
|
||||||
|
border-collapse: collapse;
|
||||||
|
margin: 2rem 0;
|
||||||
|
}
|
||||||
|
th, td {
|
||||||
|
padding: 1rem;
|
||||||
|
text-align: left;
|
||||||
|
border-bottom: 1px solid #eee;
|
||||||
|
}
|
||||||
|
th {
|
||||||
|
background: #f5f5f5;
|
||||||
|
font-weight: 600;
|
||||||
|
}
|
||||||
|
tr:hover {
|
||||||
|
background: #f9f9f9;
|
||||||
|
}
|
||||||
|
a {
|
||||||
|
color: #0066cc;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
a:hover {
|
||||||
|
text-decoration: underline;
|
||||||
|
}
|
||||||
|
.header {
|
||||||
|
border-bottom: 1px solid #eee;
|
||||||
|
padding-bottom: 2rem;
|
||||||
|
margin-bottom: 2rem;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div class="header">
|
||||||
|
<h1>XML Sitemap</h1>
|
||||||
|
<p>This is the sitemap for jleibl.net</p>
|
||||||
|
</div>
|
||||||
|
<table>
|
||||||
|
<tr>
|
||||||
|
<th>URL</th>
|
||||||
|
<th>Priority</th>
|
||||||
|
<th>Change Frequency</th>
|
||||||
|
<th>Last Modified</th>
|
||||||
|
</tr>
|
||||||
|
<xsl:for-each select="sitemap:urlset/sitemap:url">
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<a href="{sitemap:loc}"><xsl:value-of select="sitemap:loc"/></a>
|
||||||
|
</td>
|
||||||
|
<td><xsl:value-of select="sitemap:priority"/></td>
|
||||||
|
<td><xsl:value-of select="sitemap:changefreq"/></td>
|
||||||
|
<td><xsl:value-of select="sitemap:lastmod"/></td>
|
||||||
|
</tr>
|
||||||
|
</xsl:for-each>
|
||||||
|
</table>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
</xsl:template>
|
||||||
|
</xsl:stylesheet>
|
Reference in New Issue
Block a user