UNPKG

gatsby-theme-advanced

Version:
73 lines (72 loc) 2.61 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.generateArticleMetadata = exports.generateOrganizationMetadata = exports.getAuthorMetadata = void 0; const react_1 = __importDefault(require("react")); const getAuthorMetadata = (userData) => ({ "@type": "Person", givenName: userData.firstName, familyName: userData.lastName, email: userData.email, address: userData.location, }); exports.getAuthorMetadata = getAuthorMetadata; const generateOrganizationMetadata = (orgData) => { const { url, logoUrl, description, name } = orgData; return { "@context": "https://schema.org", "@type": "Organization", url, name, description, logo: logoUrl, }; }; exports.generateOrganizationMetadata = generateOrganizationMetadata; const generateArticleMetadata = (postData, orgData, userData) => { const { title, description, coverImageUrl, datePublished, dateModified, category, tags, body, url, } = postData; const orgMetaData = orgData ? (0, exports.generateOrganizationMetadata)(orgData) : undefined; const authorData = userData ? (0, exports.getAuthorMetadata)(userData) : undefined; if (!coverImageUrl || !description) return null; return { "@context": "http://schema.org", "@type": "BlogPosting", image: coverImageUrl, url, headline: title, name: title, description, dateCreated: datePublished, datePublished, dateModified, author: authorData, creator: authorData, publisher: orgMetaData, mainEntityOfPage: "True", keywords: tags, articleSection: category, articleBody: body, }; }; exports.generateArticleMetadata = generateArticleMetadata; const RichSearchResultTags = ({ seoData, postData, userData, orgData, }) => { const { isArticle } = seoData; const articleJsonLd = isArticle && postData ? (0, exports.generateArticleMetadata)(postData, orgData, userData) : undefined; const orgJsonLd = orgData ? (0, exports.generateOrganizationMetadata)(orgData) : undefined; const jsonLdData = isArticle ? articleJsonLd : orgJsonLd; return jsonLdData ? [ <script key="rich-search" type="application/ld+json"> {JSON.stringify(jsonLdData)} </script>, ] : []; }; exports.default = RichSearchResultTags;