Spaces:
Sleeping
Sleeping
| import re | |
| # Extract all class names from HTML | |
| with open("index.html", encoding="utf-8") as f: | |
| html = f.read() | |
| html_classes = set() | |
| for m in re.finditer(r'class="([^"]+)"', html): | |
| for c in m.group(1).split(): | |
| html_classes.add(c) | |
| # Extract all class selectors from CSS | |
| with open("styles.css", encoding="utf-8") as f: | |
| css = f.read() | |
| css_classes = set() | |
| for m in re.finditer(r"\.([\w-]+)", css): | |
| css_classes.add(m.group(1)) | |
| # Also check app.js for dynamically-generated classes | |
| with open("app.js", encoding="utf-8") as f: | |
| js = f.read() | |
| for m in re.finditer(r'class="([^"]+)"', js): | |
| for c in m.group(1).split(): | |
| html_classes.add(c) | |
| for m in re.finditer(r"class=\"([^\"]+)\"", js): | |
| for c in m.group(1).split(): | |
| html_classes.add(c) | |
| for m in re.finditer(r'classList\.add\("([^"]+)"\)', js): | |
| html_classes.add(m.group(1)) | |
| for m in re.finditer(r"classList\.add\(\"([^\"]+)\"\)", js): | |
| html_classes.add(m.group(1)) | |
| for m in re.finditer(r'className\s*=\s*[`"\']([^`"\']+)[`"\']', js): | |
| for c in m.group(1).split(): | |
| if not c.startswith("$"): | |
| html_classes.add(c) | |
| missing = sorted(html_classes - css_classes) | |
| print("HTML/JS classes NOT found in CSS:") | |
| for c in missing: | |
| print(f" .{c}") | |
| print(f"\nTotal missing: {len(missing)}") | |