# Landing Page Models ## Overview The Landing Page module provides a WYSIWYG page builder with GrapesJS editor integration, reusable block library, and MkDocs export functionality. **Models (2):** - LandingPage — GrapesJS editor output with MkDocs export - PageBlock — Reusable block library **Key Features:** - GrapesJS WYSIWYG editor (desktop only) - Visual + code editor modes - MkDocs export (THEMED vs STANDALONE modes) - SEO metadata (title, description, image) - Reusable block library (6 default blocks) - Jinja2 Material theme integration See [Schema Reference](../schema.md#landing-pages) for complete field listings. --- ## Editor Modes ```prisma enum EditorMode { VISUAL // GrapesJS visual editor (default) CODE // Raw HTML/CSS code editor } ``` --- ## MkDocs Export Modes ```prisma enum MkdocsExportMode { THEMED // Extends main.html, content block only (default) STANDALONE // Full HTML document, no Jinja2 inheritance } ``` **THEMED Mode:** ```html {% extends "main.html" %} {% block content %}
{% endblock %} ``` **STANDALONE Mode:** ```html Page Title ``` --- ## Page Blocks (6 default) **1. Hero Section** (Headers) - Schema: title, subtitle, backgroundImage, ctaText, ctaUrl - Defaults: "Welcome to Our Campaign", "Get Involved" **2. Text Block** (Content) - Schema: heading, body - Defaults: "About Us", "Tell your story here..." **3. Features Grid** (Content) - Schema: features[] (title, description, icon) - Defaults: 3 features (Community Action, Advocacy, Volunteer) **4. Call to Action** (Actions) - Schema: heading, description, buttonText, buttonUrl - Defaults: "Ready to Take Action?", "Join Now" **5. Testimonials** (Content) - Schema: quotes[] (text, author, role) - Defaults: 2 quotes **6. Contact Form** (Actions) - Schema: heading, fields[] (name, type, required) - Defaults: Name, Email, Message fields --- ## GrapesJS JSON Format **blocks Field:** ```json { "pages": [ { "id": "page-main", "component": { "type": "wrapper", "components": [ { "tagName": "section", "classes": ["hero"], "components": [ { "tagName": "h1", "content": "Welcome to Our Campaign" } ] } ] } } ] } ``` --- ## Related Documentation - [Schema Reference](../schema.md#landing-pages) — Complete field listings - [Seeding](../seeding.md) — Default page blocks - [API Pages Routes](../../api/pages.md) — REST endpoints - [Admin Landing Pages](../../admin/landing-pages.md) — Page list UI - [Admin Page Editor](../../admin/page-editor.md) — GrapesJS editor UI - [Public Landing Page](../../admin/public-landing.md) — Public page renderer