stylist->current(); $seo = array_replace($theme->seo(), $overrides); $settings = $this->stylist->settings(); $title = (string) ($seo['title'] ?? $settings['site_title'] ?? $theme->name()); $description = (string) ($seo['description'] ?? $settings['site_description'] ?? $theme->description()); $image = $seo['image'] ?? $theme->preview(); if ($image && $theme->has($image)) { $image = $this->urls->asset($image); } $tags = [''.e($title).'']; if ($description !== '') { $tags[] = ''; } foreach (['og:title' => $title, 'og:description' => $description, 'twitter:card' => 'summary_large_image', 'twitter:title' => $title, 'twitter:description' => $description] as $property => $content) { if ($content === '') { continue; }$attribute = str_starts_with($property, 'og:') ? 'property' : 'name'; $tags[] = ''; } if ($image) { $tags[] = ''; $tags[] = ''; } if (isset($seo['json_ld']) && is_array($seo['json_ld'])) { $tags[] = ''; } return new HtmlString(implode("\n", $tags)); } }