frogbob/laravel-blinky

Foundation Inky email templates in Laravel

Downloads

206

Stars

1

Version

0.0.3

Laravel Blinky

Laravel Blinky

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('[email protected]', '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).

frogbob

Author

frogbob