SEO/AEO, Farb schema, breadcrumbs
This commit is contained in:
@@ -0,0 +1,68 @@
|
||||
import { CommonModule } from '@angular/common';
|
||||
import { Component, Input } from '@angular/core';
|
||||
import { RouterModule } from '@angular/router';
|
||||
|
||||
export interface BreadcrumbItem {
|
||||
label: string;
|
||||
url?: string;
|
||||
icon?: string;
|
||||
}
|
||||
|
||||
@Component({
|
||||
selector: 'app-breadcrumbs',
|
||||
standalone: true,
|
||||
imports: [CommonModule, RouterModule],
|
||||
template: `
|
||||
<nav aria-label="Breadcrumb" class="mb-4">
|
||||
<ol
|
||||
class="flex flex-wrap items-center text-sm text-neutral-600"
|
||||
itemscope
|
||||
itemtype="https://schema.org/BreadcrumbList"
|
||||
>
|
||||
@for (item of breadcrumbs; track $index) {
|
||||
<li
|
||||
class="inline-flex items-center"
|
||||
itemprop="itemListElement"
|
||||
itemscope
|
||||
itemtype="https://schema.org/ListItem"
|
||||
>
|
||||
@if ($index > 0) {
|
||||
<span class="inline-flex items-center mx-2 text-neutral-400 select-none">
|
||||
<i class="fas fa-chevron-right text-xs"></i>
|
||||
</span>
|
||||
}
|
||||
|
||||
@if (item.url && $index < breadcrumbs.length - 1) {
|
||||
<a
|
||||
[routerLink]="item.url"
|
||||
class="inline-flex items-center hover:text-blue-600 transition-colors"
|
||||
itemprop="item"
|
||||
>
|
||||
@if (item.icon) {
|
||||
<i [class]="item.icon + ' mr-1'"></i>
|
||||
}
|
||||
<span itemprop="name">{{ item.label }}</span>
|
||||
</a>
|
||||
} @else {
|
||||
<span
|
||||
class="inline-flex items-center font-semibold text-neutral-900"
|
||||
itemprop="item"
|
||||
>
|
||||
@if (item.icon) {
|
||||
<i [class]="item.icon + ' mr-1'"></i>
|
||||
}
|
||||
<span itemprop="name">{{ item.label }}</span>
|
||||
</span>
|
||||
}
|
||||
|
||||
<meta itemprop="position" [content]="($index + 1).toString()" />
|
||||
</li>
|
||||
}
|
||||
</ol>
|
||||
</nav>
|
||||
`,
|
||||
styles: []
|
||||
})
|
||||
export class BreadcrumbsComponent {
|
||||
@Input() breadcrumbs: BreadcrumbItem[] = [];
|
||||
}
|
||||
Reference in New Issue
Block a user