diff --git a/src/html_presets_processor.py b/src/html_presets_processor.py
index eeba3ca..cfffe7b 100644
--- a/src/html_presets_processor.py
+++ b/src/html_presets_processor.py
@@ -27,8 +27,14 @@ class HtmlPresetsProcessor:
kwargs["rule"]["tag_to_wrap"]))
@staticmethod
- def _decompose_tag(**kwargs):
- kwargs["tag"].parent.attrs.update(kwargs["tag"].attrs)
+ def set_attrs_to_parent(tag, parent_tag):
+ for key in tag.attrs:
+ if key not in parent_tag.attrs:
+ parent_tag.attrs[key] = tag.attrs[key]
+
+ def _decompose_tag(self, **kwargs):
+ if kwargs["tag"].parent:
+ self.set_attrs_to_parent(kwargs["tag"], kwargs["tag"].parent)
kwargs["tag"].decompose()
@staticmethod
@@ -111,9 +117,9 @@ class HtmlPresetsProcessor:
elif attr:
del kwargs["tag"][attr]
- @staticmethod
- def _unwrap_tag(**kwargs):
- kwargs["tag"].parent.attrs.update(kwargs["tag"].attrs)
+ def _unwrap_tag(self, **kwargs):
+ if kwargs["tag"].parent:
+ self.set_attrs_to_parent(kwargs["tag"], kwargs["tag"].parent)
kwargs["tag"].unwrap()
@staticmethod