docs(misc): add canonical urls to website (#30025)

This commit is contained in:
Mike Hartington 2025-02-13 12:01:12 -05:00 committed by GitHub
parent eb0505b1ad
commit 4cdbd2cb32
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
12 changed files with 58 additions and 0 deletions

View File

@ -18,6 +18,9 @@ export async function generateMetadata(
return { return {
title: `${post.title} | Nx Blog`, title: `${post.title} | Nx Blog`,
description: post.description, description: post.description,
alternates: {
canonical: `https://nx.dev/blog/${slug}`,
},
openGraph: { openGraph: {
url: `https://nx.dev/blog/${slug}`, url: `https://nx.dev/blog/${slug}`,
title: post.title, title: post.title,

View File

@ -11,6 +11,9 @@ import {
export const metadata: Metadata = { export const metadata: Metadata = {
title: 'Nx Blog - Updates from the Nx & Nx Cloud team', title: 'Nx Blog - Updates from the Nx & Nx Cloud team',
description: 'Latest news from the Nx & Nx Cloud core team', description: 'Latest news from the Nx & Nx Cloud core team',
alternates: {
canonical: 'https://nx.dev/blog',
},
openGraph: { openGraph: {
url: 'https://nx.dev/blog', url: 'https://nx.dev/blog',
title: 'Nx Blog - Updates from the Nx & Nx Cloud team', title: 'Nx Blog - Updates from the Nx & Nx Cloud team',

View File

@ -10,6 +10,9 @@ import type { Metadata } from 'next';
export const metadata: Metadata = { export const metadata: Metadata = {
title: 'Brands & Guidelines', title: 'Brands & Guidelines',
alternates: {
canonical: 'https://nx.dev/brands',
},
description: description:
'Weve created the following guidelines for 3rd party use of our logos, content, and trademarks.', 'Weve created the following guidelines for 3rd party use of our logos, content, and trademarks.',
openGraph: { openGraph: {

View File

@ -7,11 +7,38 @@ import {
import { DefaultLayout } from '@nx/nx-dev/ui-common'; import { DefaultLayout } from '@nx/nx-dev/ui-common';
import { fetchJobsList } from '@nx/nx-dev/data-access-careers/node-only'; import { fetchJobsList } from '@nx/nx-dev/data-access-careers/node-only';
import { Metadata } from 'next';
async function getData() { async function getData() {
return await fetchJobsList(); return await fetchJobsList();
} }
export const metadata: Metadata = {
title: 'Nx: Careers',
alternates: {
canonical: 'https://nx.dev/careers',
},
description:
'Make a difference. We build tools helping companies scale and modernize their development practices.',
openGraph: {
url: 'https://nx.dev/careers',
title: 'Nx: Careers',
description:
'Make a difference. We build tools helping companies scale and modernize their development practices.',
images: [
{
url: 'https://nx.dev/socials/nx-media.png',
width: 800,
height: 421,
alt: 'Nx: Smart Monorepos · Fast CI',
type: 'image/jpeg',
},
],
siteName: 'Nx',
type: 'website',
},
};
export default async function CareersPage() { export default async function CareersPage() {
const jobs = await getData(); const jobs = await getData();
return ( return (

View File

@ -8,6 +8,9 @@ export const metadata: Metadata = {
title: 'Nx Video Courses', title: 'Nx Video Courses',
description: description:
'Master Nx with expert-led video courses from the core team. Boost your skills and productivity.', 'Master Nx with expert-led video courses from the core team. Boost your skills and productivity.',
alternates: {
canonical: 'https://nx.dev/courses',
},
openGraph: { openGraph: {
url: 'https://nx.dev/courses', url: 'https://nx.dev/courses',
title: 'Nx Video Courses', title: 'Nx Video Courses',

View File

@ -20,6 +20,9 @@ export const metadata: Metadata = {
title: 'Nx Cloud', title: 'Nx Cloud',
description: description:
'Nx Cloud is the end-to-end solution for smart, efficient and maintainable CI.', 'Nx Cloud is the end-to-end solution for smart, efficient and maintainable CI.',
alternates: {
canonical: 'https://nx.dev/nx-cloud',
},
openGraph: { openGraph: {
url: 'https://nx.dev/nx-cloud', url: 'https://nx.dev/nx-cloud',
title: 'Nx Cloud', title: 'Nx Cloud',

View File

@ -6,6 +6,9 @@ import { Hero, PodcastList } from '@nx/nx-dev/ui-podcast';
export const metadata: Metadata = { export const metadata: Metadata = {
title: 'Nx Podcast - Updates from the Nx & Nx Cloud team', title: 'Nx Podcast - Updates from the Nx & Nx Cloud team',
description: 'Latest podcasts from the Nx & Nx Cloud core team', description: 'Latest podcasts from the Nx & Nx Cloud core team',
alternates: {
canonical: 'https://nx.dev/podcast',
},
openGraph: { openGraph: {
url: 'https://nx.dev/podcast', url: 'https://nx.dev/podcast',
title: 'Nx Podcast - Updates from the Nx & Nx Cloud team', title: 'Nx Podcast - Updates from the Nx & Nx Cloud team',

View File

@ -14,6 +14,9 @@ export const metadata: Metadata = {
title: 'Nx Powerpack', title: 'Nx Powerpack',
description: description:
'Nx Powerpack is a suite of paid extensions for the Nx CLI specifically designed for enterprises.', 'Nx Powerpack is a suite of paid extensions for the Nx CLI specifically designed for enterprises.',
alternates: {
canonical: 'https://nx.dev/powerpack',
},
openGraph: { openGraph: {
url: 'https://nx.dev/powerpack', url: 'https://nx.dev/powerpack',
title: 'Nx Powerpack', title: 'Nx Powerpack',

View File

@ -18,6 +18,9 @@ export const metadata: Metadata = {
title: 'Nx Cloud - Available Plans', title: 'Nx Cloud - Available Plans',
description: description:
"Distribute everything, don't waste time waiting on CI. Use Nx Cloud's distributed task execution and caching features to release faster. Save time and money.", "Distribute everything, don't waste time waiting on CI. Use Nx Cloud's distributed task execution and caching features to release faster. Save time and money.",
alternates: {
canonical: 'https://nx.dev/pricing',
},
openGraph: { openGraph: {
url: 'https://nx.dev/pricing', url: 'https://nx.dev/pricing',
title: 'Nx Cloud - Available Plans', title: 'Nx Cloud - Available Plans',

View File

@ -98,6 +98,9 @@ export const metadata: Metadata = {
title: 'Resources', title: 'Resources',
description: description:
'Explore Nx resources including tutorials, code examples, podcasts, and more.', 'Explore Nx resources including tutorials, code examples, podcasts, and more.',
alternates: {
canonical: 'https://nx.dev/resources',
},
openGraph: { openGraph: {
url: 'https://nx.dev/resources', url: 'https://nx.dev/resources',
title: 'Nx Resources', title: 'Nx Resources',

View File

@ -6,6 +6,9 @@ import { Hero, WebinarList } from '@nx/nx-dev/ui-webinar';
export const metadata: Metadata = { export const metadata: Metadata = {
title: 'Nx Webinar - Updates from the Nx & Nx Cloud team', title: 'Nx Webinar - Updates from the Nx & Nx Cloud team',
description: 'Latest webinars from the Nx & Nx Cloud core team', description: 'Latest webinars from the Nx & Nx Cloud core team',
alternates: {
canonical: 'https://nx.dev/webinar',
},
openGraph: { openGraph: {
url: 'https://nx.dev/webinar', url: 'https://nx.dev/webinar',
title: 'Nx Webinar - Updates from the Nx & Nx Cloud team', title: 'Nx Webinar - Updates from the Nx & Nx Cloud team',

View File

@ -75,6 +75,7 @@ export default function CustomApp({
dangerouslySetAllPagesToNoIndex={ dangerouslySetAllPagesToNoIndex={
process.env.NEXT_PUBLIC_NO_INDEX === 'true' process.env.NEXT_PUBLIC_NO_INDEX === 'true'
} }
canonical={'https://nx.dev' + router.asPath.split('?')[0]}
/> />
<Head> <Head>
<meta name="apple-mobile-web-app-title" content="Nx" /> <meta name="apple-mobile-web-app-title" content="Nx" />