refactor: Format site files for 11ty

- Convert HTML pages into NJK templates
- Add front matter to NJK templates
- Modularize monolithic stylesheet
This commit is contained in:
2025-08-18 23:28:46 -05:00
parent c9c5b89736
commit de71b2d663
89 changed files with 4471 additions and 989 deletions

47
src/_includes/base.njk Normal file
View File

@@ -0,0 +1,47 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="{{ metaDesc }}">
<title>{{title}}</title>
{% if stylesheet %}
{% for style in stylesheet %}
<link rel="stylesheet" href="{{ style }}">
{% endfor %}
{% endif %}
{% if hCAPTCHA %}
<script src="{{ hCAPTCHA }}" async defer></script>
{% endif %}
{% if fontAwesome %}
<script src="{{ fontAwesome }}" crossorigin="anonymous"></script>
{% endif %}
</head>
<body>
{% include "header.html" %}
<main>
{{ content | safe }}
</main>
{% include "footer.html" %}
<!-- <a href="https://www.svgbackgrounds.com/set/free-svg-backgrounds-and-patterns/">Free SVG Backgrounds and Patterns by SVGBackgrounds.com</a> -->
{% if pageScripts %}
{% for script in pageScripts %}
<script src="{{ script }}"></script>
{% endfor %}
{% endif %}
</body>
</html>

103
src/_includes/footer.html Normal file
View File

@@ -0,0 +1,103 @@
<!-- Footer Section -->
<footer role="contentinfo">
<div id="newsletter-container">
<label for="email-input" class="hidden">Enter your email to subscribe to our newsletter</label>
<form id="newsletter-form">
<input
type="email"
id="email-input"
aria-label="Enter your email to Subscribe"
placeholder="Subscribe@BloomValleyNursery.com"
/>
<button id="submit-btn" type="submit" aria-label="Submit the subscribe form">
Subscribe Now!
</button>
</form>
</div>
<div id="footer-nav">
<ul>
<li><a href="/" class="current-page">Home</a></li>
<li><a href="/gallery/">Gallery</a></li>
<li><a href="/about/">About Us</a></li>
<li><a href="/community/">Community Events</a></li>
</ul>
</div>
<div id="social-media">
<p>Check us out on social media!</p>
<ul class="social-icons">
<li id="pinterest">
<a href="#" aria-label="Follow us on Pinterest"
><i class="fa-brands fa-square-pinterest fa-lg"></i></a></li>
<li id="facebook">
<a href="#" aria-label="Follow us on Facebook"
><i class="fa-brands fa-facebook fa-lg"></i
></a>
</li>
<li id="instagram">
<a href="#" aria-label="Follow us on Instagram"
><i class="fa-brands fa-instagram fa-lg"></i
></a>
</li>
<li id="twitter">
<a href="#" aria-label="Follow us on X (Twitter)"
><i class="fa-brands fa-square-x-twitter fa-lg"></i
></a>
</li>
<li id="youtube">
<a href="#" aria-label="View our Youtube channel"
><i class="fa-brands fa-youtube fa-lg"></i
></a>
</li>
</ul>
</div>
<div id="copyright">&copy; 2025, Derek L. Seitz, <a href="https://dlseitz.dev">dlseitz.dev.</a></div>
</footer>
<!-- Custom Newsletter Modal -->
<div id="custom-alert" class="modal hidden">
<div class="modal-content">
<span class="close-modal" id="alert-close-btn">&times;</span>
<p id="alert-message"></p>
<button id="alert-ok-button">OK</button>
</div>
</div>
<!-- Modal for Shopping Cart -->
<div id="cart-modal" class="modal" style="display: none;">
<div class="modal-content">
<span class="close-modal">&times;</span>
<h2>Your Shopping Cart</h2>
<ul id="cart-items"></ul> <!-- Dynamically populated -->
<p id="cart-total"></p> <!-- Sub-total will appear here -->
<div class="modal-buttons">
<button id="clear-cart-modal-btn">Clear Cart</button>
<button id="process-order-modal-btn">Process Order</button>
</div>
</div>
</div>
<!-- Modal for Item Added -->
<div id="item-added-modal" class="modal" style="display: none;">
<div class="modal-content">
<span class="close-modal" id="item-added-close">&times;</span>
<p id="item-added-message"></p> <!-- Dynamically set message -->
</div>
</div>
<!-- Confirmation Modal -->
<div id="confirmation-modal" class="modal" style="display: none;">
<div class="modal-content">
<span class="close-modal" id="confirmation-close-btn">&times;</span>
<p id="confirmation-message"></p> <!-- Dynamic confirmation message -->
<button id="confirmation-confirm-btn">Confirm</button>
<button id="confirmation-close-btn">Close</button>
</div>
</div>
<!-- Final Confirmation Modal -->
<div id="final-confirmation-modal" class="modal" style="display: none;">
<div class="modal-content">
<span class="close-modal" id="final-confirmation-close-btn">&times;</span>
<p id="final-confirmation-message"></p> <!-- Message after successful action -->
<button id="final-confirmation-close-btn">Close</button>
</div>
</div>

25
src/_includes/header.html Normal file
View File

@@ -0,0 +1,25 @@
<header role="banner">
<div class="logo">
<img
src="images/Client1_LogoPalette2_F0C06D.png"
alt="Bloom Valley Nursery Logo"/>
</div>
<h1>Bloom Valley Nursery</h1>
<!-- Navigation Bar -->
<nav role="navigation" aria-label="Main Navigation">
<ul>
<li>
<a href="/" aria-current="page" class="current-page">Home</a></li>
<li><a href="/gallery/">Gallery</a></li>
<li><a href="/about/">About Us</a></li>
<li><a href="/community/">Community Events</a></li>
</ul>
<div>
<button
id="shopping-cart"
aria-label="Open shopping cart"
class="fa-solid fa-cart-shopping fa-2xl">
</button>
</div>
</nav>
</header>