/** Safe for double-quoted HTML attributes */ const escAttr = (str) => String(str ?? "") .replace(/&/g, "&") .replace(/"/g, """) .replace(/ { const root = baseUrl.endsWith("/") ? baseUrl.slice(0, -1) : baseUrl; const herstellerUrl = root + "/Hersteller"; const site = config.siteName || config.brandName; const desc = manufacturerCount + " Hersteller bei " + config.brandName + ": Top-Marken für Growshop-Produkte. Schnelle Lieferung, Laden Dresden."; const descShort = desc.length > 160 ? desc.slice(0, 157) + "..." : desc; const e = escAttr; const logoUrl = config.images && config.images.logo ? root + config.images.logo : root + "/assets/images/nopicture.jpg"; return ` `; }; const generateHerstellerJsonLd = (baseUrl, config) => { const root = baseUrl.endsWith("/") ? baseUrl.slice(0, -1) : baseUrl; const herstellerUrl = root + "/Hersteller"; const id = { business: root + "#business", website: root + "#website", breadcrumb: herstellerUrl + "#breadcrumb", }; const logoUrl = config.images && config.images.logo ? root + config.images.logo : undefined; const businessNode = { "@id": id.business, "@type": ["GardenStore", "LocalBusiness", "Organization"], name: config.brandName, url: root, }; if (logoUrl) { businessNode.logo = { "@type": "ImageObject", url: logoUrl }; businessNode.image = { "@type": "ImageObject", url: logoUrl }; } const websiteNode = { "@id": id.website, "@type": "WebSite", name: config.siteName || config.brandName, url: root, publisher: { "@id": id.business }, }; const breadcrumbNode = { "@id": id.breadcrumb, "@type": "BreadcrumbList", itemListElement: [ { "@type": "ListItem", position: 1, name: "Home", item: root, }, { "@type": "ListItem", position: 2, name: "Hersteller", item: herstellerUrl, }, ], }; const collectionPageNode = { "@id": herstellerUrl, "@type": "CollectionPage", name: "Hersteller", url: herstellerUrl, description: "Alle Hersteller und Marken für Growshop-Produkte", isPartOf: { "@id": id.website }, breadcrumb: { "@id": id.breadcrumb }, }; const graph = [businessNode, websiteNode, breadcrumbNode, collectionPageNode]; const herstellerGraph = { "@context": "https://schema.org", "@graph": graph, }; return ""; }; module.exports = { generateHerstellerMetaTags, generateHerstellerJsonLd, };