jdrouet / mrml

Implementation of mjml in rust
MIT License
330 stars 19 forks source link

fix(mrml-core): apply mj-attributes inside mj-include tags #377

Closed crestonbunch closed 5 months ago

crestonbunch commented 5 months ago

I noticed a bug that seems to differ from the canonical MJML implementation. This PR implements one possible fix. I tried to make the change as minimally invasive as possible, but I'm open to ideas to clean this up if desired.

Bug description: Any <mj-attributes> tags loaded inside an <mj-include> tag are ignored. See the additional test case in the PR changes for an example.

Change description: We update mj_head/render.rs to scan nested attributes inside <mj-include> children. To reduce repeated code, I refactored the fold() bodies into helper functions, but they are otherwise unchanged.

I added a test case that fails on the current main branch.

Let me know what you think!

crestonbunch commented 5 months ago

cc @jdrouet, let me know what you think; I'm not sure what steps to follow after opening this PR.

jdrouet commented 5 months ago

I updated your PR and merged it. Closing this one 😉 Thanks a lot for your work!