diff --git a/src/style_reader.py b/src/style_reader.py index ec6b9cf..daa2c3e 100644 --- a/src/style_reader.py +++ b/src/style_reader.py @@ -74,22 +74,20 @@ class StyleReader: def convert_size_number(size_number: str, unit_to_replace: str, multiplier: float) -> str: size_number = float(size_number.replace(unit_to_replace, "")) * multiplier return str(size_number) + "px" + has_size = re.search(r"(\d+)([\w%]+)", size_value) values: List = size_value.split(" ") - size_number: Union[str, float] = values[0] - size_regexp = re.compile( - r"(^-*(\d*\.*\d+)%$)|(^-*(\d*\.*\d+)em$)|(^-*(\d*\.*\d+)pt$)|(^-*(\d*\.*\d+)in$)") - has_style_attrs = re.search(size_regexp, size_number) - if has_style_attrs: - if has_style_attrs.group(1): + if has_size: + size_number_idx = [i for i, value in enumerate(values) if re.search("(\d+)([\w%]+)", value)][0] + if has_size.group(2) == "%": multiplier = 5.76 if is_indent else 0.16 - values[0] = convert_size_number(size_number, "%", multiplier) - elif has_style_attrs.group(3): + values[size_number_idx] = convert_size_number(values[size_number_idx], "%", multiplier) + elif has_size.group(2) == "em": multiplier = 18 if is_indent else 16 - values[0] = convert_size_number(size_number, "em", multiplier) - elif has_style_attrs.group(5): - values[0] = convert_size_number(size_number, "pt", 4 / 3) - elif has_style_attrs.group(7): - values[0] = convert_size_number(size_number, "in", 96) + values[size_number_idx] = convert_size_number(values[size_number_idx], "em", multiplier) + elif has_size.group(2) == "pt": + values[size_number_idx] = convert_size_number(values[size_number_idx], "pt", 4 / 3) + elif has_size.group(2) == "in": + values[size_number_idx] = convert_size_number(values[size_number_idx], "in", 96) size_value = " ".join(values) return size_value