diff --git a/src/html_presets_processor.py b/src/html_presets_processor.py index cfffe7b..1e5df37 100644 --- a/src/html_presets_processor.py +++ b/src/html_presets_processor.py @@ -24,7 +24,7 @@ class HtmlPresetsProcessor: @staticmethod def _wrap_tag(**kwargs): kwargs["tag"].wrap(kwargs["body_tag"].new_tag( - kwargs["rule"]["tag_to_wrap"])) + kwargs["rule"]["tag_to_wrap"]["name"])) @staticmethod def set_attrs_to_parent(tag, parent_tag): @@ -98,24 +98,31 @@ class HtmlPresetsProcessor: @staticmethod def _replace_tag(**kwargs): - tag_to_replace: str = kwargs["rule"]["tag_to_replace"] + tag_to_replace: str = kwargs["rule"]["tag_to_replace"]["name"] kwargs["tag"].name = tag_to_replace + if kwargs["rule"]["tag_to_replace"].get("attrs"): + dict_attributes = {attr["name"]: attr["value"] + for attr in kwargs["rule"]["tag_to_replace"]["attrs"]} + kwargs["tag"].attrs = dict_attributes @staticmethod def _replace_attr(**kwargs): - attr, attr_value =\ - kwargs["rule"]["attr"]["name"], kwargs["rule"]["attr"]["value"] + attr = kwargs["rule"]["condition"]["attrs"][0] + attr_name, attr_value =\ + attr["name"], attr["value"] attr_to_replace, attr_value_to_replace =\ kwargs["rule"]["attr_to_replace"]["name"], kwargs["rule"]["attr_to_replace"]["value"] if attr_to_replace: - kwargs["tag"][attr_to_replace] = kwargs["tag"][attr] + kwargs["tag"][attr_to_replace] = kwargs["tag"][attr_name] \ + if kwargs["tag"].get(attr_name)\ + else "" if attr_value_to_replace: kwargs["tag"].attrs[attr_to_replace] = attr_value_to_replace - del kwargs["tag"][attr] + del kwargs["tag"][attr_name] elif attr_value_to_replace: - kwargs["tag"].attrs[attr] = attr_value_to_replace - elif attr: - del kwargs["tag"][attr] + kwargs["tag"].attrs[attr_name] = attr_value_to_replace + elif attr_name: + del kwargs["tag"][attr_name] def _unwrap_tag(self, **kwargs): if kwargs["tag"].parent: @@ -124,8 +131,11 @@ class HtmlPresetsProcessor: @staticmethod def _insert_tag(**kwargs): + dict_attributes = {attr["name"]: attr["value"] + for attr in kwargs["rule"]["tag_to_insert"]["attrs"]} tag_to_insert = \ - kwargs["body_tag"].new_tag(kwargs["rule"]["tag_to_insert"]) + kwargs["body_tag"].new_tag( + kwargs["rule"]["tag_to_insert"]["name"], attrs=dict_attributes) # insert all items that was in tag to subtag and remove from tag for content in reversed(kwargs["tag"].contents): tag_to_insert.insert(0, content.extract())