From dd013090f27365e66ed541792617ecdc247e31d8 Mon Sep 17 00:00:00 2001 From: Rohin Bhargava Date: Wed, 2 Oct 2024 16:12:47 -0400 Subject: [PATCH] feat: added ability to add canonical url to frontmatter (#1588) --- fern/apis/fdr/definition/docs/latest/frontmatter.yml | 3 +++ .../latest/resources/frontmatter/types/Frontmatter.ts | 2 ++ packages/ui/app/src/seo/getSeoProp.ts | 5 +++++ .../latest/resources/frontmatter/types/Frontmatter.d.ts | 2 ++ 4 files changed, 12 insertions(+) diff --git a/fern/apis/fdr/definition/docs/latest/frontmatter.yml b/fern/apis/fdr/definition/docs/latest/frontmatter.yml index 0f48b6816d..c218ab5bcc 100644 --- a/fern/apis/fdr/definition/docs/latest/frontmatter.yml +++ b/fern/apis/fdr/definition/docs/latest/frontmatter.yml @@ -63,6 +63,9 @@ types: availability: deprecated type: optional docs: Use subtitle instead. + canonical-url: + type: optional + docs: The canonical URL of the page. This is used for the tag in the HTML. Layout: enum: diff --git a/packages/fdr-sdk/src/client/generated/api/resources/docs/resources/latest/resources/frontmatter/types/Frontmatter.ts b/packages/fdr-sdk/src/client/generated/api/resources/docs/resources/latest/resources/frontmatter/types/Frontmatter.ts index 7ff76970e1..0d0e6886c6 100644 --- a/packages/fdr-sdk/src/client/generated/api/resources/docs/resources/latest/resources/frontmatter/types/Frontmatter.ts +++ b/packages/fdr-sdk/src/client/generated/api/resources/docs/resources/latest/resources/frontmatter/types/Frontmatter.ts @@ -43,4 +43,6 @@ export interface Frontmatter breadcrumb: FernRegistry.navigation.latest.BreadcrumbItem[] | undefined; /** Use subtitle instead. */ excerpt: string | undefined; + /** The canonical URL of the page. This is used for the tag in the HTML. */ + "canonical-url": string | undefined; } diff --git a/packages/ui/app/src/seo/getSeoProp.ts b/packages/ui/app/src/seo/getSeoProp.ts index 332e4c224a..5834dd2816 100644 --- a/packages/ui/app/src/seo/getSeoProp.ts +++ b/packages/ui/app/src/seo/getSeoProp.ts @@ -84,6 +84,11 @@ export function getSeoProps( const page = pages[pageId]; if (page != null) { const { data: frontmatter, content } = getFrontmatter(page.markdown); + + if (frontmatter["canonical-url"] != null) { + seo.canonical = frontmatter["canonical-url"]; + } + ogMetadata = { ...ogMetadata, ...frontmatter }; // retrofit og:image, preferring og:image diff --git a/servers/fdr/src/api/generated/api/resources/docs/resources/latest/resources/frontmatter/types/Frontmatter.d.ts b/servers/fdr/src/api/generated/api/resources/docs/resources/latest/resources/frontmatter/types/Frontmatter.d.ts index 222ad8f606..c78075ee2b 100644 --- a/servers/fdr/src/api/generated/api/resources/docs/resources/latest/resources/frontmatter/types/Frontmatter.d.ts +++ b/servers/fdr/src/api/generated/api/resources/docs/resources/latest/resources/frontmatter/types/Frontmatter.d.ts @@ -39,4 +39,6 @@ export interface Frontmatter extends FernRegistry.docs.latest.WithMetadataConfig breadcrumb: FernRegistry.navigation.latest.BreadcrumbItem[] | undefined; /** Use subtitle instead. */ excerpt: string | undefined; + /** The canonical URL of the page. This is used for the tag in the HTML. */ + "canonical-url": string | undefined; }