mjml-rb 0.2.29 → 0.2.30

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 5cd5e68ad11e8256180f4be4f8d00e86f647327695c9391904eb4ddd31ddc7ad
4
- data.tar.gz: a7f4f27a8db1ab489a3ae5d2e4e52f556fed859cfc5c8d33beb6ea29a581e6e9
3
+ metadata.gz: 60152ad5a5d0db48c258f49e6f8b0f3af02fafc7a792b2eb5466a9ea9a2e5648
4
+ data.tar.gz: 39e06f0b1987f17f75a03a18b20e35926a46972d8a128be50dc903d52643629b
5
5
  SHA512:
6
- metadata.gz: 34a43b990be0b2cb7176e8c4736f17a79adc327a67ab91bab09b80af9d5776ad908f18bfba5cf41cdb7ea7ff5a40ea3e2b1cfd088eb3db99e23eab8132023ade
7
- data.tar.gz: c5dd780d2529994abcc89680862d29dcba174fa6b085e5d0c3fa588ab0048899c010d9ce4ff9565289459d95c86004ffa6bd328920782746ce94241433e4bc9e
6
+ metadata.gz: 68d49bbb4d009ab6438e7a768f9fcc83c585d9bb7b95ab7966eed475cfea825226adb5af16c86f6a457513b3abd46f4c3b8db3ff32fcc881cdc5a7c5d2993fea
7
+ data.tar.gz: 104af894e026ca52a8132f8797ed57d9541da6ebe47f38cc24d61a67daf248df81f972fb90f9d5fb51eba3cc4294a428621db8f287fa0fd2a781a1de6de7a95c
@@ -1,5 +1,21 @@
1
+ require "set"
2
+
1
3
  module MjmlRb
2
4
  module Dependencies
5
+ # Components whose content is treated as raw HTML in NPM (endingTag = true).
6
+ # The parser preserves their inner markup as-is; the validator skips child
7
+ # element checks because REXML structurally parses what NPM treats as text.
8
+ ENDING_TAGS = Set.new(%w[
9
+ mj-accordion-text
10
+ mj-accordion-title
11
+ mj-button
12
+ mj-carousel-image
13
+ mj-navbar-link
14
+ mj-raw
15
+ mj-table
16
+ mj-text
17
+ ]).freeze
18
+
3
19
  RULES = {
4
20
  "mjml" => ["mj-body", "mj-head", "mj-raw"],
5
21
  "mj-accordion" => ["mj-accordion-element", "mj-raw"],
@@ -53,14 +69,14 @@ module MjmlRb
53
69
  ],
54
70
  "mj-image" => [],
55
71
  "mj-navbar" => ["mj-navbar-link", "mj-raw"],
56
- "mj-raw" => [/^(?!mj-).+/],
72
+ "mj-raw" => [],
57
73
  "mj-section" => ["mj-column", "mj-group", "mj-raw"],
58
74
  "mj-selector" => ["mj-html-attribute"],
59
75
  "mj-social" => ["mj-social-element", "mj-raw"],
60
76
  "mj-social-element" => [],
61
77
  "mj-spacer" => [],
62
- "mj-table" => [/^(?!mj-).+/],
63
- "mj-text" => [/^(?!mj-).+/],
78
+ "mj-table" => [],
79
+ "mj-text" => [],
64
80
  "mj-wrapper" => ["mj-hero", "mj-raw", "mj-section"]
65
81
  }.freeze
66
82
  end
@@ -52,6 +52,10 @@ module MjmlRb
52
52
  end
53
53
 
54
54
  def validate_allowed_children(node, errors)
55
+ # Ending-tag components treat content as raw HTML; REXML still parses
56
+ # children structurally, so skip child validation for those tags.
57
+ return if Dependencies::ENDING_TAGS.include?(node.tag_name)
58
+
55
59
  allowed = Dependencies::RULES[node.tag_name]
56
60
  return unless allowed
57
61
 
@@ -1,3 +1,3 @@
1
1
  module MjmlRb
2
- VERSION = "0.2.29".freeze
2
+ VERSION = "0.2.30".freeze
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mjml-rb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.29
4
+ version: 0.2.30
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrei Andriichuk