Chris Tate 4 miesięcy temu
rodzic
commit
0e6f2afc6c
31 zmienionych plików z 96 dodań i 29 usunięć
  1. 2 1
      apps/web/app/(main)/docs/a2ui/page.mdx
  2. 2 1
      apps/web/app/(main)/docs/adaptive-cards/page.mdx
  3. 2 1
      apps/web/app/(main)/docs/ag-ui/page.mdx
  4. 2 1
      apps/web/app/(main)/docs/ai-sdk/page.mdx
  5. 2 1
      apps/web/app/(main)/docs/api/codegen/page.mdx
  6. 2 1
      apps/web/app/(main)/docs/api/core/page.mdx
  7. 2 1
      apps/web/app/(main)/docs/api/react-native/page.mdx
  8. 2 1
      apps/web/app/(main)/docs/api/react-pdf/page.mdx
  9. 2 1
      apps/web/app/(main)/docs/api/react/page.mdx
  10. 2 1
      apps/web/app/(main)/docs/api/remotion/page.mdx
  11. 2 1
      apps/web/app/(main)/docs/api/shadcn/page.mdx
  12. 2 1
      apps/web/app/(main)/docs/catalog/page.mdx
  13. 2 1
      apps/web/app/(main)/docs/changelog/page.mdx
  14. 2 1
      apps/web/app/(main)/docs/code-export/page.mdx
  15. 2 1
      apps/web/app/(main)/docs/custom-schema/page.mdx
  16. 2 1
      apps/web/app/(main)/docs/data-binding/page.mdx
  17. 2 1
      apps/web/app/(main)/docs/generation-modes/page.mdx
  18. 2 1
      apps/web/app/(main)/docs/installation/page.mdx
  19. 2 1
      apps/web/app/(main)/docs/migration/page.mdx
  20. 2 1
      apps/web/app/(main)/docs/openapi/page.mdx
  21. 2 1
      apps/web/app/(main)/docs/page.mdx
  22. 2 1
      apps/web/app/(main)/docs/quick-start/page.mdx
  23. 2 1
      apps/web/app/(main)/docs/registry/page.mdx
  24. 2 1
      apps/web/app/(main)/docs/schemas/page.mdx
  25. 2 1
      apps/web/app/(main)/docs/specs/page.mdx
  26. 2 1
      apps/web/app/(main)/docs/streaming/page.mdx
  27. 2 1
      apps/web/app/(main)/docs/validation/page.mdx
  28. 2 1
      apps/web/app/(main)/docs/visibility/page.mdx
  29. 0 1
      apps/web/app/layout.tsx
  30. 39 0
      apps/web/lib/page-metadata.ts
  31. 1 0
      apps/web/lib/page-titles.ts

+ 2 - 1
apps/web/app/(main)/docs/a2ui/page.mdx

@@ -1,4 +1,5 @@
-export const metadata = { title: "A2UI Integration" }
+import { pageMetadata } from "@/lib/page-metadata"
+export const metadata = pageMetadata("docs/a2ui")
 
 # A2UI Integration
 

+ 2 - 1
apps/web/app/(main)/docs/adaptive-cards/page.mdx

@@ -1,4 +1,5 @@
-export const metadata = { title: "Adaptive Cards Integration" }
+import { pageMetadata } from "@/lib/page-metadata"
+export const metadata = pageMetadata("docs/adaptive-cards")
 
 # Adaptive Cards Integration
 

+ 2 - 1
apps/web/app/(main)/docs/ag-ui/page.mdx

@@ -1,4 +1,5 @@
-export const metadata = { title: "AG-UI Integration" }
+import { pageMetadata } from "@/lib/page-metadata"
+export const metadata = pageMetadata("docs/ag-ui")
 
 # AG-UI Integration
 

+ 2 - 1
apps/web/app/(main)/docs/ai-sdk/page.mdx

@@ -1,4 +1,5 @@
-export const metadata = { title: "AI SDK Integration" }
+import { pageMetadata } from "@/lib/page-metadata"
+export const metadata = pageMetadata("docs/ai-sdk")
 
 # AI SDK Integration
 

+ 2 - 1
apps/web/app/(main)/docs/api/codegen/page.mdx

@@ -1,4 +1,5 @@
-export const metadata = { title: "@json-render/codegen API" }
+import { pageMetadata } from "@/lib/page-metadata"
+export const metadata = pageMetadata("docs/api/codegen")
 
 # @json-render/codegen
 

+ 2 - 1
apps/web/app/(main)/docs/api/core/page.mdx

@@ -1,4 +1,5 @@
-export const metadata = { title: "@json-render/core API" }
+import { pageMetadata } from "@/lib/page-metadata"
+export const metadata = pageMetadata("docs/api/core")
 
 # @json-render/core
 

+ 2 - 1
apps/web/app/(main)/docs/api/react-native/page.mdx

@@ -1,4 +1,5 @@
-export const metadata = { title: "@json-render/react-native API" }
+import { pageMetadata } from "@/lib/page-metadata"
+export const metadata = pageMetadata("docs/api/react-native")
 
 # @json-render/react-native
 

+ 2 - 1
apps/web/app/(main)/docs/api/react-pdf/page.mdx

@@ -1,4 +1,5 @@
-export const metadata = { title: "@json-render/react-pdf API" }
+import { pageMetadata } from "@/lib/page-metadata"
+export const metadata = pageMetadata("docs/api/react-pdf")
 
 # @json-render/react-pdf
 

+ 2 - 1
apps/web/app/(main)/docs/api/react/page.mdx

@@ -1,4 +1,5 @@
-export const metadata = { title: "@json-render/react API" }
+import { pageMetadata } from "@/lib/page-metadata"
+export const metadata = pageMetadata("docs/api/react")
 
 # @json-render/react
 

+ 2 - 1
apps/web/app/(main)/docs/api/remotion/page.mdx

@@ -1,4 +1,5 @@
-export const metadata = { title: "@json-render/remotion API" }
+import { pageMetadata } from "@/lib/page-metadata"
+export const metadata = pageMetadata("docs/api/remotion")
 
 # @json-render/remotion
 

+ 2 - 1
apps/web/app/(main)/docs/api/shadcn/page.mdx

@@ -1,4 +1,5 @@
-export const metadata = { title: "@json-render/shadcn API" }
+import { pageMetadata } from "@/lib/page-metadata"
+export const metadata = pageMetadata("docs/api/shadcn")
 
 # @json-render/shadcn
 

+ 2 - 1
apps/web/app/(main)/docs/catalog/page.mdx

@@ -1,4 +1,5 @@
-export const metadata = { title: "Catalog" }
+import { pageMetadata } from "@/lib/page-metadata"
+export const metadata = pageMetadata("docs/catalog")
 
 # Catalog
 

+ 2 - 1
apps/web/app/(main)/docs/changelog/page.mdx

@@ -1,4 +1,5 @@
-export const metadata = { title: "Changelog" }
+import { pageMetadata } from "@/lib/page-metadata"
+export const metadata = pageMetadata("docs/changelog")
 
 # Changelog
 

+ 2 - 1
apps/web/app/(main)/docs/code-export/page.mdx

@@ -1,4 +1,5 @@
-export const metadata = { title: "Code Export" }
+import { pageMetadata } from "@/lib/page-metadata"
+export const metadata = pageMetadata("docs/code-export")
 
 # Code Export
 

+ 2 - 1
apps/web/app/(main)/docs/custom-schema/page.mdx

@@ -1,4 +1,5 @@
-export const metadata = { title: "Custom Schema & Renderer" }
+import { pageMetadata } from "@/lib/page-metadata"
+export const metadata = pageMetadata("docs/custom-schema")
 
 # Custom Schema & Renderer
 

+ 2 - 1
apps/web/app/(main)/docs/data-binding/page.mdx

@@ -1,4 +1,5 @@
-export const metadata = { title: "Data Binding" }
+import { pageMetadata } from "@/lib/page-metadata"
+export const metadata = pageMetadata("docs/data-binding")
 
 # Data Binding
 

+ 2 - 1
apps/web/app/(main)/docs/generation-modes/page.mdx

@@ -1,4 +1,5 @@
-export const metadata = { title: "Generation Modes" }
+import { pageMetadata } from "@/lib/page-metadata"
+export const metadata = pageMetadata("docs/generation-modes")
 
 # Generation Modes
 

+ 2 - 1
apps/web/app/(main)/docs/installation/page.mdx

@@ -1,4 +1,5 @@
-export const metadata = { title: "Installation" }
+import { pageMetadata } from "@/lib/page-metadata"
+export const metadata = pageMetadata("docs/installation")
 
 # Installation
 

+ 2 - 1
apps/web/app/(main)/docs/migration/page.mdx

@@ -1,4 +1,5 @@
-export const metadata = { title: "Migration Guide" }
+import { pageMetadata } from "@/lib/page-metadata"
+export const metadata = pageMetadata("docs/migration")
 
 # Migration Guide
 

+ 2 - 1
apps/web/app/(main)/docs/openapi/page.mdx

@@ -1,4 +1,5 @@
-export const metadata = { title: "OpenAPI Integration" }
+import { pageMetadata } from "@/lib/page-metadata"
+export const metadata = pageMetadata("docs/openapi")
 
 # OpenAPI Integration
 

+ 2 - 1
apps/web/app/(main)/docs/page.mdx

@@ -1,4 +1,5 @@
-export const metadata = { title: "Introduction" }
+import { pageMetadata } from "@/lib/page-metadata"
+export const metadata = pageMetadata("docs")
 
 # Introduction
 

+ 2 - 1
apps/web/app/(main)/docs/quick-start/page.mdx

@@ -1,4 +1,5 @@
-export const metadata = { title: "Quick Start" }
+import { pageMetadata } from "@/lib/page-metadata"
+export const metadata = pageMetadata("docs/quick-start")
 
 # Quick Start
 

+ 2 - 1
apps/web/app/(main)/docs/registry/page.mdx

@@ -1,4 +1,5 @@
-export const metadata = { title: "Registry" }
+import { pageMetadata } from "@/lib/page-metadata"
+export const metadata = pageMetadata("docs/registry")
 
 # Registry
 

+ 2 - 1
apps/web/app/(main)/docs/schemas/page.mdx

@@ -1,4 +1,5 @@
-export const metadata = { title: "Schemas" }
+import { pageMetadata } from "@/lib/page-metadata"
+export const metadata = pageMetadata("docs/schemas")
 
 # Schemas
 

+ 2 - 1
apps/web/app/(main)/docs/specs/page.mdx

@@ -1,4 +1,5 @@
-export const metadata = { title: "Specs" }
+import { pageMetadata } from "@/lib/page-metadata"
+export const metadata = pageMetadata("docs/specs")
 
 # Specs
 

+ 2 - 1
apps/web/app/(main)/docs/streaming/page.mdx

@@ -1,4 +1,5 @@
-export const metadata = { title: "Streaming" }
+import { pageMetadata } from "@/lib/page-metadata"
+export const metadata = pageMetadata("docs/streaming")
 
 # Streaming
 

+ 2 - 1
apps/web/app/(main)/docs/validation/page.mdx

@@ -1,4 +1,5 @@
-export const metadata = { title: "Validation" }
+import { pageMetadata } from "@/lib/page-metadata"
+export const metadata = pageMetadata("docs/validation")
 
 # Validation
 

+ 2 - 1
apps/web/app/(main)/docs/visibility/page.mdx

@@ -1,4 +1,5 @@
-export const metadata = { title: "Visibility" }
+import { pageMetadata } from "@/lib/page-metadata"
+export const metadata = pageMetadata("docs/visibility")
 
 # Visibility
 

+ 0 - 1
apps/web/app/layout.tsx

@@ -61,7 +61,6 @@ export const metadata: Metadata = {
     description:
       "The Generative UI framework. Generate dashboards, widgets, and apps from prompts — safely constrained to components you define.",
     images: ["/og"],
-    creator: "@verabornnot",
   },
   robots: {
     index: true,

+ 39 - 0
apps/web/lib/page-metadata.ts

@@ -0,0 +1,39 @@
+import type { Metadata } from "next";
+import { PAGE_TITLES } from "./page-titles";
+
+const DESCRIPTION =
+  "The Generative UI framework. Generate dashboards, widgets, and apps from prompts — safely constrained to components you define.";
+
+export function pageMetadata(slug: string): Metadata {
+  const title = PAGE_TITLES[slug];
+  if (!title) return {};
+
+  const displayTitle = title.replace(/\n/g, " ");
+  const fullTitle = `${displayTitle} | json-render`;
+  const ogImageUrl = slug ? `/og/${slug}` : "/og";
+
+  return {
+    title: displayTitle,
+    openGraph: {
+      type: "website",
+      locale: "en_US",
+      siteName: "json-render",
+      title: fullTitle,
+      description: DESCRIPTION,
+      images: [
+        {
+          url: ogImageUrl,
+          width: 1200,
+          height: 630,
+          alt: `${displayTitle} - json-render`,
+        },
+      ],
+    },
+    twitter: {
+      card: "summary_large_image",
+      title: fullTitle,
+      description: DESCRIPTION,
+      images: [ogImageUrl],
+    },
+  };
+}

+ 1 - 0
apps/web/lib/page-titles.ts

@@ -42,6 +42,7 @@ export const PAGE_TITLES: Record<string, string> = {
   "docs/api/react-native": "@json-render/react-native API",
   "docs/api/codegen": "@json-render/codegen API",
   "docs/api/remotion": "@json-render/remotion API",
+  "docs/api/shadcn": "@json-render/shadcn API",
 };
 
 /**