diff --git a/apps/site/next.dynamic.mjs b/apps/site/next.dynamic.mjs index a7e3467a4f123..484789acaae1f 100644 --- a/apps/site/next.dynamic.mjs +++ b/apps/site/next.dynamic.mjs @@ -230,7 +230,8 @@ const getDynamicRouter = async () => { ]; // Default canonical URL for the page - pageMetadata.alternates.canonical = getUrlForPathname(locale, path); + pageMetadata.alternates.canonical = + data.canonical ?? getUrlForPathname(locale, path); // Default alternate URL for the page in the default locale pageMetadata.alternates.languages['x-default'] = getUrlForPathname( diff --git a/apps/site/pages/en/blog/announcements/mikeal.md b/apps/site/pages/en/blog/announcements/mikeal.md index 5db87eca46b5d..14eb2de2ca94b 100644 --- a/apps/site/pages/en/blog/announcements/mikeal.md +++ b/apps/site/pages/en/blog/announcements/mikeal.md @@ -4,6 +4,7 @@ category: announcements title: 'In Memory of Mikeal Rogers: A Builder of Communities' layout: blog-post author: Robin Bender Ginn +canonical: https://openjsf.org/blog/in-memory-of-mikeal-rogers --- ![][mikeal-rogers-image] diff --git a/docs/adding-pages.md b/docs/adding-pages.md index d44fbf8e691b0..4cabf36ceaa25 100644 --- a/docs/adding-pages.md +++ b/docs/adding-pages.md @@ -63,6 +63,10 @@ The frontmatter (YAML block at the top) configures page metadata: - `description`: Optional meta description for SEO - `authors`: For learn pages, list of GitHub usernames +In cases where content has been syndicated from another source, you should also include: + +- `canonical`: The original URL of the content + ### 3. Choose the Appropriate Layout Available layouts are defined in `apps/site/layouts/`, and mapped in `components/withLayout`.