@php $seo = \App\Support\Seo\SeoDataBuilder::fromArray([ 'title' => $article->meta_title ?: $article->title, 'description' => $article->meta_description ?: Str::limit(strip_tags((string) $article->excerpt), 160), 'keywords' => $article->meta_keywords, 'canonical' => route('news.show', $article->slug), 'robots' => 'index,follow', 'og_type' => 'article', 'og_title' => $article->effective_og_title, 'og_description' => $article->effective_og_description, 'og_image' => $article->effective_og_image, 'breadcrumbs' => collect([ (object) ['name' => 'Community', 'url' => route('community.activity')], (object) ['name' => 'Announcements', 'url' => route('news.index')], $article->category ? (object) ['name' => $article->category->name, 'url' => route('news.category', $article->category->slug)] : null, (object) ['name' => $article->title, 'url' => route('news.show', $article->slug)], ])->filter()->values(), ]) ->addJsonLd(array_filter([ '@context' => 'https://schema.org', '@type' => 'Article', 'headline' => $article->title, 'description' => $article->meta_description ?: Str::limit(strip_tags((string) $article->excerpt), 160), 'image' => $article->effective_og_image, 'datePublished' => $article->published_at?->toIso8601String(), 'dateModified' => $article->updated_at?->toIso8601String(), 'author' => array_filter([ '@type' => 'Person', 'name' => $article->author?->name, ]), 'mainEntityOfPage' => route('news.show', $article->slug), ], fn (mixed $value): bool => $value !== null && $value !== '')) ->build(); @endphp @extends('news.layout', [ 'metaTitle' => $article->meta_title ?: $article->title, 'metaDescription' => $article->meta_description ?: Str::limit(strip_tags((string)$article->excerpt), 160), 'metaCanonical' => route('news.show', $article->slug), ]) @section('news_content') @php $headerBreadcrumbs = collect([ (object) ['name' => 'Community', 'url' => route('community.activity')], (object) ['name' => 'Announcements', 'url' => route('news.index')], $article->category ? (object) ['name' => $article->category->name, 'url' => route('news.category', $article->category->slug)] : null, (object) ['name' => $article->title, 'url' => route('news.show', $article->slug)], ])->filter()->values(); @endphp
@if($article->category) {{ $article->category->name }} @endif {{ $article->reading_time }} min read
@if($article->cover_url)
{{ $article->title }}
@endif
{{ $article->author?->name ?? 'Skinbase' }} {{ $article->published_at?->format('d M Y') }} {{ number_format((int) $article->views) }} views
@if($article->excerpt)

{{ $article->excerpt }}

@endif
{!! $article->content !!}
@if($article->tags->isNotEmpty())
@foreach($article->tags as $tag) #{{ $tag->name }} @endforeach
@endif @if($article->forum_thread_id) @endif
@if($related->isNotEmpty())

Related Articles

@foreach($related as $rel) @include('news._article_card', ['article' => $rel]) @endforeach
@endif
@endsection