#!/usr/bin/env python3
"""
Static Site Generator — Page Generator Script
Generates all 50 page templates from shared components and content definitions.
Run: python3 config/generate_pages.py
"""

import os

BASE_DIR   = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
PAGES_DIR  = os.path.join(BASE_DIR, "pages")
os.makedirs(PAGES_DIR, exist_ok=True)

CSS_LINKS = """  <link rel="preconnect" href="https://fonts.googleapis.com" />
  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
  <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap" />
  <link rel="stylesheet" href="../styles/tokens.css" />
  <link rel="stylesheet" href="../styles/theme.css" />
  <link rel="stylesheet" href="../styles/reset.css" />
  <link rel="stylesheet" href="../styles/utilities.css" />
  <link rel="stylesheet" href="../styles/components.css" />
  <link rel="stylesheet" href="../styles/sections.css" />"""

JS_SCRIPTS = """<script src="../scripts/theme.js" defer></script>
<script src="../scripts/nav.js" defer></script>
<script src="../scripts/accordion.js" defer></script>
<script src="../scripts/tabs.js" defer></script>
<script src="../scripts/modal.js" defer></script>
<script src="../scripts/carousel.js" defer></script>
<script src="../scripts/toast.js" defer></script>
<script src="../scripts/forms.js" defer></script>"""

HEADER = """<a href="#main-content" class="skip-link">Skip to main content</a>
<header class="site-header" role="banner">
  <div class="container">
    <nav class="nav-wrapper" aria-label="Main navigation">
      <a href="../index.html" class="nav-logo" aria-label="Acme Corp home">
        <span class="nav-logo-dot" aria-hidden="true"></span>Acme
      </a>
      <ul class="nav-links" role="list">
        <li><a href="../index.html">Home</a></li>
        <li><a href="about.html">About</a></li>
        <li><a href="services.html">Services</a></li>
        <li><a href="pricing.html">Pricing</a></li>
        <li><a href="blog-index.html">Blog</a></li>
        <li><a href="contact.html">Contact</a></li>
      </ul>
      <div class="nav-actions">
        <button class="theme-toggle" aria-label="Switch to dark mode" aria-pressed="false">
          <span class="theme-icon" aria-hidden="true">&#x1F319;</span>
        </button>
        <a href="login.html" class="btn btn-ghost btn-sm hide-mobile">Sign in</a>
        <a href="signup.html" class="btn btn-primary btn-sm">Get Started</a>
        <button class="nav-toggle" aria-expanded="false" aria-controls="mobile-nav" aria-label="Open navigation menu">
          <span class="nav-toggle-bar"></span>
          <span class="nav-toggle-bar"></span>
          <span class="nav-toggle-bar"></span>
        </button>
      </div>
    </nav>
  </div>
</header>
<nav id="mobile-nav" class="mobile-nav" aria-label="Mobile navigation" aria-hidden="true">
  <div class="mobile-nav-header">
    <a href="../index.html" class="nav-logo"><span class="nav-logo-dot" aria-hidden="true"></span>Acme</a>
    <button class="mobile-nav-close btn btn-ghost btn-icon" aria-label="Close navigation">X</button>
  </div>
  <ul class="mobile-nav-links" role="list">
    <li><a href="../index.html">Home</a></li>
    <li><a href="about.html">About</a></li>
    <li><a href="services.html">Services</a></li>
    <li><a href="pricing.html">Pricing</a></li>
    <li><a href="blog-index.html">Blog</a></li>
    <li><a href="contact.html">Contact</a></li>
  </ul>
  <div class="mobile-nav-footer">
    <a href="login.html" class="btn btn-outline btn-full">Sign in</a>
    <a href="signup.html" class="btn btn-primary btn-full">Get Started Free</a>
  </div>
</nav>"""

FOOTER = """<footer class="site-footer" role="contentinfo">
  <div class="container">
    <div class="footer-grid">
      <div class="footer-brand">
        <a href="../index.html" class="logo">Acme</a>
        <p>Build products your customers will love.</p>
        <div class="footer-social" aria-label="Social media links">
          <a href="#" aria-label="Twitter/X"><span aria-hidden="true">X</span></a>
          <a href="#" aria-label="LinkedIn"><span aria-hidden="true">in</span></a>
          <a href="#" aria-label="GitHub"><span aria-hidden="true">GH</span></a>
        </div>
      </div>
      <div class="footer-col"><h4>Product</h4><ul>
        <li><a href="features.html">Features</a></li>
        <li><a href="pricing.html">Pricing</a></li>
        <li><a href="integrations.html">Integrations</a></li>
      </ul></div>
      <div class="footer-col"><h4>Company</h4><ul>
        <li><a href="about.html">About</a></li>
        <li><a href="blog-index.html">Blog</a></li>
        <li><a href="careers.html">Careers</a></li>
      </ul></div>
      <div class="footer-col"><h4>Support</h4><ul>
        <li><a href="help-center.html">Help Center</a></li>
        <li><a href="docs.html">Docs</a></li>
        <li><a href="contact.html">Contact</a></li>
      </ul></div>
      <div class="footer-col"><h4>Legal</h4><ul>
        <li><a href="legal.html#privacy">Privacy</a></li>
        <li><a href="legal.html#terms">Terms</a></li>
      </ul></div>
    </div>
    <div class="footer-bottom">
      <span>&copy; 2025 Acme Corp. All rights reserved.</span>
    </div>
  </div>
</footer>
<div id="toast-container" class="toast-container" aria-live="polite" aria-atomic="true" role="status"></div>"""

def page(title, desc, body, no_header_footer=False):
    hf_open  = HEADER if not no_header_footer else ""
    hf_close = FOOTER if not no_header_footer else ""
    return f"""<!DOCTYPE html>
<html lang="en" data-theme="light">
<head>
  <meta charset="UTF-8" />
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  <title>{title} | Acme Corp</title>
  <meta name="description" content="{desc}" />
{CSS_LINKS}
</head>
<body>
{hf_open}
<main id="main-content" tabindex="-1">
{body}
</main>
{hf_close}
{JS_SCRIPTS}
</body>
</html>"""

# ── Import page content modules ───────────────────────────────
from generate_pages_part2 import PAGES as PAGES2
from generate_pages_part3 import PAGES as PAGES3

PAGES = {}
PAGES.update(PAGES2)
PAGES.update(PAGES3)

# ── Write all pages ───────────────────────────────────────────
def write_pages():
    count = 0
    for filename, content in PAGES.items():
        out = os.path.join(PAGES_DIR, filename)
        with open(out, "w", encoding="utf-8") as f:
            f.write(content)
        count += 1
        print(f"  Generated: pages/{filename}")
    print(f"\nDone! {count} pages generated in {PAGES_DIR}")

if __name__ == "__main__":
    write_pages()