From 4bd2aa1dfd1112e633d272bbe79b3a355716234f Mon Sep 17 00:00:00 2001
From: Steven Hall <steven@gitbook.io>
Date: Tue, 21 Jan 2025 13:56:45 +0000
Subject: [PATCH] Remove some places where the GitBook space wasn't required,
 reducing some async deps.

---
 .../middleware/(site)/(content)/[[...pathname]]/page.tsx   | 3 +--
 .../gitbook/src/app/middleware/(site)/(content)/layout.tsx | 2 +-
 .../src/app/middleware/(site)/(core)/robots.txt/route.ts   | 7 ++-----
 .../src/app/middleware/(space)/~gitbook/pdf/page.tsx       | 3 ++-
 packages/gitbook/src/lib/seo.ts                            | 2 +-
 5 files changed, 7 insertions(+), 10 deletions(-)

diff --git a/packages/gitbook/src/app/middleware/(site)/(content)/[[...pathname]]/page.tsx b/packages/gitbook/src/app/middleware/(site)/(content)/[[...pathname]]/page.tsx
index 786d5d6eb8..58dc681b50 100644
--- a/packages/gitbook/src/app/middleware/(site)/(content)/[[...pathname]]/page.tsx
+++ b/packages/gitbook/src/app/middleware/(site)/(content)/[[...pathname]]/page.tsx
@@ -169,8 +169,7 @@ export async function generateMetadata({
             ],
         },
         robots:
-            (await isSpaceIndexable({ space, site: site ?? null })) &&
-            isPageIndexable(ancestors, page)
+            (await isSpaceIndexable(site ?? null)) && isPageIndexable(ancestors, page)
                 ? 'index, follow'
                 : 'noindex, nofollow',
     };
diff --git a/packages/gitbook/src/app/middleware/(site)/(content)/layout.tsx b/packages/gitbook/src/app/middleware/(site)/(content)/layout.tsx
index 9c0d17476a..bc2ee62e6d 100644
--- a/packages/gitbook/src/app/middleware/(site)/(content)/layout.tsx
+++ b/packages/gitbook/src/app/middleware/(site)/(content)/layout.tsx
@@ -142,7 +142,7 @@ export async function generateMetadata(): Promise<Metadata> {
                 },
             ],
         },
-        robots: (await isSpaceIndexable({ space, site })) ? 'index, follow' : 'noindex, nofollow',
+        robots: (await isSpaceIndexable(site)) ? 'index, follow' : 'noindex, nofollow',
     };
 }
 
diff --git a/packages/gitbook/src/app/middleware/(site)/(core)/robots.txt/route.ts b/packages/gitbook/src/app/middleware/(site)/(core)/robots.txt/route.ts
index 8035d6fcb0..8ff1b20020 100644
--- a/packages/gitbook/src/app/middleware/(site)/(core)/robots.txt/route.ts
+++ b/packages/gitbook/src/app/middleware/(site)/(core)/robots.txt/route.ts
@@ -12,15 +12,12 @@ export const runtime = 'edge';
  */
 export async function GET(req: NextRequest) {
     const pointer = await getSiteContentPointer();
-    const [site, space] = await Promise.all([
-        getSite(pointer.organizationId, pointer.siteId),
-        getSpace(pointer.spaceId, pointer.siteShareKey),
-    ]);
+    const site = await getSite(pointer.organizationId, pointer.siteId);
 
     const lines = [
         `User-agent: *`,
         'Disallow: /~gitbook/',
-        ...((await isSpaceIndexable({ space, site }))
+        ...((await isSpaceIndexable(site))
             ? [`Allow: /`, `Sitemap: ${await getAbsoluteHref(`/sitemap.xml`, true)}`]
             : [`Disallow: /`]),
     ];
diff --git a/packages/gitbook/src/app/middleware/(space)/~gitbook/pdf/page.tsx b/packages/gitbook/src/app/middleware/(space)/~gitbook/pdf/page.tsx
index d13201d535..3f2acb2574 100644
--- a/packages/gitbook/src/app/middleware/(space)/~gitbook/pdf/page.tsx
+++ b/packages/gitbook/src/app/middleware/(space)/~gitbook/pdf/page.tsx
@@ -28,6 +28,7 @@ import { resolvePageId } from '@/lib/pages';
 import { ContentRefContext, resolveContentRef } from '@/lib/references';
 import { tcls } from '@/lib/tailwind';
 import { PDFSearchParams, getPDFSearchParams } from '@/lib/urls';
+import { getContentTitle } from '@/lib/utils';
 
 import './pdf.css';
 import { PageControlButtons } from './PageControlButtons';
@@ -47,7 +48,7 @@ export async function generateMetadata(): Promise<Metadata> {
     ]);
 
     return {
-        title: customization.title ?? space.title,
+        title: getContentTitle(space, customization, null),
         robots: 'noindex, nofollow',
     };
 }
diff --git a/packages/gitbook/src/lib/seo.ts b/packages/gitbook/src/lib/seo.ts
index a7db11b8f7..94aa4dd454 100644
--- a/packages/gitbook/src/lib/seo.ts
+++ b/packages/gitbook/src/lib/seo.ts
@@ -31,7 +31,7 @@ export function isPageIndexable(
 /**
  * Return true if a space should be indexed by search engines.
  */
-export async function isSpaceIndexable({ space, site }: { space: Space; site: Site | null }) {
+export async function isSpaceIndexable(site: Site | null) {
     const headersList = await headers();
 
     if (