Releases: FelixSchwarz/mjml-python
v0.12.0
- generated HTML should match mjml 4.18.0
- comments in mjml will be present in the generated html by default now to match the reference implementation
- various fixes to match HTML generated the JS mjml, found by htmlcompare 0.4
- added type hints (contributed by @xoudini)
- correctly render fractional width for mj-column (reported by @SinnySupernova)
- support Python 3.14, drop support for Python 3.6, 3.7 and 3.8
v0.11.1 (type stubs and outlook fixes)
This release contains mostly bug fixes related to Outlook-specific rendering (courtesy of @bvallant) and python typing stubs (by @xoudini).
- fix incorrectly closed <v:rect> tag for Outlook (Bernhard Vallant)
- fix order of <v:fill> and <v:textbox> tags for mj-section with background in outlook (Bernhard Vallant)
- add typing stubs for public interface (Dan Lindholm)
- declare support for Python 3.13
- accept also
css_inline >= 0.14
0.11.0 - CVE-2024-26151
This is a release which fixes an important security issue without additional features.
All users of 0.10.0 are encouraged to upgrade as soon as possible. If you are using mjml-python 0.9.1 or earlier, you are not affected.
Learn more in our security advisory: Potentially untrusted input is rendered as HTML in final output (GHSA-578p-fxmm-6229) (CVE-2024-26151). Credits go to @sh-at-cs for discovering the issue.
Other than that, only a few internal changes like the replacement of the homegrown AttrDict with DotMap as well as switching the tests to use the well-known pytest.
0.10.0
This release uses a new version of css-inline for improved performance. Unfortunately css-inline >= 0.11 is incompatible with Python 3.6. Most changes were authored by @caseyjhol.
- fix CSS child selectors
- disable loading remote stylesheets when inlining CSS
- require css-inline 0.11.x for performance improvements
- drop css-inline Python 3.6 support
- fix exception when processing an
mj-sectionwithbackground-size(reported by @thomashandorf)
0.9.1
0.9.0
We are excited to announce the release of version 0.9! This release marks a significant milestone as it includes implementations for all MJML components found in the NodeJS version. This was made possible by the relentless work of Casey Holzer (@caseyjhol). He also contributed support for custom components.
Changes (by Casey Holzer)
- add mjml-accordion, mjml-accordion-element, mjml-accordion-text, mjml-accordion-title, mjml-carousel, mjml-head-breakpoint, mjml-hero, mjml-navbar, mjml-navbar-link, mjml-social, mjml-spacer, and mjml-wrapper components
- add support for custom components
- add support for full-width attribute to mj-section
I think this a good time to drop the "-stub" suffix so I renamed the project to just "mjml-python".
0.8.0
This is a significant release which fixes quite a few annoying issues with HTML inside <mj-text> (e.g. stripped white space, html entities).
- parse MJML using BeautifulSoup4 which fixes several issues with HTML inside
mj-text(e.g. HTML entities, missing white space) (Casey Holzer) - prevent exception when trying to set padding for
<mj-column>(reported by Peter Coles) - fix setting
widthattribute formj-button(spotted by Michael Romanenko) - support css inlining (via
inlineStyle) if "css_inline" is installed (Casey Holzer)
New Contributors:
0.7.0
- generate same HTML output as mjml 4.12.0
- fix incomplete implementation of
backgroundattributes for<mj-section>, with contribution from Benjamin Pott (@benjipott)
0.6.2
- fix non-ascii content in included files on Windows
0.6.1
- mj-button: prevent target="_blank" for mailto links (Thunderbird)
- fix
<mj-include> - update test suite to check against html generated by mjml 4.9.0 and
port required fixes to get the test suite passing. - fix
<mj-image>withhrefattribute