more formatting

This commit is contained in:
truePhilipp committed 2024-05-05 20:48:28 +02:00
1 parent 42715de295
commit b042a297b5
5 files changed
+55 -5

No files matched your search

@@ -0,0 +1,34 @@
from bs4 import BeautifulSoup
def parse_style(style: str) -> dict:
result = {}
key_buffer = ""
buffer = ""
for char in style:
if char == ":" and not key_buffer:
key_buffer = buffer
buffer = ""
elif char == ";":
result[key_buffer] = buffer
key_buffer = ""
buffer = ""
elif char != " ":
buffer += char
if key_buffer and buffer:
result[key_buffer] = buffer
return result
def style_to_string(style: dict) -> str:
return ";".join([f"{name}:{value}" for name, value in style.items()])
def format(soup: BeautifulSoup) -> None:
for element in soup.find_all(attrs={"dj-style": True}):
style = parse_style(element["style"])
dj_style = element.get("dj-style").replace(""", '"')
for name, value, value_type in [declaration.split(";") for declaration in dj_style.split("~") if declaration]:
style[name] = f"{{{{ {value} }}}}{value_type}"
element["style"] = style_to_string(style)
del element.attrs["dj-style"]