周报
话题分析
追踪同一话题在不同节目、不同嘉宾间的观点演变。
0涉及节目
0讨论次数
0核心嘉宾
0周时间跨度
硅谷大佬深度访谈汇总
追踪同一话题在不同节目、不同嘉宾间的观点演变。
${relevantPoint(entry)}
`; card.querySelector(".topic-card-footer").append(link); group.append(card); }); timeline.append(group); }); } function renderTopicInsights(topic, entries) { const list = document.querySelector("#topic-insight-list"); list.innerHTML = ""; const latest = entries[0]; const cautious = entries.filter((entry) => sentimentForEntry(entry)[1] === "sentiment-cautious").length; const bullish = entries.filter((entry) => sentimentForEntry(entry)[1] === "sentiment-bullish").length; const platforms = uniqueValues(entries, (entry) => [entry.podcast.platform || entry.podcast.source || "未知来源"]); const insights = [ ["01", "讨论密度", `${topic} 在当前数据集中出现 ${entries.length} 次,覆盖 ${platforms.join("、")}。`], ["02", "观点温度", bullish || cautious ? `偏积极 ${bullish} 条,偏谨慎 ${cautious} 条;适合结合时间线看观点是否转向。` : "当前样本以中性事实讨论为主,尚未形成明显方向性。"], ["03", "最新变化", latest ? `最新一条来自第${latest.report.weekNumber}周:${latest.podcast.title}` : "暂无可分析条目。"] ]; insights.forEach(([number, title, body]) => { const card = document.createElement("article"); card.className = "insight-card"; card.innerHTML = `${body}
`; list.append(card); }); } function renderTopicAnalysis() { const summaries = topicSummaries(); if (!summaries.length) return; if (!state.selectedTopic || !summaries.some((item) => item.topic === state.selectedTopic)) { state.selectedTopic = summaries[0].topic; } const entries = entriesForTopic(state.selectedTopic).sort((a, b) => b.report.weekNumber - a.report.weekNumber); renderTopicPills(summaries); renderTopicStats(entries); renderTopicTimeline(entries); renderTopicInsights(state.selectedTopic, entries); document.querySelector("#topic-active-line").textContent = `${state.selectedTopic} · ${entries.length} 条相关内容`; } function render() { const report = selectedReport(); renderTopNav(); renderWeeks(); renderSummary(report); renderSidebar(report); renderPodcasts(report); if (state.view === "topics") renderTopicAnalysis(); } async function loadReportsData() { const embedded = document.querySelector("#embedded-reports"); if (embedded?.textContent) return JSON.parse(embedded.textContent); const response = await fetch(`./data/reports.json?ts=${Date.now()}`); return response.json(); } async function boot() { const data = await loadReportsData(); state.reports = data.reports.sort((a, b) => b.weekNumber - a.weekNumber); state.selectedWeek = state.reports[0].weekNumber; document.querySelector("#reset-filters").addEventListener("click", () => { resetFilters("all"); render(); }); document.querySelector("#home-button").addEventListener("click", () => { history.replaceState(null, "", window.location.pathname); setView("home"); selectWeek(state.reports[0].weekNumber); }); document.querySelector("#topics-button").addEventListener("click", () => { history.replaceState(null, "", "#topics"); setView("topics"); window.scrollTo({ top: 0, behavior: "smooth" }); }); window.addEventListener("hashchange", () => { setView(window.location.hash === "#topics" ? "topics" : "home"); }); document.querySelector("#prev-week").addEventListener("click", () => { const index = selectedReportIndex(); if (index < state.reports.length - 1) selectWeek(state.reports[index + 1].weekNumber); }); document.querySelector("#next-week").addEventListener("click", () => { const index = selectedReportIndex(); if (index > 0) selectWeek(state.reports[index - 1].weekNumber); }); document.querySelector("#week-select").addEventListener("change", (event) => { selectWeek(Number(event.target.value)); }); document.title = data.site.name; document.querySelector("h1").textContent = data.site.name; document.querySelector("#site-tagline").textContent = data.site.tagline; document.querySelector("#last-updated").textContent = `更新: ${new Date(data.site.updatedAt).toLocaleDateString("zh-CN")}`; setView(window.location.hash === "#topics" ? "topics" : "home"); render(); } boot().catch((error) => { document.querySelector("#podcast-list").innerHTML = `