Skip to content

Releases: mjmlio/mjml

4.1.0-beta.3

31 May 09:15
Compare
Choose a tag to compare

Fixes

  • Fix issue when using fluid-on-mobile on mj-image

4.1.0-beta.1

31 May 07:59
Compare
Choose a tag to compare

Features

  • Change attributes parsing to allow special characters, notably <>, inside values (#1020, #1145, #1092)
  • .mjmlconfig is back, allowing to use custom components with the client (#660)
  • new attribute fluid-on-mobile on mj-image, that allows to set a width, but keep full-width on mobile (#263)
  • add type checking of attribute values in the validation process
  • --validate option was added on client (#1142)
  • allow empty alt attribute on mj-image (#1148)
  • add more logging to the client to help identify error causes (#1065)
  • allow global lang attribute to be specified in template for accessibility (#757)
  • Allow css-class to add multiple class names via multiple mj-class (#722)

Fixes

  • Minify no longer break MS Outlook conditional tags (#1201)
  • Repeated mj-tag's inside mj-attributes are now properly cumulated (#1194)
  • text-align on mj-button is now handled (#1188)
  • --watch option is fixed (#1171)
  • a mj-tag which is used several times inside mj-attributes will get all cumulated attributes (#1194)
  • mj-carousel image now properly fits its container (#1170)
  • mj-raw no longer counts as a column in mj-section when calculating columns' width (#1152)
  • 0 value is no longer ignored in html attributes
  • The migration process no longer replaces mj-includes with the actual content (#1141)
  • Allowed Attributes in mj-spacer added to match documentation (#1102)
  • fix travis, added some tests & much linting

Documentation

  • Removed remaining references to mj-container (#1079)

v4.0.5

26 Apr 10:20
Compare
Choose a tag to compare

Fixes

  • Fix issue with mj-social-element when no name is specified (#1169 )
  • Fix issue with mj-social when using inline styles, thanks to @Br1mbelle (#1160)
  • Fix mj-image adding the unit inside height attribute on img
  • Fix issue with file paths without extensions considered as directories (#1158)

4.0.4 Not Found Edition

24 Apr 11:03
7aafb19
Compare
Choose a tag to compare

Features

  • New height attribute on mj-social & mj-social-element (#1018)
  • width now supports pixels on mj-divider (#1084)
  • New --verbose option in MJML CLI for verbose logging and debugging

Fixes

  • MJML-generated emails are now responsive in GMX & WEB.DE email clients too (#919), thanks to @vielhuber for the fix
  • Fix mj-font not importing a font when it was used in mj-style inline="inline" only (#703)
  • Fix attributes on mj-table not being passed correctly (#1086, #1135)
  • Fix mj-social-element lost default href ([[SHORT_PERMALINK]])
  • Fix body which was not receiving styles inlined with mj-style inline="inline" again
  • Fix the migration process for mj-link into mj-navbar-link (#1124)
  • Fix the override of a mj-social-element default background-color for predefined networks (#1103)
  • Fix bug on Outlook Android not respecting the color of the link in mj-button (#672)

v4.0.3

23 Mar 17:10
Compare
Choose a tag to compare

Fixes

  • Fix border-radius on mj-image
  • Fix srcset on mj-image
  • Fix padding on navbar
  • Fix vertical-align on mj-column
  • Fix pxpx in Outlook comments for mj-text

v4.0.2

15 Mar 13:41
Compare
Choose a tag to compare

Fixes

  • mj-social inner-padding is now inherited by mj-social-elements #1024
  • mj-all no longer overrides default value in mj-attributes #1042
  • Compiling multiples files with an output directory should now output each file separately in the directory #1014
  • srcset on mj-image now works as expected
  • alt attribute on mj-image now works as expected thanks to @garmeeh
  • mj-group attributes are now working properly #1022
  • Having an mj-body inside mj-head doesn't break the rendering anymore #1027
  • Vertical-align is now working with Outlook #1017
  • mj-social-element & mj-button now support the target attribute

+ A lot of fixes in the doc with ❤️from the community

4.0.0

02 Mar 11:00
Compare
Choose a tag to compare

You've been waiting for it, it's here. A better, stronger, faster MJML 🎉

Features

  • You can now force the desktop layout on Outlook.com instead of the mobile fallback by setting the owa attribute on the mjml tag to desktop: <mjml owa="desktop"> (set to mobile by default)
  • mj-column now supports the padding attribute (which enables to create gutters too) (documentation)
  • You can now customize the default breakpoint (documentation)
  • Validation now supports mj-include and validates through included files (#651)
  • New options for the CLI and in NodeJS (documentation)
  • mjml-core can now receive a skeleton function to redefine the default skeleton (default HTML generated by a MJML boilerplate)
  • mjml-cli --watch now supports multiple files (we need heavy testing here with nested includes)
  • renderChildren can now render JSON children as XML for renderMJML function with rawXML option (#914)
  • Creating custom components now support this.renderMJML to render MJML inside a component (just use the regular MJML syntax inside your custom component)
  • this.htmlAttributes in a custom component now detects if you pass a style key or an object

Fixes

  • mj-raw doesn't alter the xml/html content anymore (such as auto-closing tags) and is added in the HTML output where it is expected (#485 & #600)
  • Full-width sections are now correctly displayed in Outlook desktop (#284)
  • mj-column now properly convert % into px for Outlook comments
  • mjml -V should now output the right version ( cli + core )
  • Attributes values are not wrongly encoded anymore (#664))

Breaking changes

  • MJML doesn't use React anymore, meaning custom components created for a previous version of MJML don't work anymore
  • mj-container is deprecated, its attributes should now be applied to mj-body directly
  • mj-social has a new syntax (documentation)
  • mj-hero has a new syntax and mj-hero-content is deprecated. Content should be added inside mj-herodirectly (documentation)
  • mj-navbar has a new syntax (documentation)
  • mjml-cli has been totally redone from scratch

4.0.0-beta.2

07 Feb 14:54
Compare
Choose a tag to compare

Feature

  • renderChildren can now render JSON children as XML for renderMJML function with rawXML option (#914)
  • raw element should now works as expected, they're no more wrapped in tr/td inside mj-column (#935)
  • Validation now supports mj-include and validates through included files (#651)
  • Documented available options for the CLI and in NodeJS in the readme (#845)

Fixes

  • Fix includes issues introduced in beta.1 (#970, #986)
  • Fix encoding in MJML attributes (#664 )
  • Fix validation issues (#963)
  • Fix empty default background-color attribute in body (#964)
  • Fix the missing ability to add css-class on mj-link (#892)
  • Missing viewport meta has been added back (#967)
  • Fix mj-social attributes for custom networks (#982)

4.0.0-beta.1

23 Jan 15:58
Compare
Choose a tag to compare

The first beta for MJML v4 is here. This version is stable enough so you can start using it.

Install with npm install mjml@next.

You don't need to manually update your templates, they are compatible with MJML v4 out of the box (including this beta). To render your templates, you can:

  • mjml <yourfile>.mjml -o, the engine will detect if it's using the v3 syntax, migrate it to the v4 syntax, and render it to HTML with the v4 engine. If it's already written in the v4 syntax, it will simply render it to HTML
  • mjml -m <original-file>.mjml -o <migrated-file>.mjml. This will simply migrate <original-file>.mjml written with the v3 syntax to <migrated-file>.mjml written in the v4 syntax, so you can start using the v4 syntax easily.

To learn about the changelog, breaking changes and new features, read this article (no breaking change since the last alpha).

4.0.0-alpha.5

14 Nov 15:40
Compare
Choose a tag to compare

Breaking changes

  • mj-social now has a new syntax (see here)
  • mj-hero-content no longer exists (mj-hero now behaves like a mj-section with a single mj-column)
  • the customComponent API is a release candidate. Please submit feedback here: #880

Features

  • mjml-core can now receive a skeleton function to redefine the default skeleton (default HTML generated by a MJML boilerplate)
  • mjml-cli has been totally redone from scratch
  • mjml-cli --watch now supports multiple files (we need heavy testing here with nested includes)
  • mj-hero is now supported in MJML 4
  • Creating custom components now support this.renderMJML to render MJML inside a component (just use the regular MJML syntax inside your custom component)
  • this.htmlAttributes in a custom component now detects if you pass a style key or an object
  • If you want to display the desktop layout on Outlook.com instead of the mobile fallback, you can automatically do this with the owa attribute on the mjml tag: <mjml owa="desktop"> (set to mobile by default at the moment). It should be the only client specific attribute in MJML

Fixes

  • mjml -V should now output the right version ( cli + core )
  • mj-column now properly convert % into px for Outlook comments
  • mj-group should now behave as in MJML 3.3.5 👍

Final notes :

The good :

  • 3 components need to be ported back in MJML4 👍 then we can flag MJML4 as a beta product
  • MJML 3.3.5 will no longer be master and will be a legacy branch like 1.X and 2.X
  • New contributions from the community ! Thanks to @ogonkov & @dhcdata for opening PRs

The bad :
We're kind of late on schedule, type system took too much time and will be delayed for MJML 4.1. The type system will check the format of any mj-attribute and provide useful debug tips when the unit used is the wrong one.