#!/usr/bin/env python3 """ Verplaatst alle afbeeldingen naar de /images/ folder en past HTML/CSS verwijzingen aan naar de nieuwe paden. """ import os import shutil import re from pathlib import Path BASE_DIR = Path("/home/anisy/projects/websites/correctvloerverwarming/correctvloerverwarming.nl") IMAGES_DIR = BASE_DIR / "images" IMAGES_DIR.mkdir(exist_ok=True) IMAGE_EXTENSIONS = {".jpg", ".jpeg", ".png", ".gif", ".webp", ".svg", ".ico", ".bmp"} def collect_images(): """Verzamel alle afbeeldingen en verplaats ze naar /images/.""" moved = 0 mapping = {} # old_relative_path -> new_relative_path for img_path in BASE_DIR.rglob("*"): if img_path.suffix.lower() in IMAGE_EXTENSIONS and img_path.is_file(): # Sla over als al in images/ staat if img_path.parent == IMAGES_DIR: continue dest = IMAGES_DIR / img_path.name # Voorkom naamconflicten if dest.exists(): stem = img_path.stem suffix = img_path.suffix counter = 1 while dest.exists(): dest = IMAGES_DIR / f"{stem}_{counter}{suffix}" counter += 1 old_rel = str(img_path.relative_to(BASE_DIR)) new_rel = str(dest.relative_to(BASE_DIR)) mapping[old_rel] = new_rel shutil.copy2(img_path, dest) moved += 1 print(f" Gekopieerd: {old_rel} -> {new_rel}") print(f"\nTotaal {moved} afbeeldingen naar images/ gekopieerd.") return mapping def update_html_files(mapping): """Pas HTML bestanden aan met nieuwe afbeelding paden.""" updated = 0 for html_path in BASE_DIR.rglob("*.html"): try: content = html_path.read_text(encoding="utf-8", errors="ignore") original = content for old_path, new_path in mapping.items(): filename = Path(old_path).name # Vervang verwijzingen naar de afbeelding op basis van bestandsnaam old_name_escaped = re.escape(filename) # Vervang src="...filename..." en href="...filename..." content = re.sub( r'(src|href)=["\']([^"\']*/)?' + old_name_escaped + r'["\']', lambda m: f'{m.group(1)}="images/{filename}"', content ) if content != original: html_path.write_text(content, encoding="utf-8") updated += 1 except Exception as e: print(f" Fout bij {html_path}: {e}") print(f"{updated} HTML bestanden bijgewerkt.") def update_css_files(mapping): """Pas CSS bestanden aan met nieuwe afbeelding paden.""" updated = 0 for css_path in BASE_DIR.rglob("*.css"): try: content = css_path.read_text(encoding="utf-8", errors="ignore") original = content for old_path, new_path in mapping.items(): filename = Path(old_path).name old_name_escaped = re.escape(filename) # Vervang url(...) verwijzingen content = re.sub( r'url\(["\']?([^"\'()]*/)?' + old_name_escaped + r'["\']?\)', f'url("../images/{filename}")', content ) if content != original: css_path.write_text(content, encoding="utf-8") updated += 1 except Exception as e: print(f" Fout bij {css_path}: {e}") print(f"{updated} CSS bestanden bijgewerkt.") if __name__ == "__main__": print("=== Afbeeldingen organiseren ===\n") mapping = collect_images() print("\n=== HTML bestanden bijwerken ===") update_html_files(mapping) print("\n=== CSS bestanden bijwerken ===") update_css_files(mapping) print("\nKlaar!")