@dijitrak/react-nextjs-seo-plugin
Version:
A modern, user-friendly SEO plugin for React and Next.js with multilingual support and comprehensive optimization tools
65 lines (54 loc) • 1.58 kB
JavaScript
/**
* React entegrasyonu için SEO bileşenleri
*/
import { generateMetaTags, generateHreflangTags } from '../core/meta.js';
import { generateJSONLD } from '../core/jsonld.js';
/**
* SEO başlık ve meta etiketleri bileşeni
* @param {object} props Component props
* @returns {JSX.Element} React component
*/
export function SEOHead(props) {
const {
title,
description,
pageUrl,
ogImage,
meta,
schema,
languageMetadata
} = props;
// Meta verilerini hazırla
const metaData = meta || {
title: title || '',
description: description || '',
ogImage: ogImage || '',
canonicalUrl: pageUrl || ''
};
// Meta etiketlerini oluştur
const metaTags = generateMetaTags(metaData);
// Hreflang etiketlerini oluştur
const hreflangTags = languageMetadata ? generateHreflangTags(languageMetadata) : '';
// JSON-LD şemalarını oluştur
const jsonldTags = schema ? generateJSONLD(schema) : '';
// HTML'i güvenli bir şekilde render et
return (
<>
<div dangerouslySetInnerHTML={{ __html: metaTags }} />
<div dangerouslySetInnerHTML={{ __html: hreflangTags }} />
<div dangerouslySetInnerHTML={{ __html: jsonldTags }} />
</>
);
}
/**
* JSON-LD şema bileşeni
* @param {object} props Component props
* @returns {JSX.Element} React component
*/
export function JSONLDSchema({ schemas }) {
if (!schemas || schemas.length === 0) {
return null;
}
const jsonldTags = generateJSONLD(schemas);
return <div dangerouslySetInnerHTML={{ __html: jsonldTags }} />;
}