SiteLayoutTemplate.vala 3.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. using Astralis;
  2. using Spry;
  3. /**
  4. * SiteLayoutTemplate - The base template for all pages
  5. *
  6. * Provides:
  7. * - HTML document structure
  8. * - Common <head> elements (scripts, styles)
  9. * - Site-wide header with navigation
  10. * - Site-wide footer
  11. */
  12. public class SiteLayoutTemplate : PageTemplate {
  13. public override string markup { get {
  14. return """
  15. <!DOCTYPE html>
  16. <html lang="en">
  17. <head>
  18. <meta charset="UTF-8">
  19. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  20. <title>Spry Framework - Modern Web Development in Vala</title>
  21. <meta name="description" content="Spry is a component-based web framework for Vala, featuring HTMX integration, dependency injection, and reactive templates.">
  22. <link rel="stylesheet" href="/styles/main.css">
  23. <script spry-res="htmx.js"></script>
  24. </head>
  25. <body>
  26. <header class="site-header">
  27. <div class="header-content">
  28. <a href="/" class="logo">
  29. <div class="logo-icon">⚡</div>
  30. Spry
  31. </a>
  32. <nav>
  33. <ul class="nav-links">
  34. <li><a href="/features">Features</a></li>
  35. <li><a href="/ecosystem">Ecosystem</a></li>
  36. <li><a href="/demo">Demo</a></li>
  37. <li><a href="/freedom">Freedom</a></li>
  38. </ul>
  39. </nav>
  40. <a href="/demo" class="nav-cta">Try Demo</a>
  41. </div>
  42. </header>
  43. <main>
  44. <spry-template-outlet />
  45. </main>
  46. <footer class="site-footer">
  47. <div class="container">
  48. <div class="footer-content">
  49. <div class="footer-brand">
  50. <a href="/" class="logo">
  51. <div class="logo-icon">⚡</div>
  52. Spry
  53. </a>
  54. <p>A modern, component-based web framework for Vala. Build reactive, real-time web applications with ease.</p>
  55. </div>
  56. <div class="footer-section">
  57. <h4>Framework</h4>
  58. <ul class="footer-links">
  59. <li><a href="/features">Features</a></li>
  60. <li><a href="/ecosystem">Ecosystem</a></li>
  61. <li><a href="/demo">Live Demo</a></li>
  62. </ul>
  63. </div>
  64. <div class="footer-section">
  65. <h4>Ecosystem</h4>
  66. <ul class="footer-links">
  67. <li><a href="/ecosystem">Astralis</a></li>
  68. <li><a href="/ecosystem">Inversion</a></li>
  69. <li><a href="/ecosystem">Spry</a></li>
  70. </ul>
  71. </div>
  72. <div class="footer-section">
  73. <h4>Community</h4>
  74. <ul class="footer-links">
  75. <li><a href="/freedom">Free Software</a></li>
  76. <li><a href="https://github.com" rel="external">GitHub</a></li>
  77. </ul>
  78. </div>
  79. </div>
  80. <div class="footer-bottom">
  81. <p>© 2024 Spry Framework. Free and Open Source Software.</p>
  82. <div class="footer-social">
  83. <a href="https://github.com" title="GitHub">⌨</a>
  84. </div>
  85. </div>
  86. </div>
  87. </footer>
  88. </body>
  89. </html>
  90. """;
  91. }}
  92. }