119 lines
3.8 KiB
Python
119 lines
3.8 KiB
Python
#!/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!")
|