"use strict"; // Load and display blog posts from JSON async function loadBlogPosts() { try { const response = await fetch('./posts.json'); const posts = await response.json(); const blogsContainer = document.getElementById('blogsContainer'); if (posts.length === 0) { blogsContainer.innerHTML = '

No blog posts yet.

'; return; } // Create HTML for each post const postsHTML = posts.map(post => `

${post.title}

${new Date(post.date).toLocaleDateString('en-US', { year: 'numeric', month: 'long', day: 'numeric' })}
${post.content}
${post.title}
`).join(''); blogsContainer.innerHTML = postsHTML; } catch (error) { console.error('Error loading blog posts:', error); document.getElementById('blogsContainer').innerHTML = '

Error loading blog posts.

'; } } // Load blog posts when page is ready if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', loadBlogPosts); } else { loadBlogPosts(); } // Handle hash-based navigation to specific posts window.addEventListener('hashchange', () => { const postId = window.location.hash.slice(1); if (postId) { const element = document.getElementById(postId); if (element) { element.scrollIntoView({ behavior: 'smooth' }); } } });