feat: Update sitemap with additional URLs and sitemap logic

This commit is contained in:
Gauthier Daniels 2025-04-18 17:50:32 +02:00
parent 3a84a78c43
commit 4a4d867ab9
2 changed files with 33 additions and 21 deletions

View File

@ -1 +1 @@
<?xml version="1.0" encoding="UTF-8"?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap-image/1.1"></urlset>
<?xml version="1.0" encoding="UTF-8"?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap-image/1.1"><url><loc>http://localhost:5500/</loc><lastmod>2025-04-18T15:49:26.620Z</lastmod><priority>1.0</priority></url><url><loc>http://localhost:5500/certifications</loc><lastmod>2025-04-18T15:49:26.620Z</lastmod><priority>0.9</priority></url><url><loc>http://localhost:5500/docs</loc><lastmod>2025-04-18T15:49:26.620Z</lastmod><priority>0.9</priority></url><url><loc>http://localhost:5500/docs/communaute/influenceurs</loc><lastmod>2025-04-18T15:49:26.620Z</lastmod><priority>0.7</priority></url><url><loc>http://localhost:5500/docs/communaute/partages</loc><lastmod>2025-04-18T15:49:26.620Z</lastmod><priority>0.7</priority></url><url><loc>http://localhost:5500/mentions-legales</loc><lastmod>2025-04-18T15:49:26.620Z</lastmod><priority>0.9</priority></url><url><loc>http://localhost:5500/politique-de-confidentialite</loc><lastmod>2025-04-18T15:49:26.620Z</lastmod><priority>0.9</priority></url><url><loc>http://localhost:5500/certifications/dwwm</loc><lastmod>2025-04-18T15:49:26.620Z</lastmod><priority>0.8</priority></url><url><loc>http://localhost:5500/certifications/dwwm/at1</loc><lastmod>2025-04-18T15:49:26.620Z</lastmod><priority>0.7</priority></url><url><loc>http://localhost:5500/certifications/dwwm/at2</loc><lastmod>2025-04-18T15:49:26.620Z</lastmod><priority>0.7</priority></url><url><loc>http://localhost:5500/docs/react</loc><lastmod>2025-04-18T15:49:26.620Z</lastmod><priority>0.8</priority></url><url><loc>http://localhost:5500/docs/merise</loc><lastmod>2025-04-18T15:49:26.620Z</lastmod><priority>0.8</priority></url></urlset>

View File

@ -53,7 +53,13 @@ class Sitemap {
this.sitemap += `</urlset>`;
}
private addSitemapElement(url: SitemapElement): void {}
private addSitemapElement(url: SitemapElement): void {
this.sitemap += `<url>`;
this.sitemap += `<loc>${url.location}</loc>`;
this.sitemap += `<lastmod>${url.lastmod || this.lastModified}</lastmod>`;
this.sitemap += `<priority>${url.priority}</priority>`;
this.sitemap += `</url>`;
}
private buildSitemap(): void {
this.prependSitemap();
@ -67,34 +73,40 @@ class Sitemap {
private loadPriority(href: string): string {
const isRootUrl = ["/", ""].includes(href);
const isMainUrl = ["/docs", "/certifications", "/politique-de-confidentialite", "/mentions-legales"].includes(href);
if (isRootUrl) return "1.0";
if (isMainUrl) return "0.9";
return "0.8";
const countOfSlashes = (href.match(/\//g) || []).length;
return (1 - countOfSlashes * 0.1).toFixed(1);
}
private loadLastModified(href: string): string {}
private loadFile(href: string) {}
private loadUrls(): void {
this.urls = navigation.flatMap((item) => {
return item.links
.map((link) => {
const file = this.loadFile(link.href);
if (!file) {
console.warn(`File not found for URL: ${link.href}`);
return null;
}
private loadSection(sectionLinks: (typeof navigation)[number]["links"]) {
return sectionLinks.map((link) => {
const href = link.href;
const priority = this.loadPriority(href);
const lastmod = this.loadLastModified(href);
const location = `${this.baseUrl}${href}`;
return {
location: `${this.baseUrl}${link.href}`,
lastmod: this.loadLastModified(link.href),
priority: this.loadPriority(link.href),
location,
lastmod,
priority,
};
})
.filter((url) => url !== null);
});
}
private loadUrls(): void {
this.urls = navigation.flatMap((section) => {
return Array.from(
new Set(
this.loadSection(section.links)
.filter((url) => url !== null)
.sort((a, b) => a.location.localeCompare(b.location)),
),
);
});
console.log("Loaded URLs:", this.urls);