theme dependences
This commit is contained in:
parent
3120795eab
commit
f421e0c649
18
app/themes/custom/assets/CustomThemesAssets.php
Normal file
18
app/themes/custom/assets/CustomThemesAssets.php
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace app\themes\custom\assets;
|
||||||
|
|
||||||
|
use kernel\Assets;
|
||||||
|
|
||||||
|
class CustomThemesAssets extends Assets
|
||||||
|
{
|
||||||
|
protected function createCSS(): void
|
||||||
|
{
|
||||||
|
$this->registerCSS(slug: "main", resource: "/css/styles.css");
|
||||||
|
}
|
||||||
|
|
||||||
|
protected function createJS(): void
|
||||||
|
{
|
||||||
|
$this->registerJS(slug: "webpack", resource: "/js/scripts.js");
|
||||||
|
}
|
||||||
|
}
|
28
app/themes/custom/controllers/MainController.php
Normal file
28
app/themes/custom/controllers/MainController.php
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace app\themes\custom\controllers;
|
||||||
|
|
||||||
|
use kernel\Controller;
|
||||||
|
|
||||||
|
class MainController extends Controller
|
||||||
|
{
|
||||||
|
|
||||||
|
protected function init(): void
|
||||||
|
{
|
||||||
|
parent::init();
|
||||||
|
$this->cgView->viewPath = APP_DIR . "/themes/custom/views/main/";
|
||||||
|
$this->cgView->layout = "main.php";
|
||||||
|
$this->cgView->layoutPath = APP_DIR . "/themes/custom/views/layout/";
|
||||||
|
$this->cgView->addVarToLayout("resources", "/resources/themes/custom");
|
||||||
|
}
|
||||||
|
|
||||||
|
public function actionIndex(): void
|
||||||
|
{
|
||||||
|
$this->cgView->render("index.php");
|
||||||
|
}
|
||||||
|
|
||||||
|
public function actionAbout(): void
|
||||||
|
{
|
||||||
|
$this->cgView->render("about.php");
|
||||||
|
}
|
||||||
|
}
|
12
app/themes/custom/manifest.json
Normal file
12
app/themes/custom/manifest.json
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
{
|
||||||
|
"name": "Custom",
|
||||||
|
"version": "0.1",
|
||||||
|
"author": "ItGuild",
|
||||||
|
"slug": "custom",
|
||||||
|
"type": "theme",
|
||||||
|
"description": "Custom theme",
|
||||||
|
"preview": "preview.png",
|
||||||
|
"resource": "/resources/themes/custom",
|
||||||
|
"resource_path": "{RESOURCES}/themes/custom",
|
||||||
|
"routs": "routs/custom.php"
|
||||||
|
}
|
12
app/themes/custom/routs/custom.php
Normal file
12
app/themes/custom/routs/custom.php
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use kernel\App;
|
||||||
|
|
||||||
|
|
||||||
|
App::$collector->get('/', [\app\themes\custom\controllers\MainController::class, 'actionIndex']);
|
||||||
|
App::$collector->get('/about', [\app\themes\custom\controllers\MainController::class, 'actionAbout']);
|
||||||
|
//App::$collector->get('/page/{page_number}', [\app\modules\tag\controllers\TagController::class, 'actionIndex']);
|
||||||
|
//App::$collector->get('/create', [\app\modules\tag\controllers\TagController::class, 'actionCreate']);
|
||||||
|
|
||||||
|
|
||||||
|
|
92
app/themes/custom/views/layout/main.php
Normal file
92
app/themes/custom/views/layout/main.php
Normal file
@ -0,0 +1,92 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* @var string $content
|
||||||
|
* @var string $resources
|
||||||
|
* @var string $title
|
||||||
|
* @var \kernel\CgView $view
|
||||||
|
*/
|
||||||
|
$assets = new \app\themes\custom\assets\CustomThemesAssets($resources);
|
||||||
|
?>
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8"/>
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"/>
|
||||||
|
<?php $assets->getCSSAsSTR(); ?>
|
||||||
|
<meta name="description" content=""/>
|
||||||
|
<meta name="author" content=""/>
|
||||||
|
<title><?= $title ?></title>
|
||||||
|
<?= $view->getMeta() ?>
|
||||||
|
<link rel="icon" type="image/x-icon" href="<?= $resources ?>/assets/favicon.ico"/>
|
||||||
|
<!-- Font Awesome icons (free version)-->
|
||||||
|
<script src="https://use.fontawesome.com/releases/v6.3.0/js/all.js" crossorigin="anonymous"></script>
|
||||||
|
<!-- Google fonts-->
|
||||||
|
<link href="https://fonts.googleapis.com/css?family=Lora:400,700,400italic,700italic" rel="stylesheet"
|
||||||
|
type="text/css"/>
|
||||||
|
<link href="https://fonts.googleapis.com/css?family=Open+Sans:300italic,400italic,600italic,700italic,800italic,400,300,600,700,800"
|
||||||
|
rel="stylesheet" type="text/css"/>
|
||||||
|
<!-- Core theme CSS (includes Bootstrap)-->
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<!-- Navigation-->
|
||||||
|
<nav class="navbar navbar-expand-lg navbar-light" id="mainNav">
|
||||||
|
<div class="container px-4 px-lg-5">
|
||||||
|
<a class="navbar-brand" href="/">Custom theme</a>
|
||||||
|
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarResponsive"
|
||||||
|
aria-controls="navbarResponsive" aria-expanded="false" aria-label="Toggle navigation">
|
||||||
|
Menu
|
||||||
|
<i class="fas fa-bars"></i>
|
||||||
|
</button>
|
||||||
|
<div class="collapse navbar-collapse" id="navbarResponsive">
|
||||||
|
<ul class="navbar-nav ms-auto py-4 py-lg-0">
|
||||||
|
<li class="nav-item"><a class="nav-link px-lg-3 py-3 py-lg-4" href="/">На главную</a></li>
|
||||||
|
<li class="nav-item"><a class="nav-link px-lg-3 py-3 py-lg-4" href="/about">О нас</a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</nav>
|
||||||
|
|
||||||
|
<?= $content ?>
|
||||||
|
|
||||||
|
<!-- Footer-->
|
||||||
|
<footer class="border-top">
|
||||||
|
<div class="container px-4 px-lg-5">
|
||||||
|
<div class="row gx-4 gx-lg-5 justify-content-center">
|
||||||
|
<div class="col-md-10 col-lg-8 col-xl-7">
|
||||||
|
<ul class="list-inline text-center">
|
||||||
|
<li class="list-inline-item">
|
||||||
|
<a href="#!">
|
||||||
|
<span class="fa-stack fa-lg">
|
||||||
|
<i class="fas fa-circle fa-stack-2x"></i>
|
||||||
|
<i class="fab fa-twitter fa-stack-1x fa-inverse"></i>
|
||||||
|
</span>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li class="list-inline-item">
|
||||||
|
<a href="#!">
|
||||||
|
<span class="fa-stack fa-lg">
|
||||||
|
<i class="fas fa-circle fa-stack-2x"></i>
|
||||||
|
<i class="fab fa-facebook-f fa-stack-1x fa-inverse"></i>
|
||||||
|
</span>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li class="list-inline-item">
|
||||||
|
<a href="#!">
|
||||||
|
<span class="fa-stack fa-lg">
|
||||||
|
<i class="fas fa-circle fa-stack-2x"></i>
|
||||||
|
<i class="fab fa-github fa-stack-1x fa-inverse"></i>
|
||||||
|
</span>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<div class="small text-center text-muted fst-italic">Copyright © IT Guild Micro Framework</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</footer>
|
||||||
|
<!-- Bootstrap core JS-->
|
||||||
|
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/js/bootstrap.bundle.min.js"></script>
|
||||||
|
<!-- Core theme JS-->
|
||||||
|
<?php $assets->getJSAsStr(); ?>
|
||||||
|
</body>
|
||||||
|
</html>
|
36
app/themes/custom/views/main/about.php
Normal file
36
app/themes/custom/views/main/about.php
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* @var string $resources;
|
||||||
|
* @var \kernel\CgView $view
|
||||||
|
*/
|
||||||
|
|
||||||
|
$view->setTitle("Старт Bootstrap");
|
||||||
|
$view->setMeta([
|
||||||
|
'description' => 'Дефолтная bootstrap тема'
|
||||||
|
]);
|
||||||
|
?>
|
||||||
|
<!-- Page Header-->
|
||||||
|
<header class="masthead" style="background-image: url('<?= $resources ?>/assets/img/about-bg.jpeg')">
|
||||||
|
<div class="container position-relative px-4 px-lg-5">
|
||||||
|
<div class="row gx-4 gx-lg-5 justify-content-center">
|
||||||
|
<div class="col-md-10 col-lg-8 col-xl-7">
|
||||||
|
<div class="page-heading">
|
||||||
|
<h1>About Me</h1>
|
||||||
|
<span class="subheading">This is what I do.</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
<!-- Main Content-->
|
||||||
|
<main class="mb-4">
|
||||||
|
<div class="container px-4 px-lg-5">
|
||||||
|
<div class="row gx-4 gx-lg-5 justify-content-center">
|
||||||
|
<div class="col-md-10 col-lg-8 col-xl-7">
|
||||||
|
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Saepe nostrum ullam eveniet pariatur voluptates odit, fuga atque ea nobis sit soluta odio, adipisci quas excepturi maxime quae totam ducimus consectetur?</p>
|
||||||
|
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Eius praesentium recusandae illo eaque architecto error, repellendus iusto reprehenderit, doloribus, minus sunt. Numquam at quae voluptatum in officia voluptas voluptatibus, minus!</p>
|
||||||
|
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Aut consequuntur magnam, excepturi aliquid ex itaque esse est vero natus quae optio aperiam soluta voluptatibus corporis atque iste neque sit tempora!</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</main>
|
86
app/themes/custom/views/main/index.php
Normal file
86
app/themes/custom/views/main/index.php
Normal file
@ -0,0 +1,86 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* @var string $resources;
|
||||||
|
* @var \kernel\CgView $view
|
||||||
|
*/
|
||||||
|
|
||||||
|
$view->setTitle("IT Guild Micro Framework");
|
||||||
|
$view->setMeta([
|
||||||
|
'description' => 'Default IT Guild Micro Framework theme'
|
||||||
|
]);
|
||||||
|
?>
|
||||||
|
<!-- Page Header-->
|
||||||
|
<header class="masthead" style="background-image: url('<?= $resources ?>/assets/img/home-bg.jpeg')">
|
||||||
|
<div class="container position-relative px-4 px-lg-5">
|
||||||
|
<div class="row gx-4 gx-lg-5 justify-content-center">
|
||||||
|
<div class="col-md-10 col-lg-8 col-xl-7">
|
||||||
|
<div class="site-heading">
|
||||||
|
<h1>Clean Blog</h1>
|
||||||
|
<span class="subheading">A Blog Theme by IT Guild Micro Framework</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
<!-- Main Content-->
|
||||||
|
<div class="container px-4 px-lg-5">
|
||||||
|
<div class="row gx-4 gx-lg-5 justify-content-center">
|
||||||
|
<div class="col-md-10 col-lg-8 col-xl-7">
|
||||||
|
<!-- Post preview-->
|
||||||
|
<div class="post-preview">
|
||||||
|
<a href="#!">
|
||||||
|
<h2 class="post-title">Man must explore, and this is exploration at its greatest</h2>
|
||||||
|
<h3 class="post-subtitle">Problems look mighty small from 150 miles up</h3>
|
||||||
|
</a>
|
||||||
|
<p class="post-meta">
|
||||||
|
Posted by
|
||||||
|
<a href="#!">Start Bootstrap</a>
|
||||||
|
on September 24, 2023
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<!-- Divider-->
|
||||||
|
<hr class="my-4" />
|
||||||
|
<!-- Post preview-->
|
||||||
|
<div class="post-preview">
|
||||||
|
<a href="#!"><h2 class="post-title">I believe every human has a finite number of heartbeats. I don't intend to waste any of mine.</h2></a>
|
||||||
|
<p class="post-meta">
|
||||||
|
Posted by
|
||||||
|
<a href="#!">Start Bootstrap</a>
|
||||||
|
on September 18, 2023
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<!-- Divider-->
|
||||||
|
<hr class="my-4" />
|
||||||
|
<!-- Post preview-->
|
||||||
|
<div class="post-preview">
|
||||||
|
<a href="#!">
|
||||||
|
<h2 class="post-title">Science has not yet mastered prophecy</h2>
|
||||||
|
<h3 class="post-subtitle">We predict too much for the next year and yet far too little for the next ten.</h3>
|
||||||
|
</a>
|
||||||
|
<p class="post-meta">
|
||||||
|
Posted by
|
||||||
|
<a href="#!">Start Bootstrap</a>
|
||||||
|
on August 24, 2023
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<!-- Divider-->
|
||||||
|
<hr class="my-4" />
|
||||||
|
<!-- Post preview-->
|
||||||
|
<div class="post-preview">
|
||||||
|
<a href="#!">
|
||||||
|
<h2 class="post-title">Failure is not an option</h2>
|
||||||
|
<h3 class="post-subtitle">Many say exploration is part of our destiny, but it’s actually our duty to future generations.</h3>
|
||||||
|
</a>
|
||||||
|
<p class="post-meta">
|
||||||
|
Posted by
|
||||||
|
<a href="#!">Start Bootstrap</a>
|
||||||
|
on July 8, 2023
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<!-- Divider-->
|
||||||
|
<hr class="my-4" />
|
||||||
|
<!-- Pager-->
|
||||||
|
<div class="d-flex justify-content-end mb-4"><a class="btn btn-primary text-uppercase" href="#!">Older Posts →</a></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
@ -3,10 +3,12 @@
|
|||||||
namespace kernel\services;
|
namespace kernel\services;
|
||||||
|
|
||||||
use DirectoryIterator;
|
use DirectoryIterator;
|
||||||
|
use kernel\helpers\Debug;
|
||||||
use kernel\helpers\Files;
|
use kernel\helpers\Files;
|
||||||
use kernel\helpers\Manifest;
|
use kernel\helpers\Manifest;
|
||||||
use kernel\helpers\RESTClient;
|
use kernel\helpers\RESTClient;
|
||||||
use kernel\models\Option;
|
use kernel\models\Option;
|
||||||
|
use ZipArchive;
|
||||||
|
|
||||||
class ThemeService
|
class ThemeService
|
||||||
{
|
{
|
||||||
@ -55,7 +57,25 @@ class ThemeService
|
|||||||
|
|
||||||
public function setActiveTheme(string $theme): void
|
public function setActiveTheme(string $theme): void
|
||||||
{
|
{
|
||||||
$activeTheme = Option::where("key", "active_theme")->first();
|
$activeTheme = $this->option::where("key", "active_theme")->first();
|
||||||
|
|
||||||
|
$themeInfo = $this->getThemeInfo(getConst($theme));
|
||||||
|
if (isset($themeInfo['dependence'])) {
|
||||||
|
$dependence_array = explode(',', $themeInfo['dependence']);
|
||||||
|
foreach ($dependence_array as $depend) {
|
||||||
|
$this->moduleService->runInitScript($depend);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$currentThemeInfo = $this->getActiveThemeInfo();
|
||||||
|
|
||||||
|
if (isset($currentThemeInfo['dependence'])) {
|
||||||
|
$dependence_array = explode(',', $currentThemeInfo['dependence']);
|
||||||
|
foreach ($dependence_array as $depend) {
|
||||||
|
$this->moduleService->runDeactivateScript($depend);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
$activeTheme->value = getConst($theme);
|
$activeTheme->value = getConst($theme);
|
||||||
$activeTheme->save();
|
$activeTheme->save();
|
||||||
}
|
}
|
||||||
|
@ -8,5 +8,6 @@
|
|||||||
"preview": "preview.png",
|
"preview": "preview.png",
|
||||||
"resource": "/resources/themes/default",
|
"resource": "/resources/themes/default",
|
||||||
"resource_path": "{RESOURCES}/themes/default",
|
"resource_path": "{RESOURCES}/themes/default",
|
||||||
"routs": "routs/default.php"
|
"routs": "routs/default.php",
|
||||||
|
"dependence": ""
|
||||||
}
|
}
|
103
resources/themes/custom/about.html
Normal file
103
resources/themes/custom/about.html
Normal file
@ -0,0 +1,103 @@
|
|||||||
|
<!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="" />
|
||||||
|
<meta name="author" content="" />
|
||||||
|
<title>Clean Blog - Start Bootstrap Theme</title>
|
||||||
|
<link rel="icon" type="image/x-icon" href="assets/favicon.ico" />
|
||||||
|
<!-- Font Awesome icons (free version)-->
|
||||||
|
<script src="https://use.fontawesome.com/releases/v6.3.0/js/all.js" crossorigin="anonymous"></script>
|
||||||
|
<!-- Google fonts-->
|
||||||
|
<link href="https://fonts.googleapis.com/css?family=Lora:400,700,400italic,700italic" rel="stylesheet" type="text/css" />
|
||||||
|
<link href="https://fonts.googleapis.com/css?family=Open+Sans:300italic,400italic,600italic,700italic,800italic,400,300,600,700,800" rel="stylesheet" type="text/css" />
|
||||||
|
<!-- Core theme CSS (includes Bootstrap)-->
|
||||||
|
<link href="css/styles.css" rel="stylesheet" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<!-- Navigation-->
|
||||||
|
<nav class="navbar navbar-expand-lg navbar-light" id="mainNav">
|
||||||
|
<div class="container px-4 px-lg-5">
|
||||||
|
<a class="navbar-brand" href="index.html">Start Bootstrap</a>
|
||||||
|
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarResponsive" aria-controls="navbarResponsive" aria-expanded="false" aria-label="Toggle navigation">
|
||||||
|
Menu
|
||||||
|
<i class="fas fa-bars"></i>
|
||||||
|
</button>
|
||||||
|
<div class="collapse navbar-collapse" id="navbarResponsive">
|
||||||
|
<ul class="navbar-nav ms-auto py-4 py-lg-0">
|
||||||
|
<li class="nav-item"><a class="nav-link px-lg-3 py-3 py-lg-4" href="index.html">Home</a></li>
|
||||||
|
<li class="nav-item"><a class="nav-link px-lg-3 py-3 py-lg-4" href="about.html">About</a></li>
|
||||||
|
<li class="nav-item"><a class="nav-link px-lg-3 py-3 py-lg-4" href="post.html">Sample Post</a></li>
|
||||||
|
<li class="nav-item"><a class="nav-link px-lg-3 py-3 py-lg-4" href="contact.html">Contact</a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</nav>
|
||||||
|
<!-- Page Header-->
|
||||||
|
<header class="masthead" style="background-image: url('assets/img/about-bg.jpg')">
|
||||||
|
<div class="container position-relative px-4 px-lg-5">
|
||||||
|
<div class="row gx-4 gx-lg-5 justify-content-center">
|
||||||
|
<div class="col-md-10 col-lg-8 col-xl-7">
|
||||||
|
<div class="page-heading">
|
||||||
|
<h1>About Me</h1>
|
||||||
|
<span class="subheading">This is what I do.</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
<!-- Main Content-->
|
||||||
|
<main class="mb-4">
|
||||||
|
<div class="container px-4 px-lg-5">
|
||||||
|
<div class="row gx-4 gx-lg-5 justify-content-center">
|
||||||
|
<div class="col-md-10 col-lg-8 col-xl-7">
|
||||||
|
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Saepe nostrum ullam eveniet pariatur voluptates odit, fuga atque ea nobis sit soluta odio, adipisci quas excepturi maxime quae totam ducimus consectetur?</p>
|
||||||
|
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Eius praesentium recusandae illo eaque architecto error, repellendus iusto reprehenderit, doloribus, minus sunt. Numquam at quae voluptatum in officia voluptas voluptatibus, minus!</p>
|
||||||
|
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Aut consequuntur magnam, excepturi aliquid ex itaque esse est vero natus quae optio aperiam soluta voluptatibus corporis atque iste neque sit tempora!</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</main>
|
||||||
|
<!-- Footer-->
|
||||||
|
<footer class="border-top">
|
||||||
|
<div class="container px-4 px-lg-5">
|
||||||
|
<div class="row gx-4 gx-lg-5 justify-content-center">
|
||||||
|
<div class="col-md-10 col-lg-8 col-xl-7">
|
||||||
|
<ul class="list-inline text-center">
|
||||||
|
<li class="list-inline-item">
|
||||||
|
<a href="#!">
|
||||||
|
<span class="fa-stack fa-lg">
|
||||||
|
<i class="fas fa-circle fa-stack-2x"></i>
|
||||||
|
<i class="fab fa-twitter fa-stack-1x fa-inverse"></i>
|
||||||
|
</span>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li class="list-inline-item">
|
||||||
|
<a href="#!">
|
||||||
|
<span class="fa-stack fa-lg">
|
||||||
|
<i class="fas fa-circle fa-stack-2x"></i>
|
||||||
|
<i class="fab fa-facebook-f fa-stack-1x fa-inverse"></i>
|
||||||
|
</span>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li class="list-inline-item">
|
||||||
|
<a href="#!">
|
||||||
|
<span class="fa-stack fa-lg">
|
||||||
|
<i class="fas fa-circle fa-stack-2x"></i>
|
||||||
|
<i class="fab fa-github fa-stack-1x fa-inverse"></i>
|
||||||
|
</span>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<div class="small text-center text-muted fst-italic">Copyright © Your Website 2023</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</footer>
|
||||||
|
<!-- Bootstrap core JS-->
|
||||||
|
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/js/bootstrap.bundle.min.js"></script>
|
||||||
|
<!-- Core theme JS-->
|
||||||
|
<script src="js/scripts.js"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
BIN
resources/themes/custom/assets/favicon.ico
Normal file
BIN
resources/themes/custom/assets/favicon.ico
Normal file
Binary file not shown.
After Width: | Height: | Size: 23 KiB |
BIN
resources/themes/custom/assets/img/about-bg.jpeg
Normal file
BIN
resources/themes/custom/assets/img/about-bg.jpeg
Normal file
Binary file not shown.
After Width: | Height: | Size: 356 KiB |
BIN
resources/themes/custom/assets/img/home-bg.jpeg
Normal file
BIN
resources/themes/custom/assets/img/home-bg.jpeg
Normal file
Binary file not shown.
After Width: | Height: | Size: 74 KiB |
158
resources/themes/custom/contact.html
Normal file
158
resources/themes/custom/contact.html
Normal file
@ -0,0 +1,158 @@
|
|||||||
|
<!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="" />
|
||||||
|
<meta name="author" content="" />
|
||||||
|
<title>Clean Blog - Start Bootstrap Theme</title>
|
||||||
|
<link rel="icon" type="image/x-icon" href="assets/favicon.ico" />
|
||||||
|
<!-- Font Awesome icons (free version)-->
|
||||||
|
<script src="https://use.fontawesome.com/releases/v6.3.0/js/all.js" crossorigin="anonymous"></script>
|
||||||
|
<!-- Google fonts-->
|
||||||
|
<link href="https://fonts.googleapis.com/css?family=Lora:400,700,400italic,700italic" rel="stylesheet" type="text/css" />
|
||||||
|
<link href="https://fonts.googleapis.com/css?family=Open+Sans:300italic,400italic,600italic,700italic,800italic,400,300,600,700,800" rel="stylesheet" type="text/css" />
|
||||||
|
<!-- Core theme CSS (includes Bootstrap)-->
|
||||||
|
<link href="css/styles.css" rel="stylesheet" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<!-- Navigation-->
|
||||||
|
<nav class="navbar navbar-expand-lg navbar-light" id="mainNav">
|
||||||
|
<div class="container px-4 px-lg-5">
|
||||||
|
<a class="navbar-brand" href="index.html">Start Bootstrap</a>
|
||||||
|
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarResponsive" aria-controls="navbarResponsive" aria-expanded="false" aria-label="Toggle navigation">
|
||||||
|
Menu
|
||||||
|
<i class="fas fa-bars"></i>
|
||||||
|
</button>
|
||||||
|
<div class="collapse navbar-collapse" id="navbarResponsive">
|
||||||
|
<ul class="navbar-nav ms-auto py-4 py-lg-0">
|
||||||
|
<li class="nav-item"><a class="nav-link px-lg-3 py-3 py-lg-4" href="index.html">Home</a></li>
|
||||||
|
<li class="nav-item"><a class="nav-link px-lg-3 py-3 py-lg-4" href="about.html">About</a></li>
|
||||||
|
<li class="nav-item"><a class="nav-link px-lg-3 py-3 py-lg-4" href="post.html">Sample Post</a></li>
|
||||||
|
<li class="nav-item"><a class="nav-link px-lg-3 py-3 py-lg-4" href="contact.html">Contact</a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</nav>
|
||||||
|
<!-- Page Header-->
|
||||||
|
<header class="masthead" style="background-image: url('assets/img/contact-bg.jpg')">
|
||||||
|
<div class="container position-relative px-4 px-lg-5">
|
||||||
|
<div class="row gx-4 gx-lg-5 justify-content-center">
|
||||||
|
<div class="col-md-10 col-lg-8 col-xl-7">
|
||||||
|
<div class="page-heading">
|
||||||
|
<h1>Contact Me</h1>
|
||||||
|
<span class="subheading">Have questions? I have answers.</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
<!-- Main Content-->
|
||||||
|
<main class="mb-4">
|
||||||
|
<div class="container px-4 px-lg-5">
|
||||||
|
<div class="row gx-4 gx-lg-5 justify-content-center">
|
||||||
|
<div class="col-md-10 col-lg-8 col-xl-7">
|
||||||
|
<p>Want to get in touch? Fill out the form below to send me a message and I will get back to you as soon as possible!</p>
|
||||||
|
<div class="my-5">
|
||||||
|
<!-- * * * * * * * * * * * * * * *-->
|
||||||
|
<!-- * * SB Forms Contact Form * *-->
|
||||||
|
<!-- * * * * * * * * * * * * * * *-->
|
||||||
|
<!-- This form is pre-integrated with SB Forms.-->
|
||||||
|
<!-- To make this form functional, sign up at-->
|
||||||
|
<!-- https://startbootstrap.com/solution/contact-forms-->
|
||||||
|
<!-- to get an API token!-->
|
||||||
|
<form id="contactForm" data-sb-form-api-token="API_TOKEN">
|
||||||
|
<div class="form-floating">
|
||||||
|
<input class="form-control" id="name" type="text" placeholder="Enter your name..." data-sb-validations="required" />
|
||||||
|
<label for="name">Name</label>
|
||||||
|
<div class="invalid-feedback" data-sb-feedback="name:required">A name is required.</div>
|
||||||
|
</div>
|
||||||
|
<div class="form-floating">
|
||||||
|
<input class="form-control" id="email" type="email" placeholder="Enter your email..." data-sb-validations="required,email" />
|
||||||
|
<label for="email">Email address</label>
|
||||||
|
<div class="invalid-feedback" data-sb-feedback="email:required">An email is required.</div>
|
||||||
|
<div class="invalid-feedback" data-sb-feedback="email:email">Email is not valid.</div>
|
||||||
|
</div>
|
||||||
|
<div class="form-floating">
|
||||||
|
<input class="form-control" id="phone" type="tel" placeholder="Enter your phone number..." data-sb-validations="required" />
|
||||||
|
<label for="phone">Phone Number</label>
|
||||||
|
<div class="invalid-feedback" data-sb-feedback="phone:required">A phone number is required.</div>
|
||||||
|
</div>
|
||||||
|
<div class="form-floating">
|
||||||
|
<textarea class="form-control" id="message" placeholder="Enter your message here..." style="height: 12rem" data-sb-validations="required"></textarea>
|
||||||
|
<label for="message">Message</label>
|
||||||
|
<div class="invalid-feedback" data-sb-feedback="message:required">A message is required.</div>
|
||||||
|
</div>
|
||||||
|
<br />
|
||||||
|
<!-- Submit success message-->
|
||||||
|
<!---->
|
||||||
|
<!-- This is what your users will see when the form-->
|
||||||
|
<!-- has successfully submitted-->
|
||||||
|
<div class="d-none" id="submitSuccessMessage">
|
||||||
|
<div class="text-center mb-3">
|
||||||
|
<div class="fw-bolder">Form submission successful!</div>
|
||||||
|
To activate this form, sign up at
|
||||||
|
<br />
|
||||||
|
<a href="https://startbootstrap.com/solution/contact-forms">https://startbootstrap.com/solution/contact-forms</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- Submit error message-->
|
||||||
|
<!---->
|
||||||
|
<!-- This is what your users will see when there is-->
|
||||||
|
<!-- an error submitting the form-->
|
||||||
|
<div class="d-none" id="submitErrorMessage"><div class="text-center text-danger mb-3">Error sending message!</div></div>
|
||||||
|
<!-- Submit Button-->
|
||||||
|
<button class="btn btn-primary text-uppercase disabled" id="submitButton" type="submit">Send</button>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</main>
|
||||||
|
<!-- Footer-->
|
||||||
|
<footer class="border-top">
|
||||||
|
<div class="container px-4 px-lg-5">
|
||||||
|
<div class="row gx-4 gx-lg-5 justify-content-center">
|
||||||
|
<div class="col-md-10 col-lg-8 col-xl-7">
|
||||||
|
<ul class="list-inline text-center">
|
||||||
|
<li class="list-inline-item">
|
||||||
|
<a href="#!">
|
||||||
|
<span class="fa-stack fa-lg">
|
||||||
|
<i class="fas fa-circle fa-stack-2x"></i>
|
||||||
|
<i class="fab fa-twitter fa-stack-1x fa-inverse"></i>
|
||||||
|
</span>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li class="list-inline-item">
|
||||||
|
<a href="#!">
|
||||||
|
<span class="fa-stack fa-lg">
|
||||||
|
<i class="fas fa-circle fa-stack-2x"></i>
|
||||||
|
<i class="fab fa-facebook-f fa-stack-1x fa-inverse"></i>
|
||||||
|
</span>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li class="list-inline-item">
|
||||||
|
<a href="#!">
|
||||||
|
<span class="fa-stack fa-lg">
|
||||||
|
<i class="fas fa-circle fa-stack-2x"></i>
|
||||||
|
<i class="fab fa-github fa-stack-1x fa-inverse"></i>
|
||||||
|
</span>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<div class="small text-center text-muted fst-italic">Copyright © Your Website 2023</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</footer>
|
||||||
|
<!-- Bootstrap core JS-->
|
||||||
|
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/js/bootstrap.bundle.min.js"></script>
|
||||||
|
<!-- Core theme JS-->
|
||||||
|
<script src="js/scripts.js"></script>
|
||||||
|
<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *-->
|
||||||
|
<!-- * * SB Forms JS * *-->
|
||||||
|
<!-- * * Activate your form at https://startbootstrap.com/solution/contact-forms * *-->
|
||||||
|
<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *-->
|
||||||
|
<script src="https://cdn.startbootstrap.com/sb-forms-latest.js"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
0
resources/themes/custom/css/bootstrap.min.css
vendored
Normal file
0
resources/themes/custom/css/bootstrap.min.css
vendored
Normal file
0
resources/themes/custom/css/bootstrap/_media.css
Normal file
0
resources/themes/custom/css/bootstrap/_media.css
Normal file
0
resources/themes/custom/css/style.css
Normal file
0
resources/themes/custom/css/style.css
Normal file
10798
resources/themes/custom/css/styles.css
Normal file
10798
resources/themes/custom/css/styles.css
Normal file
File diff suppressed because it is too large
Load Diff
0
resources/themes/custom/images/bg_1.jpg
Normal file
0
resources/themes/custom/images/bg_1.jpg
Normal file
0
resources/themes/custom/images/logo.jpg
Normal file
0
resources/themes/custom/images/logo.jpg
Normal file
153
resources/themes/custom/index.html
Normal file
153
resources/themes/custom/index.html
Normal file
@ -0,0 +1,153 @@
|
|||||||
|
<!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="" />
|
||||||
|
<meta name="author" content="" />
|
||||||
|
<title>Clean Blog - Start Bootstrap Theme</title>
|
||||||
|
<link rel="icon" type="image/x-icon" href="assets/favicon.ico" />
|
||||||
|
<!-- Font Awesome icons (free version)-->
|
||||||
|
<script src="https://use.fontawesome.com/releases/v6.3.0/js/all.js" crossorigin="anonymous"></script>
|
||||||
|
<!-- Google fonts-->
|
||||||
|
<link href="https://fonts.googleapis.com/css?family=Lora:400,700,400italic,700italic" rel="stylesheet" type="text/css" />
|
||||||
|
<link href="https://fonts.googleapis.com/css?family=Open+Sans:300italic,400italic,600italic,700italic,800italic,400,300,600,700,800" rel="stylesheet" type="text/css" />
|
||||||
|
<!-- Core theme CSS (includes Bootstrap)-->
|
||||||
|
<link href="css/styles.css" rel="stylesheet" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<!-- Navigation-->
|
||||||
|
<nav class="navbar navbar-expand-lg navbar-light" id="mainNav">
|
||||||
|
<div class="container px-4 px-lg-5">
|
||||||
|
<a class="navbar-brand" href="index.html">Start Bootstrap</a>
|
||||||
|
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarResponsive" aria-controls="navbarResponsive" aria-expanded="false" aria-label="Toggle navigation">
|
||||||
|
Menu
|
||||||
|
<i class="fas fa-bars"></i>
|
||||||
|
</button>
|
||||||
|
<div class="collapse navbar-collapse" id="navbarResponsive">
|
||||||
|
<ul class="navbar-nav ms-auto py-4 py-lg-0">
|
||||||
|
<li class="nav-item"><a class="nav-link px-lg-3 py-3 py-lg-4" href="index.html">Home</a></li>
|
||||||
|
<li class="nav-item"><a class="nav-link px-lg-3 py-3 py-lg-4" href="about.html">About</a></li>
|
||||||
|
<li class="nav-item"><a class="nav-link px-lg-3 py-3 py-lg-4" href="post.html">Sample Post</a></li>
|
||||||
|
<li class="nav-item"><a class="nav-link px-lg-3 py-3 py-lg-4" href="contact.html">Contact</a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</nav>
|
||||||
|
<!-- Page Header-->
|
||||||
|
<header class="masthead" style="background-image: url('assets/img/home-bg.jpg')">
|
||||||
|
<div class="container position-relative px-4 px-lg-5">
|
||||||
|
<div class="row gx-4 gx-lg-5 justify-content-center">
|
||||||
|
<div class="col-md-10 col-lg-8 col-xl-7">
|
||||||
|
<div class="site-heading">
|
||||||
|
<h1>Clean Blog</h1>
|
||||||
|
<span class="subheading">A Blog Theme by Start Bootstrap</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
<!-- Main Content-->
|
||||||
|
<div class="container px-4 px-lg-5">
|
||||||
|
<div class="row gx-4 gx-lg-5 justify-content-center">
|
||||||
|
<div class="col-md-10 col-lg-8 col-xl-7">
|
||||||
|
<!-- Post preview-->
|
||||||
|
<div class="post-preview">
|
||||||
|
<a href="post.html">
|
||||||
|
<h2 class="post-title">Man must explore, and this is exploration at its greatest</h2>
|
||||||
|
<h3 class="post-subtitle">Problems look mighty small from 150 miles up</h3>
|
||||||
|
</a>
|
||||||
|
<p class="post-meta">
|
||||||
|
Posted by
|
||||||
|
<a href="#!">Start Bootstrap</a>
|
||||||
|
on September 24, 2023
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<!-- Divider-->
|
||||||
|
<hr class="my-4" />
|
||||||
|
<!-- Post preview-->
|
||||||
|
<div class="post-preview">
|
||||||
|
<a href="post.html"><h2 class="post-title">I believe every human has a finite number of heartbeats. I don't intend to waste any of mine.</h2></a>
|
||||||
|
<p class="post-meta">
|
||||||
|
Posted by
|
||||||
|
<a href="#!">Start Bootstrap</a>
|
||||||
|
on September 18, 2023
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<!-- Divider-->
|
||||||
|
<hr class="my-4" />
|
||||||
|
<!-- Post preview-->
|
||||||
|
<div class="post-preview">
|
||||||
|
<a href="post.html">
|
||||||
|
<h2 class="post-title">Science has not yet mastered prophecy</h2>
|
||||||
|
<h3 class="post-subtitle">We predict too much for the next year and yet far too little for the next ten.</h3>
|
||||||
|
</a>
|
||||||
|
<p class="post-meta">
|
||||||
|
Posted by
|
||||||
|
<a href="#!">Start Bootstrap</a>
|
||||||
|
on August 24, 2023
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<!-- Divider-->
|
||||||
|
<hr class="my-4" />
|
||||||
|
<!-- Post preview-->
|
||||||
|
<div class="post-preview">
|
||||||
|
<a href="post.html">
|
||||||
|
<h2 class="post-title">Failure is not an option</h2>
|
||||||
|
<h3 class="post-subtitle">Many say exploration is part of our destiny, but it’s actually our duty to future generations.</h3>
|
||||||
|
</a>
|
||||||
|
<p class="post-meta">
|
||||||
|
Posted by
|
||||||
|
<a href="#!">Start Bootstrap</a>
|
||||||
|
on July 8, 2023
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<!-- Divider-->
|
||||||
|
<hr class="my-4" />
|
||||||
|
<!-- Pager-->
|
||||||
|
<div class="d-flex justify-content-end mb-4"><a class="btn btn-primary text-uppercase" href="#!">Older Posts →</a></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- Footer-->
|
||||||
|
<footer class="border-top">
|
||||||
|
<div class="container px-4 px-lg-5">
|
||||||
|
<div class="row gx-4 gx-lg-5 justify-content-center">
|
||||||
|
<div class="col-md-10 col-lg-8 col-xl-7">
|
||||||
|
<ul class="list-inline text-center">
|
||||||
|
<li class="list-inline-item">
|
||||||
|
<a href="#!">
|
||||||
|
<span class="fa-stack fa-lg">
|
||||||
|
<i class="fas fa-circle fa-stack-2x"></i>
|
||||||
|
<i class="fab fa-twitter fa-stack-1x fa-inverse"></i>
|
||||||
|
</span>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li class="list-inline-item">
|
||||||
|
<a href="#!">
|
||||||
|
<span class="fa-stack fa-lg">
|
||||||
|
<i class="fas fa-circle fa-stack-2x"></i>
|
||||||
|
<i class="fab fa-facebook-f fa-stack-1x fa-inverse"></i>
|
||||||
|
</span>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li class="list-inline-item">
|
||||||
|
<a href="#!">
|
||||||
|
<span class="fa-stack fa-lg">
|
||||||
|
<i class="fas fa-circle fa-stack-2x"></i>
|
||||||
|
<i class="fab fa-github fa-stack-1x fa-inverse"></i>
|
||||||
|
</span>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<div class="small text-center text-muted fst-italic">Copyright © Your Website 2023</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</footer>
|
||||||
|
<!-- Bootstrap core JS-->
|
||||||
|
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/js/bootstrap.bundle.min.js"></script>
|
||||||
|
<!-- Core theme JS-->
|
||||||
|
<script src="js/scripts.js"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
0
resources/themes/custom/js/bootstrap.min.js
vendored
Normal file
0
resources/themes/custom/js/bootstrap.min.js
vendored
Normal file
0
resources/themes/custom/js/jquery.min.js
vendored
Normal file
0
resources/themes/custom/js/jquery.min.js
vendored
Normal file
30
resources/themes/custom/js/main.js
Normal file
30
resources/themes/custom/js/main.js
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
(function ($) {
|
||||||
|
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
var fullHeight = function () {
|
||||||
|
|
||||||
|
$('.js-fullheight').css('height', $(window).height());
|
||||||
|
$(window).resize(function () {
|
||||||
|
$('.js-fullheight').css('height', $(window).height());
|
||||||
|
});
|
||||||
|
|
||||||
|
};
|
||||||
|
fullHeight();
|
||||||
|
|
||||||
|
$('#sidebarCollapse').on('click', function () {
|
||||||
|
$('#sidebar').toggleClass('active');
|
||||||
|
});
|
||||||
|
|
||||||
|
})(jQuery);
|
||||||
|
|
||||||
|
window.addEventListener("load", function () {
|
||||||
|
let closeBtn = document.querySelectorAll(".closeAlertBtn");
|
||||||
|
closeBtn.forEach((item) => {
|
||||||
|
item.addEventListener("click", closeAlert);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
function closeAlert() {
|
||||||
|
this.parentNode.setAttribute("style", "display: none;")
|
||||||
|
}
|
5
resources/themes/custom/js/popper.js
Normal file
5
resources/themes/custom/js/popper.js
Normal file
File diff suppressed because one or more lines are too long
29
resources/themes/custom/js/scripts.js
Normal file
29
resources/themes/custom/js/scripts.js
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
/*!
|
||||||
|
* Start Bootstrap - Clean Blog v6.0.9 (https://startbootstrap.com/theme/clean-blog)
|
||||||
|
* Copyright 2013-2023 Start Bootstrap
|
||||||
|
* Licensed under MIT (https://github.com/StartBootstrap/startbootstrap-clean-blog/blob/master/LICENSE)
|
||||||
|
*/
|
||||||
|
window.addEventListener('DOMContentLoaded', () => {
|
||||||
|
let scrollPos = 0;
|
||||||
|
const mainNav = document.getElementById('mainNav');
|
||||||
|
const headerHeight = mainNav.clientHeight;
|
||||||
|
window.addEventListener('scroll', function() {
|
||||||
|
const currentTop = document.body.getBoundingClientRect().top * -1;
|
||||||
|
if ( currentTop < scrollPos) {
|
||||||
|
// Scrolling Up
|
||||||
|
if (currentTop > 0 && mainNav.classList.contains('is-fixed')) {
|
||||||
|
mainNav.classList.add('is-visible');
|
||||||
|
} else {
|
||||||
|
console.log(123);
|
||||||
|
mainNav.classList.remove('is-visible', 'is-fixed');
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// Scrolling Down
|
||||||
|
mainNav.classList.remove(['is-visible']);
|
||||||
|
if (currentTop > headerHeight && !mainNav.classList.contains('is-fixed')) {
|
||||||
|
mainNav.classList.add('is-fixed');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
scrollPos = currentTop;
|
||||||
|
});
|
||||||
|
})
|
127
resources/themes/custom/post.html
Normal file
127
resources/themes/custom/post.html
Normal file
@ -0,0 +1,127 @@
|
|||||||
|
<!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="" />
|
||||||
|
<meta name="author" content="" />
|
||||||
|
<title>Clean Blog - Start Bootstrap Theme</title>
|
||||||
|
<link rel="icon" type="image/x-icon" href="assets/favicon.ico" />
|
||||||
|
<!-- Font Awesome icons (free version)-->
|
||||||
|
<script src="https://use.fontawesome.com/releases/v6.3.0/js/all.js" crossorigin="anonymous"></script>
|
||||||
|
<!-- Google fonts-->
|
||||||
|
<link href="https://fonts.googleapis.com/css?family=Lora:400,700,400italic,700italic" rel="stylesheet" type="text/css" />
|
||||||
|
<link href="https://fonts.googleapis.com/css?family=Open+Sans:300italic,400italic,600italic,700italic,800italic,400,300,600,700,800" rel="stylesheet" type="text/css" />
|
||||||
|
<!-- Core theme CSS (includes Bootstrap)-->
|
||||||
|
<link href="css/styles.css" rel="stylesheet" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<!-- Navigation-->
|
||||||
|
<nav class="navbar navbar-expand-lg navbar-light" id="mainNav">
|
||||||
|
<div class="container px-4 px-lg-5">
|
||||||
|
<a class="navbar-brand" href="index.html">Start Bootstrap</a>
|
||||||
|
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarResponsive" aria-controls="navbarResponsive" aria-expanded="false" aria-label="Toggle navigation">
|
||||||
|
Menu
|
||||||
|
<i class="fas fa-bars"></i>
|
||||||
|
</button>
|
||||||
|
<div class="collapse navbar-collapse" id="navbarResponsive">
|
||||||
|
<ul class="navbar-nav ms-auto py-4 py-lg-0">
|
||||||
|
<li class="nav-item"><a class="nav-link px-lg-3 py-3 py-lg-4" href="index.html">Home</a></li>
|
||||||
|
<li class="nav-item"><a class="nav-link px-lg-3 py-3 py-lg-4" href="about.html">About</a></li>
|
||||||
|
<li class="nav-item"><a class="nav-link px-lg-3 py-3 py-lg-4" href="post.html">Sample Post</a></li>
|
||||||
|
<li class="nav-item"><a class="nav-link px-lg-3 py-3 py-lg-4" href="contact.html">Contact</a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</nav>
|
||||||
|
<!-- Page Header-->
|
||||||
|
<header class="masthead" style="background-image: url('assets/img/post-bg.jpg')">
|
||||||
|
<div class="container position-relative px-4 px-lg-5">
|
||||||
|
<div class="row gx-4 gx-lg-5 justify-content-center">
|
||||||
|
<div class="col-md-10 col-lg-8 col-xl-7">
|
||||||
|
<div class="post-heading">
|
||||||
|
<h1>Man must explore, and this is exploration at its greatest</h1>
|
||||||
|
<h2 class="subheading">Problems look mighty small from 150 miles up</h2>
|
||||||
|
<span class="meta">
|
||||||
|
Posted by
|
||||||
|
<a href="#!">Start Bootstrap</a>
|
||||||
|
on August 24, 2023
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
<!-- Post Content-->
|
||||||
|
<article class="mb-4">
|
||||||
|
<div class="container px-4 px-lg-5">
|
||||||
|
<div class="row gx-4 gx-lg-5 justify-content-center">
|
||||||
|
<div class="col-md-10 col-lg-8 col-xl-7">
|
||||||
|
<p>Never in all their history have men been able truly to conceive of the world as one: a single sphere, a globe, having the qualities of a globe, a round earth in which all the directions eventually meet, in which there is no center because every point, or none, is center — an equal earth which all men occupy as equals. The airman's earth, if free men make it, will be truly round: a globe in practice, not in theory.</p>
|
||||||
|
<p>Science cuts two ways, of course; its products can be used for both good and evil. But there's no turning back from science. The early warnings about technological dangers also come from science.</p>
|
||||||
|
<p>What was most significant about the lunar voyage was not that man set foot on the Moon but that they set eye on the earth.</p>
|
||||||
|
<p>A Chinese tale tells of some men sent to harm a young girl who, upon seeing her beauty, become her protectors rather than her violators. That's how I felt seeing the Earth for the first time. I could not help but love and cherish her.</p>
|
||||||
|
<p>For those who have seen the Earth from space, and for the hundreds and perhaps thousands more who will, the experience most certainly changes your perspective. The things that we share in our world are far more valuable than those which divide us.</p>
|
||||||
|
<h2 class="section-heading">The Final Frontier</h2>
|
||||||
|
<p>There can be no thought of finishing for ‘aiming for the stars.’ Both figuratively and literally, it is a task to occupy the generations. And no matter how much progress one makes, there is always the thrill of just beginning.</p>
|
||||||
|
<p>There can be no thought of finishing for ‘aiming for the stars.’ Both figuratively and literally, it is a task to occupy the generations. And no matter how much progress one makes, there is always the thrill of just beginning.</p>
|
||||||
|
<blockquote class="blockquote">The dreams of yesterday are the hopes of today and the reality of tomorrow. Science has not yet mastered prophecy. We predict too much for the next year and yet far too little for the next ten.</blockquote>
|
||||||
|
<p>Spaceflights cannot be stopped. This is not the work of any one man or even a group of men. It is a historical process which mankind is carrying out in accordance with the natural laws of human development.</p>
|
||||||
|
<h2 class="section-heading">Reaching for the Stars</h2>
|
||||||
|
<p>As we got further and further away, it [the Earth] diminished in size. Finally it shrank to the size of a marble, the most beautiful you can imagine. That beautiful, warm, living object looked so fragile, so delicate, that if you touched it with a finger it would crumble and fall apart. Seeing this has to change a man.</p>
|
||||||
|
<a href="#!"><img class="img-fluid" src="assets/img/post-sample-image.jpg" alt="..." /></a>
|
||||||
|
<span class="caption text-muted">To go places and do things that have never been done before – that’s what living is all about.</span>
|
||||||
|
<p>Space, the final frontier. These are the voyages of the Starship Enterprise. Its five-year mission: to explore strange new worlds, to seek out new life and new civilizations, to boldly go where no man has gone before.</p>
|
||||||
|
<p>As I stand out here in the wonders of the unknown at Hadley, I sort of realize there’s a fundamental truth to our nature, Man must explore, and this is exploration at its greatest.</p>
|
||||||
|
<p>
|
||||||
|
Placeholder text by
|
||||||
|
<a href="http://spaceipsum.com/">Space Ipsum</a>
|
||||||
|
· Images by
|
||||||
|
<a href="https://www.flickr.com/photos/nasacommons/">NASA on The Commons</a>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</article>
|
||||||
|
<!-- Footer-->
|
||||||
|
<footer class="border-top">
|
||||||
|
<div class="container px-4 px-lg-5">
|
||||||
|
<div class="row gx-4 gx-lg-5 justify-content-center">
|
||||||
|
<div class="col-md-10 col-lg-8 col-xl-7">
|
||||||
|
<ul class="list-inline text-center">
|
||||||
|
<li class="list-inline-item">
|
||||||
|
<a href="#!">
|
||||||
|
<span class="fa-stack fa-lg">
|
||||||
|
<i class="fas fa-circle fa-stack-2x"></i>
|
||||||
|
<i class="fab fa-twitter fa-stack-1x fa-inverse"></i>
|
||||||
|
</span>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li class="list-inline-item">
|
||||||
|
<a href="#!">
|
||||||
|
<span class="fa-stack fa-lg">
|
||||||
|
<i class="fas fa-circle fa-stack-2x"></i>
|
||||||
|
<i class="fab fa-facebook-f fa-stack-1x fa-inverse"></i>
|
||||||
|
</span>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li class="list-inline-item">
|
||||||
|
<a href="#!">
|
||||||
|
<span class="fa-stack fa-lg">
|
||||||
|
<i class="fas fa-circle fa-stack-2x"></i>
|
||||||
|
<i class="fab fa-github fa-stack-1x fa-inverse"></i>
|
||||||
|
</span>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<div class="small text-center text-muted fst-italic">Copyright © Your Website 2023</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</footer>
|
||||||
|
<!-- Bootstrap core JS-->
|
||||||
|
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/js/bootstrap.bundle.min.js"></script>
|
||||||
|
<!-- Core theme JS-->
|
||||||
|
<script src="js/scripts.js"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
BIN
resources/themes/custom/preview.png
Normal file
BIN
resources/themes/custom/preview.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 918 KiB |
0
resources/themes/custom/scss/bootstrap/_alert.scss
Normal file
0
resources/themes/custom/scss/bootstrap/_alert.scss
Normal file
0
resources/themes/custom/scss/bootstrap/_badge.scss
Normal file
0
resources/themes/custom/scss/bootstrap/_badge.scss
Normal file
0
resources/themes/custom/scss/bootstrap/_card.scss
Normal file
0
resources/themes/custom/scss/bootstrap/_card.scss
Normal file
0
resources/themes/custom/scss/bootstrap/_close.scss
Normal file
0
resources/themes/custom/scss/bootstrap/_close.scss
Normal file
0
resources/themes/custom/scss/bootstrap/_code.scss
Normal file
0
resources/themes/custom/scss/bootstrap/_code.scss
Normal file
0
resources/themes/custom/scss/bootstrap/_forms.scss
Normal file
0
resources/themes/custom/scss/bootstrap/_forms.scss
Normal file
0
resources/themes/custom/scss/bootstrap/_grid.scss
Normal file
0
resources/themes/custom/scss/bootstrap/_grid.scss
Normal file
0
resources/themes/custom/scss/bootstrap/_images.scss
Normal file
0
resources/themes/custom/scss/bootstrap/_images.scss
Normal file
0
resources/themes/custom/scss/bootstrap/_media.scss
Normal file
0
resources/themes/custom/scss/bootstrap/_media.scss
Normal file
0
resources/themes/custom/scss/bootstrap/_mixins.scss
Normal file
0
resources/themes/custom/scss/bootstrap/_mixins.scss
Normal file
0
resources/themes/custom/scss/bootstrap/_modal.scss
Normal file
0
resources/themes/custom/scss/bootstrap/_modal.scss
Normal file
0
resources/themes/custom/scss/bootstrap/_nav.scss
Normal file
0
resources/themes/custom/scss/bootstrap/_nav.scss
Normal file
0
resources/themes/custom/scss/bootstrap/_navbar.scss
Normal file
0
resources/themes/custom/scss/bootstrap/_navbar.scss
Normal file
0
resources/themes/custom/scss/bootstrap/_print.scss
Normal file
0
resources/themes/custom/scss/bootstrap/_print.scss
Normal file
0
resources/themes/custom/scss/bootstrap/_reboot.scss
Normal file
0
resources/themes/custom/scss/bootstrap/_reboot.scss
Normal file
0
resources/themes/custom/scss/bootstrap/_root.scss
Normal file
0
resources/themes/custom/scss/bootstrap/_root.scss
Normal file
0
resources/themes/custom/scss/bootstrap/_tables.scss
Normal file
0
resources/themes/custom/scss/bootstrap/_tables.scss
Normal file
0
resources/themes/custom/scss/bootstrap/_toasts.scss
Normal file
0
resources/themes/custom/scss/bootstrap/_toasts.scss
Normal file
0
resources/themes/custom/scss/bootstrap/_type.scss
Normal file
0
resources/themes/custom/scss/bootstrap/_type.scss
Normal file
0
resources/themes/custom/scss/bootstrap/bootstrap-grid.scss
vendored
Normal file
0
resources/themes/custom/scss/bootstrap/bootstrap-grid.scss
vendored
Normal file
0
resources/themes/custom/scss/bootstrap/bootstrap-reboot.scss
vendored
Normal file
0
resources/themes/custom/scss/bootstrap/bootstrap-reboot.scss
vendored
Normal file
0
resources/themes/custom/scss/bootstrap/bootstrap.scss
vendored
Normal file
0
resources/themes/custom/scss/bootstrap/bootstrap.scss
vendored
Normal file
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user