"""Generate an index.html page to browse all archived digests.""" import os from datetime import datetime import glob def generate_index(): archive_dir = "arxiv_archive" # Get all digest files if os.path.exists(archive_dir): digest_files = sorted(glob.glob(os.path.join(archive_dir, "arxiv_digest_*.html")), reverse=True) else: digest_files = [] # Parse dates and create entries entries = [] for filepath in digest_files: filename = os.path.basename(filepath) # Extract date from filename: arxiv_digest_20251101.html date_str = filename.replace("arxiv_digest_", "").replace(".html", "") try: date_obj = datetime.strptime(date_str, "%Y%m%d") formatted_date = date_obj.strftime("%B %d, %Y") day_of_week = date_obj.strftime("%A") entries.append({ 'filename': filename, 'date': formatted_date, 'day': day_of_week, 'date_obj': date_obj }) except ValueError: continue html = f""" arXiv Digest Archive

📚 arXiv Digest Archive

Browse your daily research digests

📰 View Latest Digest

Past Reports

""" if entries: html += ' \n' else: html += '
No archived reports yet. Run the digest script to generate your first report!
\n' html += f"""
{len(entries)} report{"s" if len(entries) != 1 else ""} archived • Updated {datetime.now().strftime("%B %d, %Y at %I:%M %p")}
""" with open("index.html", 'w', encoding='utf-8') as f: f.write(html) print(f"📑 Index page generated with {len(entries)} reports") if __name__ == "__main__": generate_index()