Prezet: Markdown Blogging for Laravel

Fund package maintenance!
benbjurstrom


README

PREZET

Latest Version on Packagist GitHub Tests Action Status GitHub Code Style Action Status

Prezet: Markdown Blogging for Laravel

Go from markdown files to SEO-friendly blogs, articles, and documentation in seconds! The Prezet framework makes it easy to parse, index, and serve your Markdown content efficiently within a Laravel application.

(Looking for a ready-to-use frontend? Check out template packages like prezet/docs-template!)

Screenshot of Prezet blog

Table of Contents

✨ Framework Features

• SQLite Index
Indexes your markdown files to support search, pagination, sorting, and filtering.
• Automatic Image Optimization
Handles image processing, including compression, scaling, and generating responsive `srcset` attributes.
• Validated Front Matter
Define expected front matter fields and automatically cast them into validated Data Transfer Objects (DTOs) for type-safe access in your application.
• Open Graph (OG) images
Generate OG images from front matter using a customizable template.
• Dynamic Table of Contents
Automatically extracts headings from your Markdown content to generate data for a nested Table of Contents.
• SEO Optimization
Automatically generate meta tags based on front matter data for better search engine discoverability.
• Blade Components
Include Laravel Blade components in your markdown for enriched, interactive content.

🚀 Quick Start

  1. Install the Prezet framework:

    # Install the framework package
    composer require prezet/prezet:^1.0
    
    # Run the framework installer
    php artisan prezet:install
  2. Install a Frontend Template:

    The Prezet framework provides the backend engine. A template package provides the frontend (routes, controllers, views, CSS).

    Example using the Official Docs Template:

    # Install the template package
    composer require prezet/docs-template --dev
    
    # Run the template's installer
    php artisan docs-template:install
  3. Index Your Content: After adding or modifying Markdown files in your content directory update the Prezet index:

    php artisan prezet:index --fresh

    This command scans your content directory and updates the SQLite index with the latest front matter information. Run this whenever you:

    • Add new Markdown files.
    • Change a file's slug (filename).
    • Modify front matter and need it reflected in listings or searches. (Changes to the main body content of Markdown files are reflected automatically when viewing a single page).
  4. Start Your Server:

    php artisan serve

    Visit the routes defined by your installed frontend template (e.g., /prezet if using prezet/docs-template).

Documentation

Detailed documentation is available at prezet.com

Credits

License

The MIT License (MIT). Please see License File for more information.