Files
adocWP/kb-antora-importer/includes/Frontend/BreadcrumbBuilder.php
2026-05-12 14:37:09 +02:00

31 lines
931 B
PHP

<?php
declare(strict_types=1);
namespace KbAntoraImporter\Frontend;
use KbAntoraImporter\Plugin;
final class BreadcrumbBuilder
{
public function build(array $parts): string
{
$base = trim((string) Plugin::settings()['docs_base_slug'], '/');
$items = [
sprintf('<a href="%s">%s</a>', esc_url(home_url('/' . $base . '/')), esc_html__('Docs', 'kb-antora-importer')),
];
$path = $base;
foreach ($parts as $label => $slug) {
if ('' === (string) $slug) {
$items[] = esc_html((string) $label);
continue;
}
$path .= '/' . trim((string) $slug, '/');
$items[] = sprintf('<a href="%s">%s</a>', esc_url(home_url('/' . $path . '/')), esc_html((string) $label));
}
return '<nav class="kb-breadcrumbs" aria-label="Breadcrumb">' . implode('<span>/</span>', $items) . '</nav>';
}
}