{# ============================================================================= layout/base.html — Moosey CMS Shared Base Layout ============================================================================= This is the root template that every page in the site extends. It provides: • HTML5 doctype with responsive viewport meta tag • Automatic SEO tags via {{ seo() }} (OpenGraph, Twitter Cards, JSON-LD) • Tailwind CSS (loaded from CDN for the example; bundle in production) • Responsive navigation bar with desktop + mobile menu • Main content block for child templates to fill • Footer with site_data-driven copyright and social links • Mobile menu toggle script Template Globals Available (all injected by Moosey automatically): site_data – The dict you passed to init_cms() mode – "development" | "production" | "staging" | "testing" request – The FastAPI/Starlette Request object seo() – Global function that renders all SEO meta tags current_year – Custom global registered in main.py Extends: None — this is the root layout. Blocks: head – Override to add extra
elements (e.g. page-specific CSS) content – Child templates fill this with page-specific HTML ============================================================================= #} {# The scroll-smooth class enables smooth anchor scrolling #} {# ---- Core Meta Tags ---- #} {# ---- SEO Injection ---- {{ seo() }} renders the full suite of meta tags: