import re, sys, glob, os def minify(css: str) -> str: # 1) strip comments but protect strings out=[]; i=0; n=len(css) while i=0 else n else: out.append(c); i+=1 s="".join(out) # 2) collapse whitespace s=re.sub(r"\s+"," ", s).strip() # 3) remove spaces around punctuation (string-aware: simple heuristic ok for CSS) s=re.sub(r"\s*([{}:;,>~+])\s*", r"\1", s) s=s.replace(";}", "}") s=re.sub(r"\s+"," ", s) return s if __name__=="__main__": if len(sys.argv)>1: for f in sys.argv[1:]: print(minify(open(f,encoding="utf-8").read())) else: for f in sorted(glob.glob("theme/blog_share_*.css")): print(f, "->", len(f""))