update
This commit is contained in:
58
kb-markdown-importer/templates/docs-app.php
Normal file
58
kb-markdown-importer/templates/docs-app.php
Normal file
@@ -0,0 +1,58 @@
|
||||
<?php
|
||||
defined('ABSPATH') || exit;
|
||||
|
||||
$active_product_slug = (string) ($active_product_slug ?? '');
|
||||
$active_version_slug = (string) ($active_version_slug ?? '');
|
||||
$active_page_slug = (string) ($active_page_slug ?? '');
|
||||
?>
|
||||
<div class="kb-docs-wrap kb-docs-app">
|
||||
<aside class="kb-app-sidebar" aria-label="<?php esc_attr_e('Documentation navigation', 'kb-markdown-importer'); ?>">
|
||||
<div class="kb-app-sidebar__brand">
|
||||
<a href="<?php echo esc_url($url_builder::docsIndex()); ?>"><?php esc_html_e('Knowledgebase', 'kb-markdown-importer'); ?></a>
|
||||
</div>
|
||||
<div class="kb-app-sidebar__search">
|
||||
<?php echo do_shortcode('[kb_search]'); ?>
|
||||
</div>
|
||||
<nav class="kb-app-nav">
|
||||
<?php foreach ((array) $products as $item) : ?>
|
||||
<?php
|
||||
$term = $item['term'];
|
||||
$versions = (array) $item['versions'];
|
||||
$latest = $versions[0] ?? null;
|
||||
$isActiveProduct = $term->slug === $active_product_slug;
|
||||
?>
|
||||
<section class="kb-app-product <?php echo $isActiveProduct ? 'is-active' : ''; ?>">
|
||||
<a class="kb-app-product__link" href="<?php echo esc_url($latest ? $url_builder::version($term->slug, $latest->slug) : $url_builder::product($term->slug)); ?>">
|
||||
<?php echo esc_html($term->name); ?>
|
||||
</a>
|
||||
<?php if ($versions) : ?>
|
||||
<ul class="kb-app-version-list">
|
||||
<?php foreach ($versions as $version) : ?>
|
||||
<?php $isActiveVersion = $isActiveProduct && $version->slug === $active_version_slug; ?>
|
||||
<li class="<?php echo $isActiveVersion ? 'is-active' : ''; ?>">
|
||||
<a href="<?php echo esc_url($url_builder::version($term->slug, $version->slug)); ?>"><?php echo esc_html($version->name); ?></a>
|
||||
<?php if ($isActiveVersion && ! empty($active_pages)) : ?>
|
||||
<ul class="kb-app-page-list">
|
||||
<?php foreach ((array) $active_pages as $page) : ?>
|
||||
<?php
|
||||
$pageSlug = (string) get_post_meta($page->ID, '_kb_page_slug', true);
|
||||
$isActivePage = $pageSlug === $active_page_slug || ('' === $active_page_slug && in_array($pageSlug, ['', 'index'], true));
|
||||
?>
|
||||
<li class="<?php echo $isActivePage ? 'is-active' : ''; ?>">
|
||||
<a href="<?php echo esc_url($url_builder::page($term->slug, $version->slug, $pageSlug)); ?>"><?php echo esc_html(get_the_title($page)); ?></a>
|
||||
</li>
|
||||
<?php endforeach; ?>
|
||||
</ul>
|
||||
<?php endif; ?>
|
||||
</li>
|
||||
<?php endforeach; ?>
|
||||
</ul>
|
||||
<?php endif; ?>
|
||||
</section>
|
||||
<?php endforeach; ?>
|
||||
</nav>
|
||||
</aside>
|
||||
<section class="kb-app-main">
|
||||
<?php echo $content; ?>
|
||||
</section>
|
||||
</div>
|
||||
@@ -1,14 +1,14 @@
|
||||
<?php
|
||||
defined('ABSPATH') || exit;
|
||||
?>
|
||||
<main class="kb-docs-wrap">
|
||||
<section class="kb-docs-home">
|
||||
<h1><?php esc_html_e('Knowledgebase', 'kb-markdown-importer'); ?></h1>
|
||||
<?php echo do_shortcode('[kb_search]'); ?>
|
||||
<div class="kb-product-list">
|
||||
<?php foreach ((array) $products as $item) : ?>
|
||||
<?php $term = $item['term']; ?>
|
||||
<?php $latest = $item['versions'][0] ?? null; ?>
|
||||
<section class="kb-product-card">
|
||||
<h2><a href="<?php echo esc_url($url_builder::product($term->slug)); ?>"><?php echo esc_html($term->name); ?></a></h2>
|
||||
<h2><a href="<?php echo esc_url($latest ? $url_builder::version($term->slug, $latest->slug) : $url_builder::product($term->slug)); ?>"><?php echo esc_html($term->name); ?></a></h2>
|
||||
<?php if (! empty($item['versions'])) : ?>
|
||||
<ul>
|
||||
<?php foreach ($item['versions'] as $version) : ?>
|
||||
@@ -19,4 +19,4 @@ defined('ABSPATH') || exit;
|
||||
</section>
|
||||
<?php endforeach; ?>
|
||||
</div>
|
||||
</main>
|
||||
</section>
|
||||
|
||||
@@ -1,59 +1,17 @@
|
||||
<?php
|
||||
defined('ABSPATH') || exit;
|
||||
|
||||
$render_nav = static function (array $nodes) use (&$render_nav, $base_slug, $product_slug, $version_slug, $url_builder): void {
|
||||
if (! $nodes) {
|
||||
return;
|
||||
}
|
||||
|
||||
echo '<ul>';
|
||||
foreach ($nodes as $node) {
|
||||
$target = (string) ($node['target'] ?? '');
|
||||
$label = (string) ($node['title'] ?? '');
|
||||
$href = '';
|
||||
|
||||
if ($target) {
|
||||
$slug = preg_replace('/\.md(#.+)?$/', '', basename($target)) ?: basename($target);
|
||||
$slug = in_array(strtolower($slug), ['doku', 'index'], true) ? '' : sanitize_title($slug);
|
||||
$href = $url_builder::page($product_slug, $version_slug, $slug);
|
||||
}
|
||||
|
||||
echo '<li>';
|
||||
if ($href) {
|
||||
printf('<a href="%s">%s</a>', esc_url($href), esc_html($label));
|
||||
} else {
|
||||
echo '<span>' . esc_html($label) . '</span>';
|
||||
}
|
||||
$render_nav((array) ($node['children'] ?? []));
|
||||
echo '</li>';
|
||||
}
|
||||
echo '</ul>';
|
||||
};
|
||||
?>
|
||||
<main class="kb-docs-wrap kb-doc-layout">
|
||||
<aside class="kb-sidebar">
|
||||
<label class="screen-reader-text" for="kb-version-switcher"><?php esc_html_e('Version', 'kb-markdown-importer'); ?></label>
|
||||
<select id="kb-version-switcher">
|
||||
<?php foreach ((array) $versions as $item) : ?>
|
||||
<option value="<?php echo esc_attr($item->slug); ?>" data-url="<?php echo esc_url($url_builder::version($product_slug, $item->slug)); ?>" <?php selected($item->slug, $version_slug); ?>><?php echo esc_html($item->name); ?></option>
|
||||
<?php endforeach; ?>
|
||||
</select>
|
||||
<nav class="kb-sidebar-nav" aria-label="<?php esc_attr_e('Documentation navigation', 'kb-markdown-importer'); ?>">
|
||||
<?php $render_nav((array) $nav_tree); ?>
|
||||
</nav>
|
||||
</aside>
|
||||
<article class="kb-doc-content">
|
||||
<nav class="kb-breadcrumbs">
|
||||
<a href="<?php echo esc_url($url_builder::docsIndex()); ?>"><?php esc_html_e('Docs', 'kb-markdown-importer'); ?></a><span>/</span>
|
||||
<a href="<?php echo esc_url($url_builder::product($product_slug)); ?>"><?php echo esc_html($product ? $product->name : $product_slug); ?></a><span>/</span>
|
||||
<a href="<?php echo esc_url($url_builder::version($product_slug, $version_slug)); ?>"><?php echo esc_html($version ? $version->name : $version_slug); ?></a>
|
||||
</nav>
|
||||
<h1><?php echo esc_html(get_the_title($post)); ?></h1>
|
||||
<div class="kb-rendered-content">
|
||||
<?php
|
||||
$rendered_content = $url_builder::rewriteHtml(apply_filters('the_content', $post->post_content));
|
||||
echo wp_kses_post($rendered_content);
|
||||
?>
|
||||
</div>
|
||||
</article>
|
||||
</main>
|
||||
<article class="kb-doc-content">
|
||||
<nav class="kb-breadcrumbs">
|
||||
<a href="<?php echo esc_url($url_builder::docsIndex()); ?>"><?php esc_html_e('Docs', 'kb-markdown-importer'); ?></a><span>/</span>
|
||||
<a href="<?php echo esc_url($url_builder::product($product_slug)); ?>"><?php echo esc_html($product ? $product->name : $product_slug); ?></a><span>/</span>
|
||||
<a href="<?php echo esc_url($url_builder::version($product_slug, $version_slug)); ?>"><?php echo esc_html($version ? $version->name : $version_slug); ?></a>
|
||||
</nav>
|
||||
<h1><?php echo esc_html(get_the_title($post)); ?></h1>
|
||||
<div class="kb-rendered-content">
|
||||
<?php
|
||||
$rendered_content = $url_builder::rewriteHtml(apply_filters('the_content', $post->post_content));
|
||||
echo wp_kses_post($rendered_content);
|
||||
?>
|
||||
</div>
|
||||
</article>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<?php
|
||||
defined('ABSPATH') || exit;
|
||||
?>
|
||||
<main class="kb-docs-wrap">
|
||||
<section class="kb-docs-product">
|
||||
<nav class="kb-breadcrumbs"><a href="<?php echo esc_url($url_builder::docsIndex()); ?>"><?php esc_html_e('Docs', 'kb-markdown-importer'); ?></a><span>/</span><?php echo esc_html($product->name); ?></nav>
|
||||
<h1><?php echo esc_html($product->name); ?></h1>
|
||||
<h2><?php esc_html_e('Available Versions', 'kb-markdown-importer'); ?></h2>
|
||||
@@ -13,4 +13,4 @@ defined('ABSPATH') || exit;
|
||||
</li>
|
||||
<?php endforeach; ?>
|
||||
</ul>
|
||||
</main>
|
||||
</section>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<?php
|
||||
defined('ABSPATH') || exit;
|
||||
?>
|
||||
<main class="kb-docs-wrap">
|
||||
<section class="kb-docs-version">
|
||||
<nav class="kb-breadcrumbs">
|
||||
<a href="<?php echo esc_url($url_builder::docsIndex()); ?>"><?php esc_html_e('Docs', 'kb-markdown-importer'); ?></a><span>/</span>
|
||||
<a href="<?php echo esc_url($url_builder::product($product->slug)); ?>"><?php echo esc_html($product->name); ?></a><span>/</span>
|
||||
@@ -14,4 +14,4 @@ defined('ABSPATH') || exit;
|
||||
<li><a href="<?php echo esc_url($url_builder::page($product->slug, $version->slug, $slug)); ?>"><?php echo esc_html(get_the_title($page)); ?></a></li>
|
||||
<?php endforeach; ?>
|
||||
</ul>
|
||||
</main>
|
||||
</section>
|
||||
|
||||
Reference in New Issue
Block a user