import os from datetime import datetime # Настройки DOMAIN = "https://radionica3d.me" LANGUAGES = ["en", "me", "ru", "ua"] # Список публичных страниц (без учета языка) PAGES = [ "", "portfolio", "about", "blog", "contact", "help", "guidelines", "privacy", "terms", "careers" ] def generate_sitemap(): xml = [''] xml.append('') # Добавляем каждую страницу для каждого языка for page in PAGES: for lang in LANGUAGES: # Формируем путь: /lang/page (если page пустая, то просто /lang/) path = f"/{lang}/{page}" if page else f"/{lang}/" # Приоритеты if page == "": priority = "1.0" freq = "weekly" elif page in ["portfolio", "blog"]: priority = "0.8" freq = "daily" else: priority = "0.5" freq = "monthly" url = f"{DOMAIN}{path}" xml.append(' ') xml.append(f' {url}') xml.append(f' {datetime.now().strftime("%Y-%m-%d")}') xml.append(f' {freq}') xml.append(f' {priority}') # Добавляем ссылки на альтернативные языковые версии for alt_lang in LANGUAGES: alt_path = f"/{alt_lang}/{page}" if page else f"/{alt_lang}/" xml.append(f' ') # x-default (пусть будет ME как основной или просто без префикса, но у нас роутер всегда редиректит) # В нашем случае x-default укажем на ME xml.append(f' ') xml.append(' ') xml.append('') content = "\n".join(xml) # Путь к public/sitemap.xml # Скрипт лежит в scripts/, так что идем на уровень выше root_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) sitemap_path = os.path.join(root_dir, "public", "sitemap.xml") with open(sitemap_path, "w", encoding="utf-8") as f: f.write(content) print(f"Sitemap generated with {len(PAGES) * len(LANGUAGES)} URLs at {sitemap_path}") if __name__ == "__main__": generate_sitemap()