gremo / zurb-ink-bundle
创建电子邮件模板很难。此捆绑包提供帮助。
Requires
- php: ^5.6.0 || ^7.0
- lorenzo/pinky: ^1.0
- symfony/framework-bundle: ^2.8 || ^3.3 || ^4.0
- tijsverkoyen/css-to-inline-styles: ^1.5 || ^2.0
- twig/twig: ^1.23 || ^2.0
README
⛔ 警告 ⛔ 此项目现已归档。在旧版 Symfony 2/3 项目中使用它是可以的,它应该可以正常工作。新的 Symfony 项目应使用
twig/cssinliner-extra
和twig/inky-extra
(参见 内联 CSS 并使用 inky)。
创建电子邮件模板很难。此 Symfony Bundle 提供帮助。
原始捆绑包 thampe/ZurbInkBundle 已被废弃。此分支旨在提供原始项目的维护版本。我在工作中每天都在使用此捆绑包,并尊重语义版本。
你有一个好主意并想 贡献 吗?让我们这么做吧!随时可以打开一个问题。
升级
- 支持 Symfony 2 和 3 的最后一个标签是 4.0.1。之后,此项目仅支持 Symfony 4 和 5。
- 原始项目的最新标签是 2.2.6。您只能通过更改 Composer 要求使用此版本。
- 我分支的最新
2.x
标签是 2.3.0,其中包含一些错误修复。您可以通过更改 Composer 要求和内核中的捆绑包名称使用此版本。
安装
通过 Composer 安装捆绑包
composer require gremo/zurb-ink-bundle
然后在 config/bundles.php 中启用捆绑包
<?php // config/bundles.php return [ // ... Gremo\ZurbInkBundle\GremoZurbInkBundle::class => ['all' => true], // ... ];
使用方法
首先,我们需要为我们 HTML 电子邮件创建一个模板。您可以使用 Foundation for Emails 和 Inky,或者从头开始编写。
使用 Foundation for Emails 和 Inky
Foundation for Emails 是用于构建 HTML 响应式电子邮件的框架,而 Inky 是一种模板语言,它将简单的 HTML 标签转换为电子邮件所需的复杂表格 HTML。
扩展基础 Foundation for Emails 布局并覆盖 content
块
{% extends '@GremoZurbInk/foundation-emails/base.html.twig' %} {% block content %} {# Inky markup and plain HTML #} {% endblock %}
基础布局包含内联的 Foundation for Emails CSS。可以添加自定义样式,通过覆盖 stylesheets
块来实现(参见 添加样式)。
从头开始
不使用 Foundation for Emails 或 Inky 标记?扩展基础布局并覆盖 body
块
{% extends '@GremoZurbInk/base.html.twig' %} {% block body %} {# Plain HTML #} {% endblock %}
可以添加自定义样式,通过覆盖 stylesheets
块来实现(参见 添加样式)。
添加样式
电子邮件客户端通常只支持有效 HTML 的一部分,并且对 CSS 的支持不强(特别是 HTML 电子邮件中的 <head>
中的 CSS)。Yahoo、Outlook,甚至是 Gmail 都会移除 HTML 的 <head>
中包含的 CSS,因此在大多数情况下 内联 CSS 是必要的。
可以在 stylesheets
块中调用 zurb_ink_add_stylesheet
Twig 函数来添加样式表
{# ... #} {% block stylesheets %} {{ parent() }} {# Custom CSS (inlined only) #} {{ zurb_ink_add_stylesheet('css/style.css') }} {% endblock %} {# ... #}
默认情况下,这只会内联CSS。将一个真值作为第二个参数传递给 同时内联和输出CSS 到 <style>
标签中
{# ... #} {% block stylesheets %} {{ parent() }} <style type="text/css"> {# Custom CSS (both inlined and outputted) #} {{ zurb_ink_add_stylesheet('@AppBundle/Resources/public/css/style.css', true) }} </style> {% endblock %} {# ... #}