// main.js — dynamic markdown loader for The Fold Within console.log("Main.js loaded"); document.addEventListener("DOMContentLoaded", async () => { const postsContainer = document.getElementById("posts"); const main = document.querySelector("main"); // Load post metadata from posts.json const response = await fetch("posts/posts.json"); const posts = await response.json(); // Render index of posts posts.forEach(post => { const article = document.createElement("article"); article.innerHTML = `

${post.title}

${post.date}

${post.excerpt}

`; article.addEventListener("click", () => loadPost(post.file)); postsContainer.appendChild(article); }); // Load a markdown post dynamically async function loadPost(filename) { try { const res = await fetch(`posts/${filename}`); if (!res.ok) throw new Error("Post not found."); const md = await res.text(); const html = marked.parse(md); main.innerHTML = `
← Back to Archive
${html}
`; document.getElementById("back").addEventListener("click", () => location.reload()); } catch (err) { main.innerHTML = `

⚠️ ${err.message}

`; } } });