frogbob / laravel-blinky
Foundation Inky email templates in Laravel
Requires
- frogbob/inky-php: ^0.0.1
- illuminate/support: 5.*|6.*
- illuminate/view: 5.*|6.*
- symfony/css-selector: 4.*|5.*
- symfony/dom-crawler: 4.*|5.*
- tijsverkoyen/css-to-inline-styles: ^2.2
This package is auto-updated.
Last update: 2024-10-19 22:56:20 UTC
README
Inky-Compiler for Laravel blade-files
Allows you to use Foundation's Inky email templates nicely in Laravel.
It uses our InkyPHP to compile inky-language to its html-version.
Any views with a .inky.php
extension will be compiled with both Inky and Blade, allowing you to use both templating engines seamlessly together. CSS is automatically inlined so styles work in email clients that don't support external stylesheets.
Docs
Installation
Require with composer
composer require frogbob/laravel-blinky
Once installed, you'll need to register the service provider. Open config/app.php
and add to the providers
key:
Frogbob\LaravelBlinky\BlinkyServiceProvider::class
Usage and Examples
Check the Foundation for Emails docs for full usage on how to use Inky and Foundation for Emails CSS.
Create an Inky view e.g. emails/welcome.inky.php
<container> <row> <columns>Welcome, {{ $name }}</columns> </row> </container>
Use Mail
as usual in Laravel
Mail::send('emails.welcome', ['name' => $user->name], function ($m) use ($user) { $m->from('hello@app.com', 'Your Application'); $m->to($user->email, $user->name)->subject('Welcome!'); });
You can create a Blade layout to inherit from e.g. emails/layout.inky.php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta name="viewport" content="width=device-width"/> <link rel="stylesheet" href="foundation-emails.css"> </head> <body> @yield('content') </body> </html>
then
@extends('emails.layout') @section('content') <container> <row> <columns>Welcome, {{ $name }}</columns> </row> </container> @stop
CSS Inlining
<style>
and <link rel="stylesheet">
are automatically inlined.
The location of your <link rel="stylesheet">
href
is resolved to the resources/assets/css
directory, so in the example above it expects some CSS at resources/assets/css/foundation-emails.css
.
Here's a handy reference for CSS in emails: CSS Support Guide for Email Clients
Ignore CSS inlining
Maybe you want to ignore the css inlining.
Just update add following settings to config/views.php
:
'laravel_blinky' => [ 'use_inliner' => false ]
Notes
Package based on Laravel Inky created by petecoop
Unfortunately his Package seems to be abandoned and can not be installed on Laravel Versions >= 5.5.
License
See the LICENSE file for license info (it's the MIT license).