seryak / yazar
Static site generator engine for Laravel: Markdown content imported into Eloquent documents and rendered through Blade.
Requires
- php: ^8.2
- graham-campbell/markdown: ^16.0
- illuminate/console: ^12.0
- illuminate/contracts: ^12.0
- illuminate/database: ^12.0
- illuminate/support: ^12.0
- phiki/phiki: ^2.0
- symfony/yaml: ^7.0
Requires (Dev)
- larastan/larastan: ^3.10
- laravel/framework: ^12.55
- laravel/pint: ^1.0
- mockery/mockery: ^1.4.4
- nesbot/carbon: ^3.13
- nunomaduro/collision: ^8.8
- orchestra/testbench-core: ^10.0
- phpstan/phpstan: ^2.2
- phpunit/phpunit: ^11.5.15
- shipmonk/dead-code-detector: ^1.3
- tomasvotruba/bladestan: ^0.11.5
This package is auto-updated.
Last update: 2026-07-09 18:39:34 UTC
README
Yazar is a static site generator engine for Laravel: Markdown content with front matter is imported into Eloquent documents and rendered through Blade templates, either dynamically over HTTP or as pre-built static HTML.
For Laravel developers who want to:
- Use familiar tools: Eloquent, Blade, Service Container, Facades.
- Extend behaviour through config, not by forking the engine.
- Avoid duplicating Markdown-to-HTML logic across static and dynamic rendering.
- Get static-site speed without a separate templating language.
This repository is the engine only — a Composer package, not a runnable application. It is meant to be installed inside your own Laravel project.
Installation
Until the package is tagged, install it as a local path dependency with a symlink, so changes to the engine are picked up immediately by the consuming application:
{
"repositories": [
{
"type": "path",
"url": "../yazar",
"options": {
"symlink": true
}
}
],
"require": {
"seryak/yazar": "dev-master"
},
"minimum-stability": "dev",
"prefer-stable": true
}
composer require seryak/yazar:dev-master
Once versioned releases exist, this becomes a regular composer require seryak/yazar.
Getting started
php artisan yazar:install # publishes config/yazar.php, default views, and demo content php artisan migrate # creates the documents table php artisan build # generates the static site
php artisan yazar:install never touches the database — running migrations is always a separate, explicit step.
Configuration
All engine configuration lives in the published config/yazar.php — see docs/en/configuration.md for what each option controls.
Per-document view selection is not configured here: it comes from the view::extends front matter field on each Markdown file.
Console commands
php artisan build— imports all configured content, renders it to static HTML, and (ifdeploy_targetis set) copies the result there.php artisan yazar:install— publishes config, default views, and demo content; supports--forceto overwrite.
Local development
The engine itself has no runnable Laravel application. bin/harness-init.sh
creates (or reuses) a git-ignored harness/ Laravel application inside this
repository for manually exercising the package — see
docs/en/harness.md for setup, usage, and reset instructions.
Documentation
| Guide | Description |
|---|---|
| Configuration | What each config/yazar.php option controls |
| Harness | Local, git-ignored Laravel app for manually exercising the package |