trupedia / laravel-blade-haml
Wraps MtHaml for ease use in Laravel 5 with Blade syntax style
This package's canonical repository appears to be gone and the package has been frozen as a result. Email us for help if needed.
Installs: 3 833
Dependents: 0
Suggesters: 0
Security: 0
Stars: 15
Watchers: 1
Forks: 1
pkg:composer/trupedia/laravel-blade-haml
Requires
- php: >=5.3.0
- illuminate/support: >=5.0
- illuminate/view: >=5.0
- mthaml/mthaml: ~1.3
This package is not auto-updated.
Last update: 2024-01-20 13:31:40 UTC
README
A small package that adds support for compiling Blade Style Haml templates to Laravel 5 via MtHaml.
Installation
-
Add it to your composer.json (
"trupedia/laravel-blade-haml": "~1.0") and do a composer install. -
Add the service provider to your app.php config file providers:
'trupedia\LaravelBladeHaml\LaravelBladeHamlServiceProvider',
Configuration
You can set MtHaml environment, options, and filters manually. To do so, publish the config file with php artisan vendor:publish and edit it at /config/blade-haml.php. For instance, to turn off auto-escaping:
'mthaml' => array(
'environment' => 'php',
'options' => array(
'enable_escaper' => false,
),
'filters' => array(),
),
Usage
Laravel-Blade-Haml registers the ".haml.php" extension with Laravel and forwards compile requests on to MtHaml. It compiles your Haml templates in the same way as Blade templates; the compiled template is put in app/storage/views. Thus, you don't suffer compile times on every page load.
In other words, just put your Haml files in the regular resources/views directory and name them like "resources/views/home/whatever.haml.php". You reference them in Laravel like normal: view('home.whatever').
The Haml view files can work side-by-side with regular PHP views.
The Blade Syntax for a sample login view:
@extends('layouts.master')
@section('content')
<div class="row">
<div class="col-md-4 col-md-offset-4">
@include('layouts.partials.errors')
<h1>Sign In!</h1>
{!! Form::open(['route' => 'login']) !!}
<div class="form-group">
{!! Form::label('email', 'E-Mail:') !!}
{!! Form::text('email', null, ['class' => 'form-control']) !!}
</div>
<div class="form-group">
{!! Form::label('password', 'Password:') !!}
{!! Form::password('password', ['class' => 'form-control']) !!}
</div>
<div class="form-group">
{!! Form::submit('Sign In', ['class' => 'btn btn-primary']) !!}
</div>
{!! Form::close() !!}
</div>
</div>
@stop
becomes now with Laravel-Blade-Haml:
@extends('layouts.master')
@section('content')
.row
.col-md-4.col-md-offset-4
@include('layouts.partials.errors')
%h1 Sign In!
{!! Form::open(['route' => 'login']) !!}
.form-group
{!! Form::label('email', 'E-Mail:') !!}
{!! Form::text('email', null, ['class' => 'form-control']) !!}
.form-group
{!! Form::label('password', 'Password:') !!}
{!! Form::password('password', ['class' => 'form-control']) !!}
.form-group
{!! Form::submit('Sign In', ['class' => 'btn btn-primary']) !!}
{!! Form::close() !!}
@stop
pretty neat, isn't it? All the good Blade stuff is still available inside your new template files.
Contributions + Credits
Thanks Robert Reinhard for the initial source-code.
Release notes
- 1.0 - Initial Release