/* ===================================================================== * 入口(main.js) * 挂载全局事件并完成首次渲染。 * 各业务模块:api / auth / router / article / comment / manage / friend / * markdown / state / utils * ===================================================================== */ import { $ } from "./utils.js"; import { refreshUser } from "./auth.js"; import { navigate, render, renderAuthArea, renderNav } from "./router.js"; // 拦截站内 SPA 链接(带 data-link 的 ),并收起用户下拉菜单 document.addEventListener("click", (e) => { const link = e.target.closest("a[data-link]"); if (link) { e.preventDefault(); navigate(link.getAttribute("href")); return; } const dropdown = $("#user-dropdown"); if (dropdown && !e.target.closest(".user-menu")) dropdown.classList.add("hidden"); }); window.addEventListener("popstate", render); (async function init() { renderNav(); await refreshUser(); renderAuthArea(); render(); })();