#!/usr/bin/env python3 """ generate_sitemap.py Generates sitemap.xml for SEO. Usage: python scripts/generate_sitemap.py --domain https://yourdomain.com """ import argparse from datetime import datetime TOOLS = [ '/tools/pdf-to-word', '/tools/word-to-pdf', '/tools/compress-pdf', '/tools/image-converter', '/tools/video-to-gif', '/tools/word-counter', '/tools/text-cleaner', ] PAGES = [ '/', '/about', '/privacy', ] def generate_sitemap(domain: str) -> str: today = datetime.now().strftime('%Y-%m-%d') urls = [] # Home page — highest priority urls.append(f''' {domain}/ {today} weekly 1.0 ''') # Tool pages — high priority for tool in TOOLS: urls.append(f''' {domain}{tool} {today} monthly 0.9 ''') # Static pages — lower priority for page in PAGES[1:]: urls.append(f''' {domain}{page} {today} monthly 0.5 ''') sitemap = f''' {chr(10).join(urls)} ''' return sitemap def main(): parser = argparse.ArgumentParser(description='Generate sitemap.xml') parser.add_argument('--domain', type=str, required=True, help='Site domain (e.g. https://yourdomain.com)') parser.add_argument('--output', type=str, default='frontend/public/sitemap.xml', help='Output file path') args = parser.parse_args() domain = args.domain.rstrip('/') sitemap = generate_sitemap(domain) with open(args.output, 'w', encoding='utf-8') as f: f.write(sitemap) print(f"Sitemap generated: {args.output}") print(f"URLs: {len(TOOLS) + len(PAGES)}") if __name__ == '__main__': main()