feat/seo #10

Merged
GauthierWebDev merged 10 commits from feat/seo into main 2025-04-18 16:44:38 +00:00
3 changed files with 43 additions and 15 deletions
Showing only changes of commit 9aeaec0821 - Show all commits

1
.gitignore vendored
View File

@ -2,4 +2,5 @@
app/.pnpm-store
app/node_modules
app/dist
app/public/sitemap.xml
**/*~lock*

View File

@ -1 +0,0 @@
<?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:51:43.576Z</lastmod><priority>1.0</priority></url><url><loc>http://localhost:5500/certifications</loc><lastmod>2025-04-18T15:51:43.576Z</lastmod><priority>0.9</priority></url><url><loc>http://localhost:5500/docs</loc><lastmod>2025-04-18T15:51:43.576Z</lastmod><priority>0.9</priority></url><url><loc>http://localhost:5500/docs/communaute/influenceurs</loc><lastmod>2025-04-18T15:51:43.576Z</lastmod><priority>0.7</priority></url><url><loc>http://localhost:5500/docs/communaute/partages</loc><lastmod>2025-04-18T15:51:43.576Z</lastmod><priority>0.7</priority></url><url><loc>http://localhost:5500/mentions-legales</loc><lastmod>2025-04-18T15:51:43.576Z</lastmod><priority>0.9</priority></url><url><loc>http://localhost:5500/politique-de-confidentialite</loc><lastmod>2025-04-18T15:51:43.576Z</lastmod><priority>0.9</priority></url><url><loc>http://localhost:5500/certifications/dwwm</loc><lastmod>2025-04-18T15:51:43.576Z</lastmod><priority>0.8</priority></url><url><loc>http://localhost:5500/certifications/dwwm/at1</loc><lastmod>2025-04-18T15:51:43.576Z</lastmod><priority>0.7</priority></url><url><loc>http://localhost:5500/certifications/dwwm/at2</loc><lastmod>2025-04-18T15:51:43.576Z</lastmod><priority>0.7</priority></url><url><loc>http://localhost:5500/docs/react</loc><lastmod>2025-04-18T15:51:43.576Z</lastmod><priority>0.8</priority></url><url><loc>http://localhost:5500/docs/merise</loc><lastmod>2025-04-18T15:51:43.576Z</lastmod><priority>0.8</priority></url></urlset>

View File

@ -79,33 +79,61 @@ class Sitemap {
return (1 - countOfSlashes * 0.1).toFixed(1);
}
private loadLastModified(href: string): string {}
private loadLastModified(href: string): string {
return this.lastModified;
}
private loadFile(href: string) {}
private getFileServerLocation(href: string) {
const jsxHref = ["/politique-de-confidentialite", "/mentions-legales"];
const isJsxFile = jsxHref.includes(href);
if (isJsxFile) {
return path.join(this.pagesPath, href.replace("/", ""), "+Page.tsx");
}
return path.join(this.pagesPath, href.replace("/", ""), "page.md");
}
private loadSubitems(subitems: (typeof navigation)[number]["links"][number]["subitems"]): void {
subitems.forEach((subitem) => {
const fileLocation = this.getFileServerLocation(subitem.href);
console.log("File location:", fileLocation);
const priority = this.loadPriority(subitem.href);
const lastmod = this.loadLastModified(subitem.href);
const location = `${this.baseUrl}${subitem.href}`;
this.urls.push({
location,
lastmod,
priority,
});
});
}
private loadSection(section: (typeof navigation)[number]): void {
section.links.forEach((link) => {
if (link.subitems.length > 0) {
return this.loadSubitems(link.subitems);
}
private loadSection(sectionLinks: (typeof navigation)[number]["links"]) {
return sectionLinks.map((link) => {
const priority = this.loadPriority(link.href);
const lastmod = this.loadLastModified(link.href);
const location = `${this.baseUrl}${link.href}`;
return {
this.urls.push({
location,
lastmod,
priority,
};
});
});
}
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)),
),
);
navigation.forEach(this.loadSection.bind(this));
this.urls = Array.from(new Set(this.urls)).sort((a, b) => {
return a.location.localeCompare(b.location);
});
console.log("Loaded URLs:", this.urls);