Download the PHP package aichadigital/lara-content without Composer
On this page you can find all versions of the php package aichadigital/lara-content. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download aichadigital/lara-content
More information about aichadigital/lara-content
Files in aichadigital/lara-content
Package lara-content
Short Description Content management package for Laravel with pages, posts, blocks and menus. Blade + Livewire, multilingual support.
License AGPL-3.0-or-later
Homepage https://github.com/AichaDigital/lara-content
Informations about the package lara-content
Lara Content
ALPHA VERSION: This package is in early development. The API may change without notice. Not recommended for production use yet.
Development happens on gitlab.castris.com. The GitHub repository is a read-only distribution mirror: issues and pull requests opened there are not seen.
Content management package for Laravel with pages, posts, blocks and menus. Supports Blade templates with optional Livewire components for interactivity. Includes multilingual support via Spatie Translatable.
Features
- Pages: Flexible page system with customizable layouts and block zones
- Posts: Blog/news posts with author attribution and publishing workflow
- Publishing workflow: 5-state lifecycle (draft, review, ready, published, archived) with
published_atscheduling - Taxonomies: Categories and tags for posts, many-to-many, translatable names
- SEO fields: Meta title/description, featured image alt, focus keyword, secondary keywords, internal notes (internal-only)
- Markdown import:
content:import-postscommand with consumer-defined field mapping, idempotent by slug - Menus: Hierarchical menu system with nested items
- Blocks: Modular content blocks (HTML, Recent Posts, Menu, Contact Form)
- Layouts: Pre-built page layouts (Single, Sidebar Left/Right, Two/Three Column)
- Multilingual: Full translation support via spatie/laravel-translatable
- Extensible: Register custom layouts and blocks via registries
- Secure: HTML sanitization with configurable allowed tags
Requirements
- PHP 8.3+
- Laravel 12+
- Livewire 3+ (optional, for interactive blocks)
users.idUUID v7 char(36) —lara-contentis UUID-first (see aichadigital/larabillsetup-uuid.md.
Installation
Install via composer:
Publish and run migrations:
Publish the config file:
Optionally publish views for customization:
Configuration
Key configuration options in config/content.php:
Usage
Pages
Pages support flexible layouts with multiple content zones:
Posts
Blog posts with author attribution and the publishing workflow:
Publishing workflow, taxonomies and SEO
Posts and pages carry a 5-state editorial lifecycle via the publish_status column:
draft, review, ready, published, archived (PublishStatus enum). The
published_at timestamp schedules publication: a published post with a future
date stays out of Post::published().
Taxonomies are many-to-many with translatable names:
SEO fields on posts: meta_title, meta_description, featured_image_alt
(translatable), plus internal-only editorial fields (focus_keyword,
secondary_keywords, internal_notes). Internal fields are declared in
Post::INTERNAL_ATTRIBUTES and excluded from Post::publicAttributes(); they
must never be rendered or exposed by public API surfaces.
Importing markdown posts
The command reads *.md files with YAML frontmatter and upserts posts by slug
(idempotent; files without a slug key are skipped). Markdown bodies are
converted to sanitized HTML at import time (content_type = html).
Frontmatter keys are consumer data, mapped through config/content.php:
import.field_map: frontmatter key → post attribute (orcategories/tags)import.status_map: consumer editorial state →PublishStatusvalueimport.locale: locale key for single-language frontmatter valuesimport.max_meta_title(60) /import.max_meta_description(155)
The command exits non-zero when any file fails validation; --dry-run
validates and reports without writing.
Menus
Hierarchical menus with nested items:
Blocks
Render blocks in your views:
Available Layouts
| Slug | Name | Zones |
|---|---|---|
single |
Single Column | main |
sidebar-left |
Sidebar Left | main, sidebar |
sidebar-right |
Sidebar Right | main, sidebar |
two-column |
Two Column | left, right |
three-column |
Three Column | left, center, right |
Available Blocks
| Slug | Name | Interactive | Description |
|---|---|---|---|
html |
HTML Block | No | Raw HTML content |
recent-posts |
Recent Posts | No | List of recent posts |
menu |
Menu Block | No | Render a menu |
contact-form |
Contact Form | Yes | Livewire contact form |
Extending
Custom Layouts
Register custom layouts in your service provider:
Custom Blocks
Register custom blocks:
Testing
Changelog
Please see CHANGELOG for recent changes.
License
AGPL-3.0-or-later. See License File for details.
Lara Content (Español)
VERSION ALPHA: Este paquete está en desarrollo inicial. La API puede cambiar sin previo aviso. No recomendado para producción todavía.
Paquete de gestión de contenido para Laravel con páginas, posts, bloques y menús. Soporta plantillas Blade con componentes Livewire opcionales para interactividad. Incluye soporte multilingüe via Spatie Translatable.
Características
- Páginas: Sistema flexible de páginas con layouts personalizables y zonas de bloques
- Posts: Posts de blog/noticias con atribución de autor y flujo de publicación
- Flujo de publicación: Ciclo de 5 estados (borrador, revisión, listo, publicado, archivado) con programación via
published_at - Taxonomías: Categorías y etiquetas para posts, many-to-many, nombres traducibles
- Campos SEO: Meta título/descripción, alt de imagen destacada, palabra clave principal, secundarias y notas internas (solo internas)
- Import de markdown: Comando
content:import-postscon mapping definido por el consumidor, idempotente por slug - Menús: Sistema jerárquico de menús con elementos anidados
- Bloques: Bloques de contenido modulares (HTML, Posts Recientes, Menú, Formulario de Contacto)
- Layouts: Layouts predefinidos (Una Columna, Sidebar Izquierda/Derecha, Dos/Tres Columnas)
- Multilingüe: Soporte completo de traducciones via spatie/laravel-translatable
- Extensible: Registra layouts y bloques personalizados via registries
- Seguro: Sanitización HTML con tags permitidos configurables
Requisitos
- PHP 8.3+
- Laravel 12+
- Livewire 3+ (opcional, para bloques interactivos)
users.idUUID v7 char(36) —lara-contentes UUID-first (ver aichadigital/larabillsetup-uuid.md.
Instalación
Instalar via composer:
Publicar y ejecutar migraciones:
Publicar archivo de configuración:
Opcionalmente publicar vistas para personalización:
Uso
Páginas
Posts
Menús
Layouts Disponibles
| Slug | Nombre | Zonas |
|---|---|---|
single |
Una Columna | main |
sidebar-left |
Sidebar Izquierda | main, sidebar |
sidebar-right |
Sidebar Derecha | main, sidebar |
two-column |
Dos Columnas | left, right |
three-column |
Tres Columnas | left, center, right |
Bloques Disponibles
| Slug | Nombre | Interactivo | Descripción |
|---|---|---|---|
html |
Bloque HTML | No | Contenido HTML |
recent-posts |
Posts Recientes | No | Lista de posts recientes |
menu |
Bloque Menú | No | Renderiza un menú |
contact-form |
Formulario Contacto | Sí | Formulario Livewire |
Extensión
Layouts Personalizados
Bloques Personalizados
Tests
Licencia
AGPL-3.0-or-later. Ver archivo de licencia para detalles.
All versions of lara-content with dependencies
illuminate/contracts Version ^12.0||^13.0
spatie/laravel-package-tools Version ^1.16
spatie/laravel-translatable Version ^6.13
stevebauman/purify Version ^6.2
league/commonmark Version ^2.5
symfony/yaml Version ^6.4||^7.0||^8.0