import os
import re

html_files = [f for f in os.listdir('.') if f.endswith('.html')]

updated_count = 0
for fname in html_files:
    with open(fname, 'r', encoding='utf-8') as f:
        c = f.read()

    # Desktop Nav check
    # <a href="news.html">News</a> -> insert <a href="publications.html">Publications</a> before it if not already there
    desktop_nav_match = re.search(r'(<nav class="fs-desktop-nav">)(.*?)(</nav>)', c, re.DOTALL)
    if desktop_nav_match:
        nav_content = desktop_nav_match.group(2)
        if 'publications.html' not in nav_content:
            active_class = ' class="active"' if fname == 'publications.html' else ''
            new_nav_content = nav_content.replace(
                '<a href="news.html">News</a>',
                f'<a href="publications.html"{active_class}>Publications</a>\n      <a href="news.html">News</a>'
            )
            c = c[:desktop_nav_match.start(2)] + new_nav_content + c[desktop_nav_match.end(2):]

    # Mobile Nav check
    mobile_nav_match = re.search(r'(<nav class="fs-mobile-nav"[^>]*>)(.*?)(</nav>)', c, re.DOTALL)
    if mobile_nav_match:
        mob_content = mobile_nav_match.group(2)
        if 'publications.html' not in mob_content:
            new_mob_content = mob_content.replace(
                '<a href="news.html">News</a>',
                '<a href="publications.html">Publications</a>\n  <a href="news.html">News</a>'
            )
            c = c[:mobile_nav_match.start(2)] + new_mob_content + c[mobile_nav_match.end(2):]

    with open(fname, 'w', encoding='utf-8') as f:
        f.write(c)
    updated_count += 1

print(f"Verified & updated nav links across {updated_count} HTML files!")
