You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

109 lines
4.9 KiB

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{{.Title}} - {{.SiteName}}</title>
{{if .Description}}<meta name="description" content="{{.Description}}">{{end}}
{{if .Keywords}}<meta name="keywords" content="{{.Keywords}}">{{end}}
<!-- OpenGraph / Facebook -->
<meta property="og:type" content="{{if .OGType}}{{.OGType}}{{else}}website{{end}}">
<meta property="og:url" content="{{.CanonicalURL}}">
<meta property="og:title" content="{{.Title}} - {{.SiteName}}">
{{if .Description}}<meta property="og:description" content="{{.Description}}">{{end}}
<meta property="og:image" content="{{.OGImage}}">
<!-- Twitter -->
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:url" content="{{.CanonicalURL}}">
<meta name="twitter:title" content="{{.Title}} - {{.SiteName}}">
{{if .Description}}<meta name="twitter:description" content="{{.Description}}">{{end}}
<meta name="twitter:image" content="{{.OGImage}}">
<link rel="canonical" href="{{.CanonicalURL}}">
<link rel="icon" type="image/svg+xml" href="/static/GitCitadel_Icon_Gradient.svg">
<link rel="stylesheet" href="/static/css/main.css">
<link rel="stylesheet" href="/static/css/responsive.css">
<link rel="stylesheet" href="/static/css/print.css" media="print">
{{if .StructuredData}}<script type="application/ld+json">{{.StructuredData}}</script>{{end}}
</head>
<body>
<a href="#main-content" class="skip-link">Skip to main content</a>
<header>
<nav class="navbar" role="navigation" aria-label="Main navigation">
<div class="nav-container">
<a href="/" class="logo">
<img src="/static/GitCitadel_Icon_Gradient.svg" alt="GitCitadel Logo" class="logo-icon">
<span class="logo-text">{{.SiteName}}</span>
</a>
<button class="mobile-menu-toggle" aria-label="Toggle menu" aria-expanded="false">
<span></span>
<span></span>
<span></span>
</button>
<ul class="nav-menu">
<li><a href="/">Home</a></li>
<li><a href="/wiki">About The Project</a></li>
<li class="dropdown">
<a href="/blog" class="dropdown-toggle">Blog</a>
<ul class="dropdown-menu">
{{range .BlogItems}}
<li><a href="/blog#{{.DTag}}">{{.Title}}</a></li>
{{end}}
</ul>
</li>
<li><a href="/ebooks">E-Books</a></li>
<li><a href="/contact">Contact</a></li>
</ul>
</div>
</nav>
</header>
<div class="layout-container{{if and .WikiPages (or (eq .CanonicalURL (printf "%s/wiki" .SiteURL)) (hasPrefix .CanonicalURL (printf "%s/wiki/" .SiteURL)))}} wiki-layout{{end}}">
{{if and .WikiPages (or (eq .CanonicalURL (printf "%s/wiki" .SiteURL)) (hasPrefix .CanonicalURL (printf "%s/wiki/" .SiteURL)))}}
<aside class="wiki-sidebar" aria-label="About The Project navigation">
<nav class="wiki-nav">
<h2>About The Project</h2>
<ul class="wiki-menu">
<li><a href="/wiki"{{if eq .CanonicalURL (printf "%s/wiki" .SiteURL)}} class="active"{{end}}>Project Overview</a></li>
{{range .WikiPages}}
<li><a href="/wiki/{{.DTag}}"{{if eq $.CanonicalURL (printf "%s/wiki/%s" $.SiteURL .DTag)}} class="active"{{end}}>{{.Title}}</a></li>
{{end}}
</ul>
</nav>
</aside>
{{end}}
<main id="main-content" class="main-content">
{{block "content" .}}{{end}}
</main>
{{if or (eq .CanonicalURL .SiteURL) (eq .CanonicalURL (printf "%s/" .SiteURL))}}
<aside class="feed-sidebar" aria-label="Recent notes">
{{template "feed" .}}
</aside>
{{end}}
</div>
<footer>
<p>&copy; 2026 GitCitadel All Rights Reserved | <a href="/contact">Contact</a></p>
</footer>
<script>
// Mobile menu toggle (optional - menu works without JS)
if (document.querySelector('.mobile-menu-toggle')) {
document.querySelector('.mobile-menu-toggle').addEventListener('click', function() {
const menu = document.querySelector('.nav-menu');
const isExpanded = this.getAttribute('aria-expanded') === 'true';
this.setAttribute('aria-expanded', !isExpanded);
menu.classList.toggle('active');
});
}
</script>
</body>
</html>