wiki/tools/slug.py
2025-08-06 13:00:32 +01:00

14 lines
432 B
Python

# tools/slug.py
import hashlib, sys, urllib.parse, pathlib, re
def slug(url: str) -> str:
parsed = urllib.parse.urlparse(url)
host = re.sub(r'\W+', '-', parsed.netloc.lower()).strip('-')
path = re.sub(r'\W+', '-', parsed.path.strip('/').lower())[:60]
h = hashlib.sha1(url.encode()).hexdigest()[:10]
return f"{host}__{path or 'root'}__{h}.html"
if __name__ == "__main__":
print(slug(sys.argv[1]))