/// Landing Page Handler /// /// Generates HTML landing page for the Nostr relay. use crate::config::Config; /// Generate the common base CSS used across all pages fn get_base_css() -> &'static str { r#":root { --brand: #4434FF; --brand-light: #6b5fff; --bg: #0a0a0f; --surface: #12121a; --border: #1e1e2e; --text: #e4e4eb; --text-muted: #a8a8bd; --error: #ff4444; --success: #22c55e; } * { margin: 0; padding: 0; box-sizing: border-box; } body { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Inter', sans-serif; line-height: 1.6; background: var(--bg); color: var(--text); min-height: 100vh; } a { color: var(--brand-light); text-decoration: none; } a:hover { text-decoration: underline; } code { background: var(--border); padding: 4px 8px; border-radius: 4px; font-family: 'SF Mono', 'Consolas', monospace; font-size: 0.875rem; color: var(--brand-light); } .footer { margin-top: 48px; padding-top: 24px; border-top: 1px solid var(--border); text-align: center; color: var(--text-muted); font-size: 0.875rem; }"# } /// Generate the HTML landing page pub fn get_html(config: &Config) -> String { format!( include_str!("../../templates/landing.html"), base_css = get_base_css(), relay_name = config.relay_name, relay_description = config.relay_description, ) } /// Generate a generic 404 page for unknown paths /// /// Used for any path that doesn't match a known route pub fn get_generic_404_html(config: &Config, path: &str) -> String { format!( r##"
The page you're looking for doesn't exist.
{path}
This repository doesn't exist on this GRASP server.
{npub}
{identifier}