initial COmmit: Add KB Antora Importer plugin files
This commit is contained in:
30
kb-antora-importer/includes/Frontend/BreadcrumbBuilder.php
Normal file
30
kb-antora-importer/includes/Frontend/BreadcrumbBuilder.php
Normal file
@@ -0,0 +1,30 @@
|
||||
<?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>';
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user