UNPKG

@ai-growth/nextjs

Version:

Seamlessly integrate Sanity CMS with Next.js applications for automated blog routing and rendering

98 lines 3.39 kB
/** * @fileoverview Structured Data Generation Utilities * * This module provides functions for generating JSON-LD structured data * for different content types according to Schema.org standards. */ import { StructuredData, ArticleStructuredData, PersonStructuredData, OrganizationStructuredData, WebsiteStructuredData, BreadcrumbStructuredData, ExtendedSEO, SEOConfig, ContentTypeResult } from '../../types/seo'; import { SanityPost, SanityPage } from '../../types/sanity'; /** * Options for generating structured data */ export interface StructuredDataGenerationOptions { seo: ExtendedSEO; content?: SanityPost | SanityPage | any; config: SEOConfig; url: string; contentAnalysis: ContentTypeResult; customStructuredData: StructuredData[]; organization: OrganizationStructuredData; } /** * Generate all structured data for a page * * @param options - Structured data generation options * @returns Array of structured data objects */ export declare function generateStructuredData(options: StructuredDataGenerationOptions): StructuredData[]; /** * Generate website structured data * * @param config - SEO configuration * @param organization - Organization data * @returns Website structured data */ export declare function generateWebsiteData(config: SEOConfig, organization: OrganizationStructuredData): WebsiteStructuredData; /** * Generate web page structured data * * @param seo - SEO data * @param config - SEO configuration * @param url - Page URL * @returns WebPage structured data */ export declare function generateWebPageData(seo: ExtendedSEO, config: SEOConfig, url: string): StructuredData; /** * Generate article structured data * * @param content - Content data * @param seo - SEO data * @param config - SEO configuration * @param url - Article URL * @param organization - Organization data * @returns Article structured data */ export declare function generateArticleData(content: SanityPost | any, seo: ExtendedSEO, config: SEOConfig, url: string, organization: OrganizationStructuredData): ArticleStructuredData; /** * Generate person structured data * * @param person - Person data * @param config - SEO configuration * @param url - Person page URL * @returns Person structured data */ export declare function generatePersonData(person: any, config: SEOConfig, url: string): PersonStructuredData; /** * Generate breadcrumb structured data * * @param currentUrl - Current page URL * @param baseUrl - Base site URL * @returns Breadcrumb structured data */ export declare function generateBreadcrumbData(currentUrl: string, baseUrl: string): BreadcrumbStructuredData; /** * Generate organization structured data * * @param config - SEO configuration * @returns Organization structured data */ export declare function generateOrganizationData(config: SEOConfig): OrganizationStructuredData; /** * Validate structured data object * * @param data - Structured data to validate * @returns Validation result */ export declare function validateStructuredData(data: StructuredData): { isValid: boolean; errors: string[]; warnings: string[]; }; /** * Escape JSON-LD for safe HTML embedding * * @param data - Structured data object * @returns Escaped JSON string */ export declare function escapeJsonLD(data: StructuredData): string; //# sourceMappingURL=structured-data.d.ts.map