page-metadata.ts 1019 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. import type { Metadata } from "next";
  2. import { PAGE_TITLES } from "./page-titles";
  3. const DESCRIPTION =
  4. "The Generative UI framework. Generate dashboards, widgets, and apps from prompts — safely constrained to components you define.";
  5. export function pageMetadata(slug: string): Metadata {
  6. const title = PAGE_TITLES[slug];
  7. if (!title) return {};
  8. const displayTitle = title.replace(/\n/g, " ");
  9. const fullTitle = `${displayTitle} | json-render`;
  10. const ogImageUrl = slug ? `/og/${slug}` : "/og";
  11. return {
  12. title: displayTitle,
  13. openGraph: {
  14. type: "website",
  15. locale: "en_US",
  16. siteName: "json-render",
  17. title: fullTitle,
  18. description: DESCRIPTION,
  19. images: [
  20. {
  21. url: ogImageUrl,
  22. width: 1200,
  23. height: 630,
  24. alt: `${displayTitle} - json-render`,
  25. },
  26. ],
  27. },
  28. twitter: {
  29. card: "summary_large_image",
  30. title: fullTitle,
  31. description: DESCRIPTION,
  32. images: [ogImageUrl],
  33. },
  34. };
  35. }