Rudimentary navigation generation

This commit is contained in:
Belle Aerni 2023-01-06 17:09:55 -08:00
parent 7ab664e18f
commit 622f99adff
4 changed files with 56 additions and 36 deletions

View file

@ -4,6 +4,7 @@ namespace AntCMS;
use AntCMS\AntMarkdown;
use AntCMS\AntKeywords;
use AntCMS\AntPages;
class AntCMS
{
@ -24,6 +25,7 @@ class AntCMS
$pageTemplate = str_replace('<!--AntCMS-Description-->', $content['description'], $pageTemplate);
$pageTemplate = str_replace('<!--AntCMS-Author-->', $content['author'], $pageTemplate);
$pageTemplate = str_replace('<!--AntCMS-Keywords-->', $content['keywords'], $pageTemplate);
$pageTemplate = str_replace('<!--AntCMS-Navigation-->', AntPages::generateNavigation(null), $pageTemplate);
$end_time = microtime(true);
$elapsed_time = round($end_time - $start_time, 4);
@ -51,7 +53,7 @@ class AntCMS
if (is_dir($pagePath)) {
$pagePath = $pagePath . '/index.md';
} else {
$pagePath = $pagePath . '.md';
$pagePath = (file_exists($pagePath)) ? $pagePath : $pagePath . '.md';
}
if (file_exists($pagePath)) {

View file

@ -18,6 +18,7 @@ class AntConfig
'username' => '',
),
'debug' => true,
'baseURL' => $_SERVER['HTTP_HOST'] . dirname($_SERVER['PHP_SELF']),
);
AntYaml::saveFile(antConfigFile, $defaultOptions);

View file

@ -4,6 +4,7 @@ namespace AntCMS;
use AntCMS\AntCMS;
use AntCMS\AntYaml;
use AntCMS\AntConfig;
class AntPages
{
@ -35,5 +36,24 @@ class AntPages
public static function getPages()
{
return AntYaml::parseFile(antPagesList);
}
public static function generateNavigation($navTemplate = null)
{
$currentConfig = AntConfig::currentConfig();
$baseURL = $currentConfig['baseURL'];
$navTemplate =
'<li class="nav-item active">
<a class="nav-link" href="<!--AntCMS-PageLink-->"><!--AntCMS-PageTitle--></a>
</li>';
$navHTML = '';
foreach (AntPages::getPages() as $page) {
$url = $_SERVER['REQUEST_SCHEME'] . "://" . str_replace('//', '/',$baseURL . $page['functionalPagePath']);
$navEntry = str_replace('<!--AntCMS-PageLink-->', $url, $navTemplate);
$navEntry = str_replace('<!--AntCMS-PageTitle-->', $page['pageTitle'], $navEntry);
$navHTML .= $navEntry;
}
return $navHTML;
}
}

View file

@ -1,42 +1,39 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="description" content="<!--AntCMS-Description-->">
<meta name="author" content="<!--AntCMS-Author-->">
<meta name="keywords" content="<!--AntCMS-Keywords-->">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.3.1/dist/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="description" content="<!--AntCMS-Description-->">
<meta name="author" content="<!--AntCMS-Author-->">
<meta name="keywords" content="<!--AntCMS-Keywords-->">
<title><!--AntCMS-Title--></title>
</head>
<body>
<!-- Navigation -->
<nav class="navbar navbar-expand-lg navbar-light bg-light">
<a class="navbar-brand" href="#">My Website</a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarNav">
<ul class="navbar-nav">
<li class="nav-item active">
<a class="nav-link" href="#">Home</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">About</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Contact</a>
</li>
</ul>
</div>
</nav>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.3.1/dist/css/bootstrap.min.css"
integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
<!-- Content -->
<div class="container mt-5">
<!--AntCMS-Body-->
<!--AntCMS-Debug-->
<title><!--AntCMS-Title--></title>
</head>
<body>
<!-- Navigation -->
<nav class="navbar navbar-expand-lg navbar-light bg-light">
<a class="navbar-brand" href="#">My Website</a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNav"
aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarNav">
<ul class="navbar-nav">
<!--AntCMS-Navigation-->
</ul>
</div>
</body>
</nav>
<!-- Content -->
<div class="container mt-5">
<!--AntCMS-Body-->
<!--AntCMS-Debug-->
</div>
</body>
</html>