diff --git a/app/pages/+Head.tsx b/app/pages/+Head.tsx
index 0077d5b..5ceca3e 100755
--- a/app/pages/+Head.tsx
+++ b/app/pages/+Head.tsx
@@ -36,6 +36,9 @@ export default function HeadDefault() {
crossorigin="anonymous"
/>
+
+
+
{
- const canonicalTag = findOrCreateCanonicalTag();
+const updateCanonicalsTag = (pageContext: PageContext) => {
+ const canonicalNativeTag = findOrCreateTag("link", {
+ rel: "canonical",
+ });
+ const canonicalOGTag = findOrCreateTag("meta", {
+ property: "og:url",
+ });
+ const typeOGTag = findOrCreateTag("meta", {
+ property: "og:type",
+ });
+ const localOGTag = findOrCreateTag("meta", {
+ property: "og:locale",
+ });
+ const siteNameOGTag = findOrCreateTag("meta", {
+ property: "og:site_name",
+ });
+
const canonicalUrl = buildPublicUrl(
pageContext,
pageContext.urlParsed.pathname,
);
- canonicalTag.href = canonicalUrl;
+ canonicalNativeTag.setAttribute("href", canonicalUrl);
+ canonicalOGTag.setAttribute("content", canonicalUrl);
+ typeOGTag.setAttribute("content", "website");
+ localOGTag.setAttribute("content", "fr-FR");
+ siteNameOGTag.setAttribute("content", document.title);
};
-const findOrCreateCanonicalTag = () => {
+const findOrCreateTag = (
+ tagName: string,
+ attributes: Record,
+): T => {
const head = document.head;
- let canonicalTag: HTMLLinkElement | null = head.querySelector(
- "link[rel=canonical]",
- );
- if (canonicalTag) return canonicalTag;
+ let tag: HTMLElement | null = head.querySelector(tagName);
+ if (tag) return tag as T;
- canonicalTag = document.createElement("link");
- canonicalTag.rel = "canonical";
+ tag = document.createElement(tagName);
+ for (const [key, value] of Object.entries(attributes)) {
+ tag.setAttribute(key, value);
+ }
- document.head.appendChild(canonicalTag);
+ document.head.appendChild(tag);
- return canonicalTag;
+ return tag as T;
};