import gradio as gr
import htmlmin
import tempfile
def minify_html(path):
# Читаем исходник
with open(path, "r", encoding="utf-8") as f:
txt = f.read()
# Очень жёсткая минификация
minified = htmlmin.minify(
txt,
remove_comments=True,
remove_empty_space=True,
reduce_empty_attributes=True,
reduce_boolean_attributes=True,
remove_optional_attribute_quotes=True,
keep_pre=False # пусть всё свалит без исключений
)
# Сохраняем и возвращаем путь
tmp = tempfile.NamedTemporaryFile(
mode="w", delete=False, suffix=".html", encoding="utf-8"
)
tmp.write(minified)
tmp.close()
return tmp.name
interface = gr.Interface(
fn=minify_html,
inputs=gr.File(label="Загрузите .html", type="filepath"),
outputs=gr.File(label="Скачать минифицированный .html"),
title="Максимальная HTML‑минификация"
)
if __name__ == "__main__":
interface.launch()