92 lines
3.0 KiB
Python
92 lines
3.0 KiB
Python
#!/usr/bin/env python3
|
|
"""
|
|
Zet absolute URLs (https://correctvloerverwarming.nl/...) om naar relatieve paden
|
|
in alle HTML en CSS bestanden.
|
|
"""
|
|
|
|
import os
|
|
import re
|
|
from pathlib import Path
|
|
|
|
BASE_DIR = Path("/home/anisy/projects/websites/correctvloerverwarming/correctvloerverwarming.nl")
|
|
|
|
DOMAINS = [
|
|
"https://www.correctvloerverwarming.nl",
|
|
"http://www.correctvloerverwarming.nl",
|
|
"https://correctvloerverwarming.nl",
|
|
"http://correctvloerverwarming.nl",
|
|
]
|
|
|
|
|
|
def get_relative_prefix(html_file: Path) -> str:
|
|
"""Bereken het relatieve pad terug naar de root."""
|
|
depth = len(html_file.relative_to(BASE_DIR).parts) - 1
|
|
if depth == 0:
|
|
return "./"
|
|
return "../" * depth
|
|
|
|
|
|
def fix_html_file(html_path: Path) -> bool:
|
|
"""Vervang absolute URLs door relatieve paden in een HTML bestand."""
|
|
try:
|
|
content = html_path.read_text(encoding="utf-8", errors="ignore")
|
|
original = content
|
|
prefix = get_relative_prefix(html_path)
|
|
|
|
for domain in DOMAINS:
|
|
# href="https://domain.nl/pad" -> href="./pad"
|
|
content = content.replace(f'href="{domain}/', f'href="{prefix}')
|
|
content = content.replace(f"href='{domain}/", f"href='{prefix}")
|
|
# src="https://domain.nl/pad" -> src="./pad"
|
|
content = content.replace(f'src="{domain}/', f'src="{prefix}')
|
|
content = content.replace(f"src='{domain}/", f"src='{prefix}")
|
|
# action="https://domain.nl/pad" -> action="./pad"
|
|
content = content.replace(f'action="{domain}/', f'action="{prefix}')
|
|
# content="https://domain.nl" (meta canonical etc.)
|
|
content = content.replace(f'content="{domain}/', f'content="{prefix}')
|
|
|
|
if content != original:
|
|
html_path.write_text(content, encoding="utf-8")
|
|
return True
|
|
except Exception as e:
|
|
print(f" Fout bij {html_path}: {e}")
|
|
return False
|
|
|
|
|
|
def fix_css_file(css_path: Path) -> bool:
|
|
"""Vervang absolute URLs in CSS bestanden."""
|
|
try:
|
|
content = css_path.read_text(encoding="utf-8", errors="ignore")
|
|
original = content
|
|
|
|
for domain in DOMAINS:
|
|
content = content.replace(f"url('{domain}/", "url('../")
|
|
content = content.replace(f'url("{domain}/', 'url("../')
|
|
content = content.replace(f"url({domain}/", "url(../")
|
|
|
|
if content != original:
|
|
css_path.write_text(content, encoding="utf-8")
|
|
return True
|
|
except Exception as e:
|
|
print(f" Fout bij {css_path}: {e}")
|
|
return False
|
|
|
|
|
|
if __name__ == "__main__":
|
|
print("=== Absolute links omzetten naar relatief ===\n")
|
|
|
|
html_updated = 0
|
|
for html_path in BASE_DIR.rglob("*.html"):
|
|
if fix_html_file(html_path):
|
|
html_updated += 1
|
|
|
|
print(f"HTML: {html_updated} bestanden bijgewerkt.")
|
|
|
|
css_updated = 0
|
|
for css_path in BASE_DIR.rglob("*.css"):
|
|
if fix_css_file(css_path):
|
|
css_updated += 1
|
|
|
|
print(f"CSS: {css_updated} bestanden bijgewerkt.")
|
|
print("\nKlaar!")
|