Path: blob/master/utils/sitemap.py
4918 views
from pathlib import Path12import git34HOME = Path('./labml_nn')5REPO = git.Repo('.')678def collect(path: Path):9if path.is_file():10try:11commit = next(iter(REPO.iter_commits(paths=path)))12except StopIteration:13return []1415html = path.relative_to(HOME)16if html.suffix not in {'.py'}:17return []1819if html.stem == '__init__':20html = html.parent / 'index.html'21else:22html = html.parent / f'{html.stem}.html'2324return [{'path': str(html), 'date': str(commit.committed_datetime.date())}]2526urls = []27for f in path.iterdir():28urls += collect(f)2930return urls313233def main():34urls = []35for f in HOME.iterdir():36urls += collect(f)3738urls = [f'''39<url>40<loc>https://nn.labml.ai/{u['path']}</loc>41<lastmod>{u['date']}T16:30:00+00:00</lastmod>42<priority>1.00</priority>43</url>44''' for u in urls]4546urls = '\n'.join(urls)47xml = f'''48<?xml version="1.0" encoding="UTF-8"?>49<urlset50xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"51xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"52xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.953http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd">54{urls}55</urlset>56'''5758with open(str(HOME.parent / 'docs' / 'sitemap.xml'), 'w') as f:59f.write(xml)606162if __name__ == '__main__':63main()646566