diff --git a/lib/Newsletter/Renderer/Blocks/Footer.php b/lib/Newsletter/Renderer/Blocks/Footer.php
index fb29ee2546..df13453a15 100644
--- a/lib/Newsletter/Renderer/Blocks/Footer.php
+++ b/lib/Newsletter/Renderer/Blocks/Footer.php
@@ -7,6 +7,9 @@ class Footer {
static function render($element) {
$element['text'] = preg_replace('/\n/', '
', $element['text']);
$element['text'] = preg_replace('/(<\/?p.*?>)/i', '', $element['text']);
+ $line_height = sprintf(
+ '%spx', StylesHelper::$line_height_multiplier * (int) $element['styles']['text']['fontSize']
+ );
$DOM_parser = new \pQuery();
$DOM = $DOM_parser->parseStr($element['text']);
if(isset($element['styles']['link'])) {
@@ -25,7 +28,7 @@ class Footer {
$template = '
';
diff --git a/lib/Newsletter/Renderer/Blocks/Header.php b/lib/Newsletter/Renderer/Blocks/Header.php
index b1beb887ee..8d5b9a9c18 100644
--- a/lib/Newsletter/Renderer/Blocks/Header.php
+++ b/lib/Newsletter/Renderer/Blocks/Header.php
@@ -6,7 +6,10 @@ use MailPoet\Newsletter\Renderer\StylesHelper;
class Header {
static function render($element) {
$element['text'] = preg_replace('/\n/', '
', $element['text']);
- $element['text'] = preg_replace('/(<\/?p.*?>)/', '', $element['text']);
+ $element['text'] = preg_replace('/(<\/?p.*?>)/i', '', $element['text']);
+ $line_height = sprintf(
+ '%spx', StylesHelper::$line_height_multiplier * (int) $element['styles']['text']['fontSize']
+ );
$DOM_parser = new \pQuery();
$DOM = $DOM_parser->parseStr($element['text']);
if(isset($element['styles']['link'])) {
@@ -25,8 +28,8 @@ class Header {
$template = '
';
return $template;
diff --git a/lib/Newsletter/Renderer/Blocks/Text.php b/lib/Newsletter/Renderer/Blocks/Text.php
index dd80c3efdd..ab7640dc44 100644
--- a/lib/Newsletter/Renderer/Blocks/Text.php
+++ b/lib/Newsletter/Renderer/Blocks/Text.php
@@ -95,7 +95,7 @@ class Text {
$line_breaks = ($next_element && preg_match('//i', $next_element->getInnerText())) ? '
' : $line_breaks;
$paragraph->html('
-
+ |
' . $contents . $line_breaks . '
|
'
@@ -117,7 +117,7 @@ class Text {
$list->class = 'mailpoet_paragraph';
$list->style .= 'padding-top:0;padding-bottom:0;margin-top:10px;';
}
- $list->style .= 'margin-bottom:10px;line-height:' . StylesHelper::$line_height . ';';
+ $list->style .= 'margin-bottom:10px;';
}
return $DOM->__toString();
}
@@ -128,7 +128,7 @@ class Text {
$headings = $DOM->query('h1, h2, h3, h4');
if(!$headings->count()) return $html;
foreach($headings as $heading) {
- $heading->style .= 'line-height:' . StylesHelper::$line_height . ';padding:0;font-style:normal;font-weight:normal;';
+ $heading->style .= 'padding:0;font-style:normal;font-weight:normal;';
}
return $DOM->__toString();
}
diff --git a/lib/Newsletter/Renderer/StylesHelper.php b/lib/Newsletter/Renderer/StylesHelper.php
index 807e343907..d1446be2cd 100644
--- a/lib/Newsletter/Renderer/StylesHelper.php
+++ b/lib/Newsletter/Renderer/StylesHelper.php
@@ -27,7 +27,8 @@ class StylesHelper {
'Trebuchet MS' => "'Trebuchet MS', 'Lucida Grande', 'Lucida Sans Unicode', 'Lucida Sans', Tahoma, sans-serif",
'Verdana' => 'Verdana, Geneva, sans-serif'
);
- static $line_height = 1.61803398875;
+ static $line_height_multiplier = 1.6;
+ static $heading_margin_multiplier = 0.3;
static $padding_width = 20;
static function getBlockStyles($element, $ignore_specific_styles = false) {
@@ -55,6 +56,7 @@ class StylesHelper {
static function setStyle($style, $selector) {
$css = $selector . '{' . PHP_EOL;
$style = self::applyHeadingMargin($style, $selector);
+ $style = self::applyLineHeight($style, $selector);
foreach($style as $attribute => $individual_style) {
$individual_style = self::applyFontFamily($attribute, $individual_style);
$css .= self::translateCSSAttribute($attribute) . ':' . $individual_style . ';' . PHP_EOL;
@@ -87,9 +89,16 @@ class StylesHelper {
}
static function applyHeadingMargin($style, $selector) {
- if (!preg_match('/h[1|2|3|4]/i', $selector)) return $style;
+ if (!preg_match('/h[1-4]/i', $selector)) return $style;
$font_size = (int) $style['fontSize'];
- $style['margin'] = sprintf('0 0 %spx 0', 0.3 * $font_size);
+ $style['margin'] = sprintf('0 0 %spx 0', self::$heading_margin_multiplier * $font_size);
+ return $style;
+ }
+
+ static function applyLineHeight($style, $selector) {
+ if (!preg_match('/mailpoet_paragraph|h[1-4]/i', $selector)) return $style;
+ $font_size = (int) $style['fontSize'];
+ $style['lineHeight'] = sprintf('%spx', self::$line_height_multiplier * $font_size);
return $style;
}
}
\ No newline at end of file
diff --git a/tests/unit/Newsletter/RendererTest.php b/tests/unit/Newsletter/RendererTest.php
index e5811b3cfb..b40596d005 100644
--- a/tests/unit/Newsletter/RendererTest.php
+++ b/tests/unit/Newsletter/RendererTest.php
@@ -210,7 +210,7 @@ class NewsletterRendererTest extends MailPoetTest {
->contains('padding-top:0;padding-bottom:0;margin-top:10px;margin-bottom:10px;');
// headings should be styled
expect($DOM('tr > td.mailpoet_text > h1', 0)->attr('style'))
- ->contains('margin:0 0 20px;padding:0;font-style:normal;font-weight:normal;');
+ ->contains('padding:0;font-style:normal;font-weight:normal;');
}
function testItRendersDivider() {