This commit is contained in:
Ty Clifford
2026-07-03 07:31:09 -04:00
commit cebb0d3af1
800 changed files with 89782 additions and 0 deletions
+18
View File
@@ -0,0 +1,18 @@
<footer class="site-footer">
<div class="container">
<div class="footer-grid">
<p><?php echo $site->footer(); ?></p>
<div class="footer-links">
<?php if (Theme::rssUrl()) : ?>
<a href="<?php echo Theme::rssUrl(); ?>"><i class="bi bi-rss" aria-hidden="true"></i>RSS</a>
<?php endif; ?>
<?php if (Theme::sitemapUrl()) : ?>
<a href="<?php echo Theme::sitemapUrl(); ?>"><i class="bi bi-diagram-3" aria-hidden="true"></i><?php echo $L->get('Sitemap'); ?></a>
<?php endif; ?>
<?php if (!defined('BLUDIT_PRO')) : ?>
<a href="https://www.bludit.com" target="_blank" rel="noopener">Bludit</a>
<?php endif; ?>
</div>
</div>
</div>
</footer>
+16
View File
@@ -0,0 +1,16 @@
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="generator" content="Bludit">
<meta name="theme-color" content="#07090f">
<?php echo Theme::metaTagTitle(); ?>
<?php echo Theme::metaTagDescription(); ?>
<?php echo Theme::favicon('img/favicon.png'); ?>
<link rel="apple-touch-icon" href="<?php echo DOMAIN_THEME_IMG . 'favicon.png'; ?>">
<?php echo Theme::cssBootstrap(); ?>
<?php echo Theme::cssBootstrapIcons(); ?>
<?php echo Theme::css('css/style.css'); ?>
<?php Theme::plugins('siteHead'); ?>
+151
View File
@@ -0,0 +1,151 @@
<?php
$searchPlugin = pluginActivated('pluginSearch') ? getPlugin('pluginSearch') : false;
$sidebarHtml = '';
ob_start();
Theme::plugins('siteSidebar');
$sidebarHtml = trim(ob_get_clean());
$socialNetworks = Theme::socialNetworks();
$socialIconMap = array(
'github' => 'github',
'gitlab' => 'gitlab',
'twitter' => 'twitter-x',
'facebook' => 'facebook',
'instagram' => 'instagram',
'codepen' => 'codepen',
'linkedin' => 'linkedin',
'telegram' => 'telegram',
'youtube' => 'youtube',
'dribbble' => 'dribbble'
);
?>
<?php if ($WHERE_AM_I !== 'search') : ?>
<section class="neon-hero">
<div class="container">
<div class="hero-panel">
<div class="accent-strip" aria-hidden="true">
<span></span><span></span><span></span><span></span><span></span>
</div>
<div class="hero-copy">
<p class="hero-kicker"><?php echo htmlspecialchars($site->title(), ENT_QUOTES, 'UTF-8'); ?></p>
<h1><?php echo htmlspecialchars($site->slogan() ? $site->slogan() : $site->title(), ENT_QUOTES, 'UTF-8'); ?></h1>
<?php if ($site->description()) : ?>
<p><?php echo htmlspecialchars($site->description(), ENT_QUOTES, 'UTF-8'); ?></p>
<?php endif; ?>
</div>
<?php if ($searchPlugin) : ?>
<form class="hero-search" role="search" onsubmit="return darkNeonSearch('dark-neon-hero-search');">
<label class="sr-only" for="dark-neon-hero-search"><?php echo $L->get('Search'); ?></label>
<i class="bi bi-search" aria-hidden="true"></i>
<input id="dark-neon-hero-search" type="search" placeholder="<?php echo htmlspecialchars($L->get('Search'), ENT_QUOTES, 'UTF-8'); ?>" autocomplete="off">
<button type="submit"><i class="bi bi-arrow-right" aria-hidden="true"></i><span><?php echo $L->get('Search'); ?></span></button>
</form>
<?php endif; ?>
</div>
</div>
</section>
<?php endif; ?>
<section class="content-band">
<div class="container">
<div class="row">
<div class="<?php echo (!empty($sidebarHtml) || !empty($socialNetworks)) ? 'col-lg-8' : 'col-lg-9 mx-auto'; ?>">
<?php if (empty($content)) : ?>
<div class="empty-state">
<i class="bi bi-stars" aria-hidden="true"></i>
<h2><?php $language->p('No pages found'); ?></h2>
</div>
<?php endif; ?>
<div class="post-list">
<?php foreach ($content as $page) : ?>
<article class="neon-post">
<?php Theme::plugins('pageBegin'); ?>
<?php if ($page->coverImage()) : ?>
<a class="post-cover" href="<?php echo $page->permalink(); ?>" aria-label="<?php echo htmlspecialchars($page->title(), ENT_QUOTES, 'UTF-8'); ?>">
<img src="<?php echo $page->coverImage(); ?>" alt="<?php echo htmlspecialchars($page->title(), ENT_QUOTES, 'UTF-8'); ?>" loading="lazy">
</a>
<?php endif; ?>
<div class="post-body">
<div class="post-meta">
<span><i class="bi bi-calendar3" aria-hidden="true"></i><?php echo $page->date(); ?></span>
<span><i class="bi bi-stopwatch" aria-hidden="true"></i><?php echo $page->readingTime(); ?></span>
<?php if ($page->categoryKey()) : ?>
<a href="<?php echo $page->categoryPermalink(); ?>"><i class="bi bi-folder2-open" aria-hidden="true"></i><?php echo htmlspecialchars($page->category(), ENT_QUOTES, 'UTF-8'); ?></a>
<?php endif; ?>
</div>
<h2 class="post-title">
<a href="<?php echo $page->permalink(); ?>"><?php echo htmlspecialchars($page->title(), ENT_QUOTES, 'UTF-8'); ?></a>
</h2>
<?php if ($page->description() && $WHERE_AM_I !== 'search') : ?>
<p class="post-description"><?php echo htmlspecialchars($page->description(), ENT_QUOTES, 'UTF-8'); ?></p>
<?php endif; ?>
<div class="post-excerpt">
<?php echo $page->contentBreak(); ?>
</div>
<?php $tagsList = $page->tags(true); ?>
<?php if (!empty($tagsList)) : ?>
<div class="taxonomy-list">
<?php foreach ($tagsList as $tagKey => $tagName) : ?>
<a href="<?php echo DOMAIN_TAGS . $tagKey; ?>"><i class="bi bi-tag" aria-hidden="true"></i><?php echo htmlspecialchars($tagName, ENT_QUOTES, 'UTF-8'); ?></a>
<?php endforeach; ?>
</div>
<?php endif; ?>
<?php if ($page->readMore() || $WHERE_AM_I === 'search') : ?>
<a class="read-link" href="<?php echo $page->permalink(); ?>">
<span><?php echo ($WHERE_AM_I === 'search') ? $L->get('Open result') : $L->get('Read more'); ?></span>
<i class="bi bi-arrow-right" aria-hidden="true"></i>
</a>
<?php endif; ?>
</div>
<?php Theme::plugins('pageEnd'); ?>
</article>
<?php endforeach; ?>
</div>
<?php if (Paginator::numberOfPages() > 1) : ?>
<nav class="neon-pagination" aria-label="<?php echo htmlspecialchars($L->get('Page navigation'), ENT_QUOTES, 'UTF-8'); ?>">
<?php if (Paginator::showPrev()) : ?>
<a href="<?php echo htmlspecialchars(Paginator::previousPageUrl(), ENT_QUOTES, 'UTF-8'); ?>"><i class="bi bi-chevron-left" aria-hidden="true"></i><?php echo $L->get('Previous'); ?></a>
<?php endif; ?>
<a href="<?php echo Theme::siteUrl(); ?>"><i class="bi bi-house" aria-hidden="true"></i><?php echo $L->get('Home'); ?></a>
<?php if (Paginator::showNext()) : ?>
<a href="<?php echo htmlspecialchars(Paginator::nextPageUrl(), ENT_QUOTES, 'UTF-8'); ?>"><?php echo $L->get('Next'); ?><i class="bi bi-chevron-right" aria-hidden="true"></i></a>
<?php endif; ?>
</nav>
<?php endif; ?>
</div>
<?php if (!empty($sidebarHtml) || !empty($socialNetworks)) : ?>
<aside class="col-lg-4">
<div class="neon-sidebar">
<?php echo $sidebarHtml; ?>
<?php if (!empty($socialNetworks)) : ?>
<div class="plugin social-panel">
<h2 class="plugin-label"><?php echo $L->get('Connect'); ?></h2>
<div class="plugin-content social-links">
<?php foreach ($socialNetworks as $key => $label) : ?>
<?php $icon = isset($socialIconMap[$key]) ? $socialIconMap[$key] : 'link-45deg'; ?>
<a href="<?php echo htmlspecialchars($site->{$key}(), ENT_QUOTES, 'UTF-8'); ?>" target="_blank" rel="noopener" aria-label="<?php echo htmlspecialchars($label, ENT_QUOTES, 'UTF-8'); ?>">
<i class="bi bi-<?php echo $icon; ?>" aria-hidden="true"></i>
</a>
<?php endforeach; ?>
</div>
</div>
<?php endif; ?>
</div>
</aside>
<?php endif; ?>
</div>
</div>
</section>
+80
View File
@@ -0,0 +1,80 @@
<?php
$searchPlugin = pluginActivated('pluginSearch') ? getPlugin('pluginSearch') : false;
$searchValue = ($searchPlugin && $WHERE_AM_I === 'search') ? $searchPlugin->getSearchTerm() : '';
$searchMinChars = $searchPlugin ? max(1, (int) $searchPlugin->getValue('minChars')) : 1;
$searchAction = json_encode(Theme::siteUrl() . 'search/');
$socialIconMap = array(
'github' => 'github',
'gitlab' => 'gitlab',
'twitter' => 'twitter-x',
'facebook' => 'facebook',
'instagram' => 'instagram',
'codepen' => 'codepen',
'linkedin' => 'linkedin',
'telegram' => 'telegram',
'youtube' => 'youtube',
'dribbble' => 'dribbble'
);
?>
<nav class="navbar navbar-expand-lg neon-navbar" aria-label="<?php echo htmlspecialchars($L->get('Main navigation'), ENT_QUOTES, 'UTF-8'); ?>">
<div class="container">
<a class="navbar-brand" href="<?php echo Theme::siteUrl(); ?>">
<span class="brand-signal" aria-hidden="true"></span>
<span><?php echo htmlspecialchars($site->title(), ENT_QUOTES, 'UTF-8'); ?></span>
</a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#darkNeonNavbar" aria-controls="darkNeonNavbar" aria-expanded="false" aria-label="<?php echo htmlspecialchars($L->get('Toggle navigation'), ENT_QUOTES, 'UTF-8'); ?>">
<i class="bi bi-list" aria-hidden="true"></i>
</button>
<div class="collapse navbar-collapse" id="darkNeonNavbar">
<ul class="navbar-nav ml-auto">
<?php if ($site->homepage()) : ?>
<li class="nav-item">
<a class="nav-link<?php echo ($WHERE_AM_I === 'blog') ? ' active' : ''; ?>" href="<?php echo DOMAIN_BASE . ltrim($url->filters('blog'), '/'); ?>"><?php echo $L->get('Blog'); ?></a>
</li>
<?php endif; ?>
<?php foreach ($staticContent as $staticPage) : ?>
<li class="nav-item">
<a class="nav-link<?php echo ($url->slug() == $staticPage->slug()) ? ' active' : ''; ?>" href="<?php echo $staticPage->permalink(); ?>"><?php echo htmlspecialchars($staticPage->title(), ENT_QUOTES, 'UTF-8'); ?></a>
</li>
<?php endforeach; ?>
<?php foreach (Theme::socialNetworks() as $key => $label) : ?>
<?php $icon = isset($socialIconMap[$key]) ? $socialIconMap[$key] : 'link-45deg'; ?>
<li class="nav-item">
<a class="nav-link nav-icon-link" href="<?php echo htmlspecialchars($site->{$key}(), ENT_QUOTES, 'UTF-8'); ?>" target="_blank" rel="noopener" aria-label="<?php echo htmlspecialchars($label, ENT_QUOTES, 'UTF-8'); ?>">
<i class="bi bi-<?php echo $icon; ?>" aria-hidden="true"></i>
<span class="d-lg-none"><?php echo htmlspecialchars($label, ENT_QUOTES, 'UTF-8'); ?></span>
</a>
</li>
<?php endforeach; ?>
</ul>
<?php if ($searchPlugin) : ?>
<form class="form-inline nav-search" role="search" onsubmit="return darkNeonSearch('dark-neon-nav-search');">
<label class="sr-only" for="dark-neon-nav-search"><?php echo $L->get('Search'); ?></label>
<div class="nav-search-field">
<i class="bi bi-search" aria-hidden="true"></i>
<input id="dark-neon-nav-search" type="search" value="<?php echo htmlspecialchars($searchValue, ENT_QUOTES, 'UTF-8'); ?>" placeholder="<?php echo htmlspecialchars($L->get('Search'), ENT_QUOTES, 'UTF-8'); ?>" autocomplete="off">
</div>
</form>
<?php endif; ?>
</div>
</div>
</nav>
<?php if ($searchPlugin) : ?>
<script>
function darkNeonSearch(inputId) {
var input = document.getElementById(inputId);
if (!input) return false;
var value = input.value.trim();
if (value.length < <?php echo $searchMinChars; ?>) return false;
window.location.href = <?php echo $searchAction; ?> + encodeURIComponent(value);
return false;
}
</script>
<?php endif; ?>
+62
View File
@@ -0,0 +1,62 @@
<section class="content-band single-band">
<div class="container">
<article class="neon-page">
<?php Theme::plugins('pageBegin'); ?>
<nav class="page-breadcrumb" aria-label="<?php echo htmlspecialchars($L->get('Breadcrumb'), ENT_QUOTES, 'UTF-8'); ?>">
<a href="<?php echo Theme::siteUrl(); ?>"><?php echo htmlspecialchars($site->title(), ENT_QUOTES, 'UTF-8'); ?></a>
<?php if (!$page->isStatic() && $page->categoryKey()) : ?>
<span>/</span>
<a href="<?php echo $page->categoryPermalink(); ?>"><?php echo htmlspecialchars($page->category(), ENT_QUOTES, 'UTF-8'); ?></a>
<?php endif; ?>
</nav>
<header class="page-header">
<div class="accent-strip" aria-hidden="true">
<span></span><span></span><span></span><span></span><span></span>
</div>
<div class="post-meta">
<?php if (!$page->isStatic() && !$url->notFound()) : ?>
<span><i class="bi bi-calendar3" aria-hidden="true"></i><?php echo $page->date(); ?></span>
<span><i class="bi bi-stopwatch" aria-hidden="true"></i><?php echo $page->readingTime(); ?></span>
<?php if ($page->user('nickname')) : ?>
<span><i class="bi bi-person" aria-hidden="true"></i><?php echo htmlspecialchars($page->user('nickname'), ENT_QUOTES, 'UTF-8'); ?></span>
<?php endif; ?>
<?php endif; ?>
</div>
<h1><?php echo htmlspecialchars($page->title(), ENT_QUOTES, 'UTF-8'); ?></h1>
<?php if ($page->description()) : ?>
<p><?php echo htmlspecialchars($page->description(), ENT_QUOTES, 'UTF-8'); ?></p>
<?php endif; ?>
</header>
<?php if ($page->coverImage()) : ?>
<figure class="page-cover">
<img src="<?php echo $page->coverImage(); ?>" alt="<?php echo htmlspecialchars($page->title(), ENT_QUOTES, 'UTF-8'); ?>" loading="lazy">
</figure>
<?php endif; ?>
<div class="page-content">
<?php echo $page->content(); ?>
</div>
<?php $tagsList = $page->tags(true); ?>
<?php if (!empty($tagsList) || $page->categoryKey()) : ?>
<footer class="page-taxonomy">
<?php if ($page->categoryKey()) : ?>
<a href="<?php echo $page->categoryPermalink(); ?>"><i class="bi bi-folder2-open" aria-hidden="true"></i><?php echo htmlspecialchars($page->category(), ENT_QUOTES, 'UTF-8'); ?></a>
<?php endif; ?>
<?php foreach ($tagsList as $tagKey => $tagName) : ?>
<a href="<?php echo DOMAIN_TAGS . $tagKey; ?>"><i class="bi bi-tag" aria-hidden="true"></i><?php echo htmlspecialchars($tagName, ENT_QUOTES, 'UTF-8'); ?></a>
<?php endforeach; ?>
</footer>
<?php endif; ?>
<?php if (!$page->isStatic()) : ?>
<a class="back-home" href="<?php echo Theme::siteUrl(); ?>"><i class="bi bi-arrow-left" aria-hidden="true"></i><?php echo $L->get('Back to home'); ?></a>
<?php endif; ?>
<?php Theme::plugins('pageEnd'); ?>
</article>
</div>
</section>