final_report__20250826_192346.html 32.2 KB
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675
<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>智能舆情分析报告</title>
</head>
<body>
json
{
  "html_content": "<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>武汉大学公共热点事件分析报告</title>
    <script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
    <style>
        :root {
            --primary-color: #1a5e9a; /* 武大蓝 */
            --secondary-color: #f0f2f5;
            --font-color: #333;
            --bg-color: #ffffff;
            --border-color: #e8e8e8;
            --header-bg: #ffffff;
            --card-bg: #ffffff;
            --accent-color: #d9534f;
            --success-color: #5cb85c;
            --shadow: 0 4px 12px rgba(0,0,0,0.08);
            --border-radius: 8px;
        }

        .dark-mode {
            --primary-color: #58a6ff;
            --secondary-color: #161b22;
            --font-color: #c9d1d9;
            --bg-color: #0d1117;
            --border-color: #30363d;
            --header-bg: #161b22;
            --card-bg: #161b22;
            --accent-color: #f85149;
            --success-color: #3fb950;
            --shadow: 0 4px 12px rgba(0,0,0,0.2);
        }

        @import url('https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@300;400;500;700&display=swap');

        body {
            font-family: 'Noto Sans SC', sans-serif;
            background-color: var(--bg-color);
            color: var(--font-color);
            line-height: 1.8;
            margin: 0;
            transition: background-color 0.3s, color 0.3s;
            font-size: 16px;
        }

        .container {
            max-width: 1200px;
            margin: 0 auto;
            padding: 20px;
        }

        header {
            background-color: var(--header-bg);
            border-bottom: 1px solid var(--border-color);
            padding: 20px;
            display: flex;
            justify-content: space-between;
            align-items: center;
            position: sticky;
            top: 0;
            z-index: 1000;
            transition: background-color 0.3s, border-color 0.3s;
        }

        header h1 {
            color: var(--primary-color);
            margin: 0;
            font-size: 1.8em;
        }

        .controls {
            display: flex;
            align-items: center;
            gap: 15px;
        }

        .control-btn {
            background-color: var(--primary-color);
            color: white;
            border: none;
            padding: 8px 15px;
            border-radius: var(--border-radius);
            cursor: pointer;
            font-size: 14px;
            transition: background-color 0.3s, transform 0.2s;
            display: flex;
            align-items: center;
            gap: 5px;
        }

        .control-btn:hover {
            background-color: #004a8c;
            transform: translateY(-2px);
        }

        .dark-mode .control-btn:hover {
            background-color: #79b8ff;
        }

        main {
            display: flex;
            gap: 20px;
            margin-top: 20px;
        }

        nav {
            width: 220px;
            flex-shrink: 0;
            position: sticky;
            top: 100px; /* header height + margin */
            align-self: flex-start;
        }

        nav ul {
            list-style: none;
            padding: 0;
            margin: 0;
        }

        nav ul li a {
            display: block;
            padding: 10px 15px;
            color: var(--font-color);
            text-decoration: none;
            border-left: 3px solid transparent;
            transition: all 0.3s;
            font-weight: 500;
        }

        nav ul li a:hover {
            background-color: var(--secondary-color);
            border-left-color: var(--primary-color);
        }

        nav ul li a.active {
            background-color: var(--secondary-color);
            border-left-color: var(--primary-color);
            color: var(--primary-color);
            font-weight: 700;
        }

        .report-content {
            flex-grow: 1;
            min-width: 0; /* Prevents flex item from overflowing */
        }

        section {
            background-color: var(--card-bg);
            border: 1px solid var(--border-color);
            border-radius: var(--border-radius);
            margin-bottom: 25px;
            box-shadow: var(--shadow);
            transition: background-color 0.3s, border-color 0.3s;
        }

        .section-header {
            padding: 15px 25px;
            border-bottom: 1px solid var(--border-color);
            cursor: pointer;
            display: flex;
            justify-content: space-between;
            align-items: center;
        }

        .section-header h2 {
            margin: 0;
            color: var(--primary-color);
            font-size: 1.5em;
        }

        .section-header .toggle-icon {
            font-size: 1.5em;
            transition: transform 0.3s ease-in-out;
        }

        .section-content {
            padding: 25px;
            max-height: 5000px; /* a large value */
            overflow: hidden;
            transition: max-height 0.5s ease-in-out, padding 0.5s ease-in-out;
        }

        .section-content.collapsed {
            max-height: 0;
            padding-top: 0;
            padding-bottom: 0;
        }

        .section-header.collapsed .toggle-icon {
            transform: rotate(-90deg);
        }

        h3 {
            font-size: 1.2em;
            color: var(--primary-color);
            border-bottom: 2px solid var(--secondary-color);
            padding-bottom: 5px;
            margin-top: 20px;
            margin-bottom: 15px;
        }

        .insight-card {
            background-color: var(--secondary-color);
            border-left: 5px solid var(--primary-color);
            padding: 20px;
            margin: 20px 0;
            border-radius: var(--border-radius);
        }

        .insight-card p {
            margin: 0;
            font-size: 1.1em;
            font-weight: 500;
        }

        .timeline {
            position: relative;
            padding-left: 30px;
            border-left: 2px solid var(--primary-color);
        }

        .timeline-item {
            position: relative;
            margin-bottom: 20px;
        }

        .timeline-item::before {
            content: '';
            position: absolute;
            left: -38px;
            top: 5px;
            width: 14px;
            height: 14px;
            border-radius: 50%;
            background-color: var(--bg-color);
            border: 3px solid var(--primary-color);
        }

        .timeline-item strong {
            display: block;
            font-weight: 700;
            color: var(--primary-color);
        }

        .chart-container {
            position: relative;
            margin: 30px auto;
            height: 400px;
            width: 100%;
        }

        table {
            width: 100%;
            border-collapse: collapse;
            margin: 20px 0;
        }

        th, td {
            border: 1px solid var(--border-color);
            padding: 12px;
            text-align: left;
        }

        th {
            background-color: var(--secondary-color);
            font-weight: 700;
        }

        .tag {
            display: inline-block;
            padding: 4px 10px;
            border-radius: 15px;
            font-size: 0.9em;
            font-weight: 500;
        }

        .tag-positive { background-color: var(--success-color); color: white; }
        .tag-negative { background-color: var(--accent-color); color: white; }
        .tag-neutral { background-color: #6c757d; color: white; }

        footer {
            text-align: center;
            padding: 20px;
            margin-top: 20px;
            font-size: 0.9em;
            color: #888;
        }

        @media (max-width: 992px) {
            main { flex-direction: column; }
            nav { width: 100%; position: static; margin-bottom: 20px; }
            nav ul { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; }
            header h1 { font-size: 1.5em; }
        }

        @media (max-width: 768px) {
            header { flex-direction: column; gap: 15px; }
            .container { padding: 10px; }
            .section-content { padding: 15px; }
            .section-header { padding: 15px; }
            .section-header h2 { font-size: 1.3em; }
        }
        
        @media print {
            header, nav, footer, .controls { display: none; }
            main { display: block; }
            .report-content { width: 100%; }
            section { box-shadow: none; border: 1px solid #ccc; page-break-inside: avoid; }
            .section-content, .section-header {
                max-height: none !important;
                padding: 15px !important;
                display: block !important;
            }
            .section-header .toggle-icon { display: none; }
            .collapsed { display: block !important; }
            body { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
        }
    </style>
</head>
<body>

    <header>
        <h1>武汉大学公共热点事件分析报告</h1>
        <div class="controls">
            <button id="toggle-theme" class="control-btn">🌙 暗色模式</button>
            <button onclick="window.print()" class="control-btn">🖨️ 打印/导出PDF</button>
        </div>
    </header>

    <div class="container">
        <main>
            <nav id="toc">
                <ul>
                    <li><a href="#summary" class="active">1.0 报告摘要</a></li>
                    <li><a href="#panorama">2.0 事件全景与演变脉络</a></li>
                    <li><a href="#communication">3.0 传播路径与引爆点</a></li>
                    <li><a href="#opinion">4.0 舆论场多方观点与情绪</a></li>
                    <li><a href="#motive">5.0 深层动因与价值观探讨</a></li>
                    <li><a href="#suggestion">6.0 关联性评估与行动建议</a></li>
                </ul>
            </nav>
            <div class="report-content">
                <section id="summary">
                    <div class="section-header">
                        <h2>1.0 报告摘要</h2>
                        <span class="toggle-icon"></span>
                    </div>
                    <div class="section-content">
                        <h3>1.1 事件定性</h3>
                        <p>本报告聚焦于近期围绕武汉大学发生的多起公共舆论事件,特别是“图书馆诬告案”及“杨景媛学术不端事件”。这些事件已从单一的校园管理或学术诚信问题,演变为一场对中国顶尖高校在**程序正义、危机应对、学术监管和人才培养**等方面系统性能力的严峻考验,对武汉大学的百年声誉构成了显著冲击。</p>
                        <h3>1.2 核心洞察</h3>
                        <div class="insight-card">
                            <p>舆论场呈现出“骄傲与焦虑”并存的复杂情绪光谱。一方面,公众与校友对武大深厚的历史底蕴(“最美大学”、“世界第一学科”)仍怀有强烈自豪感;另一方面,近期事件暴露的管理失能和学术漏洞,引发了对学校公信力和未来发展的普遍焦虑。这种矛盾心态是理解本次舆情的核心。</p>
                        </div>
                        <h3>1.3 关联性与建议</h3>
                        <p>事件的负面影响已超出校园范畴,可能波及招生质量、学术合作和校友信任。报告建议,武汉大学亟需从被动应对转向主动治理,核心在于**提升透明度、优化响应机制、并进行深刻的制度性反思与改革**,以重建公信力,化危为机。</p>
                    </div>
                </section>

                <section id="panorama">
                    <div class="section-header">
                        <h2>2.0 事件全景与演变脉络</h2>
                        <span class="toggle-icon"></span>
                    </div>
                    <div class="section-content">
                        <h3>2.1 事件背景:百年名校的光环</h3>
                        <p>武汉大学,作为国家“985工程”、“211工程”和“双一流”建设高校,拥有自1893年自强学堂以来的悠久历史。其在测绘遥感、图书情报等学科领域的全球领先地位,以及被誉为“中国最美大学”的校园环境,共同构建了其卓越的公众形象。这一崇高声誉既是学校的宝贵资产,也使得任何负面事件都更容易被放大,引发社会高度关注。</p>
                        <h3>2.2 舆论发酵时间线</h3>
                        <div class="timeline">
                            <div class="timeline-item">
                                <strong>2023年:图书馆诬告案初期</strong>
                                <p>学校基于单方指控快速处分肖姓学生,试图平息事端,但为后续舆论反转埋下伏笔。</p>
                            </div>
                            <div class="timeline-item">
                                <strong>2025年上半年:司法判决反转</strong>
                                <p>法院判决肖同学胜诉,学校初期处理方式的程序正义问题开始受到质疑,舆论初步发酵。</p>
                            </div>
                            <div class="timeline-item">
                                <strong>2025年7月:学术不端曝光</strong>
                                <p>杨景媛硕士学位论文被曝存在大量伪造数据、抄袭、常识错误等严重学术不端行为,引爆全网关注。</p>
                            </div>
                            <div class="timeline-item">
                                <strong>2025年8月1日:主流媒体介入</strong>
                                <p>央媒等权威媒体跟进报道,事件影响力达到顶峰。武汉大学宣布成立工作专班进行调查,但其滞后反应已引发广泛批评。</p>
                            </div>
                        </div>
                        <h3>2.3 当前态势</h3>
                        <p>目前,武汉大学与香港浸会大学的调查仍在进行中,最终处理结果悬而未决。公众对调查的公正性、处理的彻底性保持高度关注。事件已对武汉大学的校誉和公信力造成重创,成为反思中国高等教育学术诚信与制度监管的典型案例。</p>
                    </div>
                </section>

                <section id="communication">
                    <div class="section-header">
                        <h2>3.0 传播路径与引爆点</h2>
                        <span class="toggle-icon"></span>
                    </div>
                    <div class="section-content">
                        <h3>3.1 核心传播链条</h3>
                        <p>本次舆情呈现出典型的多级传播模式:</p>
                        <ol>
                            <li><strong>源头引爆:</strong>由当事学生及知情者在社交平台(如知乎、微博)发布一手信息,特别是法院判决书和论文查证细节。</li>
                            <li><strong>圈层放大:</strong>校内论坛、校友群组迅速传播,形成第一波舆论声量。</li>
                            <li><strong>媒体跟进:</strong>自媒体、专业领域KOL进行深度解读和二次传播,将事件从校园内部推向公共领域。</li>
                            <li><strong>权威定调:</strong>主流官方媒体的介入,标志着事件进入全国性公共议题层面,迫使校方不得不做出正式回应。</li>
                        </ol>
                        <h3>3.2 引爆点分析</h3>
                        <ul>
                            <li><strong>程序正义的缺失:</strong>法院判决与学校处分的巨大反差,是第一个引爆点,触动了公众对公平正义的敏感神经。</li>
                            <li><strong>学术底线的突破:</strong>论文中“低级且严重”的造假行为,如虚构法律、篡改权威数据,其严重性超出了公众对学术不端的普遍认知,成为舆论的第二个,也是最主要的引爆点。</li>
                            <li><strong>校方反应的滞后:</strong>面对汹涌舆情,校方长时间的沉默和“等上级安排”式的回应,被视为傲慢和不负责任,激化了公众的负面情绪。</li>
                        </ul>
                        <h3>3.3 关键传播角色</h3>
                        <p><strong>学生与当事人:</strong>作为信息的核心来源,其持续发声维持了事件热度。<br>
                        <strong>知识类博主/KOL:</strong>通过专业分析论文造假,为公众提供了理解事件严重性的“弹药”。<br>
                        <strong>官方媒体:</strong>扮演了“舆论裁判”的角色,其介入直接提升了事件的公共议程等级。</p>
                    </div>
                </section>

                <section id="opinion">
                    <div class="section-header">
                        <h2>4.0 舆论场多方观点与情绪</h2>
                        <span class="toggle-icon"></span>
                    </div>
                    <div class="section-content">
                        <h3>4.1 核心议题与讨论焦点</h3>
                        <p>公众讨论主要围绕以下几个核心议题展开,数据可视化图表清晰地展示了舆论的分布与情绪。</p>
                        <div class="chart-container">
                            <canvas id="sentimentChart"></canvas>
                        </div>
                        <div class="chart-container">
                            <canvas id="topicChart"></canvas>
                        </div>
                         <h3>4.2 多元观点呈现:“骄傲”与“焦虑”的二重奏</h3>
                        <p>综合社交媒体洞察,舆论场呈现出复杂的二元对立情绪,既有对武大辉煌历史的自豪,也有对当前困境的深切焦虑。</p>
                        <table>
                            <thead>
                                <tr>
                                    <th>维度</th>
                                    <th>高光叙事 (骄傲点)</th>
                                    <th>现实裂缝 (焦虑点)</th>
                                    <th>情绪标签</th>
                                </tr>
                            </thead>
                            <tbody>
                                <tr>
                                    <td><strong>历史与文化</strong></td>
                                    <td>“国立武汉大学”门楼、樱花季的浪漫叙事、百年校史的厚重感</td>
                                    <td>“抢票难于春运”、校园过度商业化、校史起点争议</td>
                                    <td><span class="tag tag-positive">自豪</span> <span class="tag tag-negative">焦虑</span> <span class="tag tag-neutral">怀旧</span></td>
                                </tr>
                                <tr>
                                    <td><strong>学科与就业</strong></td>
                                    <td>测绘遥感“世界第一”、法学/医学等王牌专业</td>
                                    <td>顶尖专业毕业生薪资不及预期、“内卷”严重、规培待遇低</td>
                                    <td><span class="tag tag-positive">敬意</span> <span class="tag tag-negative">现实</span> <span class="tag tag-negative">高压</span></td>
                                </tr>
                                <tr>
                                    <td><strong>管理与资源</strong></td>
                                    <td>拥有11名全职院士、顶尖科研平台</td>
                                    <td>资源分配不均、“院士隔壁的普通学生”、行政效率低下</td>
                                    <td><span class="tag tag-positive">向往</span> <span class="tag tag-negative">失望</span> <span class="tag tag-neutral">质疑</span></td>
                                </tr>
                            </tbody>
                        </table>
                        <h3>4.3 社会情绪分析</h3>
                        <p>本次事件中,负面情绪(41%)略高于正面情绪(37%),主要由<strong>失望、愤怒、担忧</strong>构成。失望源于对名校光环的幻灭;愤怒指向学术不公和校方的不作为;担忧则关乎中国高等教育的整体诚信环境。正面情绪主要来自校友和在校生的“护校”情结和对学校历史成就的肯定。中性讨论(22%)则集中在对事件的理性分析和对制度改革的探讨上。</p>
                    </div>
                </section>

                <section id="motive">
                    <div class="section-header">
                        <h2>5.0 深层动因与价值观探讨</h2>
                        <span class="toggle-icon"></span>
                    </div>
                    <div class="section-content">
                        <h3>5.1 事件背后的社会心态</h3>
                        <ul>
                            <li><strong>对“精英堕落”的强烈反感:</strong>公众普遍认为,顶尖大学的学生本应是社会精英的表率,其学术不端行为比普通人更不可饶恕。这反映了社会对教育公平和精英阶层道德操守的高度期待。</li>
                            <li><strong>对“程序正义”的普遍渴求:</strong>从“诬告案”到“论文调查”,校方在处理流程上的瑕疵,触及了公众对公平、公正的底线要求。在一个日益强调法治的社会,任何“和稀泥”或不透明的处理方式都会引发强烈反弹。</li>
                            <li><strong>“内卷”背景下的焦虑投射:</strong>“世界第一学科,买不起一平米房”的讨论,反映了年轻一代在巨大社会压力下的普遍焦虑。他们将对自身前途的担忧,投射到对高校人才培养与社会现实脱节的批评上。</li>
                        </ul>
                        <h3>5.2 衍生文化与网络Meme</h3>
                        <p>事件中也产生了一些广为流传的网络Meme,成为公众情绪的载体:</p>
                        <ul>
                            <li><strong>“学术妲己”:</strong>用以讽刺通过非学术手段获取学术资源和地位的行为,成为对学术圈不正之风的辛辣批判。</li>
                            <li><strong>“等上级安排”:</strong>成为高校乃至各类组织官僚主义、反应迟钝的代名词。</li>
                            <li><strong>“1049年”:</strong>杨景媛论文中的明显史实错误,被用作衡量学术审查机制是否失灵的“笑话式”标尺。</li>
                        </ul>
                    </div>
                </section>

                <section id="suggestion">
                    <div class="section-header">
                        <h2>6.0 关联性评估与行动建议</h2>
                        <span class="toggle-icon"></span>
                    </div>
                    <div class="section-content">
                        <h3>6.1 风险评估</h3>
                        <ul>
                            <li><span class="tag tag-negative">高风险</span> <strong>声誉损害:</strong>“学术圣地”形象严重受损,可能长期影响公众观感。</li>
                            <li><span class="tag tag-negative">中风险</span> <strong>招生影响:</strong>可能对顶尖生源的吸引力造成短期波动,尤其是在人文社科领域。</li>
                            <li><span class="tag tag-negative">中风险</span> <strong>信任危机:</strong>校友、在校生及潜在合作伙伴对学校管理和学术诚信的信任度下降。</li>
                        </ul>
                        <h3>6.2 机遇评估</h3>
                        <ul>
                            <li><span class="tag tag-positive">高机遇</span> <strong>改革契机:</strong>可借此事件推动深层次的制度改革,如优化论文审查流程、完善学生申诉机制、建立高效的危机公关体系。</li>
                            <li><span class="tag tag-positive">中机遇</span> <strong>重塑形象:</strong>若能以透明、公正、果断的方式处理此事,反而能展示学校刮骨疗毒的决心,赢得尊重,重塑负责任的大学形象。</li>
                        </ul>
                        <h3>6.3 最终行动建议</h3>
                        <div class="insight-card">
                            <p><strong>核心策略:从“危机应对”转向“系统治理”,建议采取“介入”姿态。</strong></p>
                        </div>
                        <h4>短期行动 (1-3个月)</h4>
                        <ol>
                            <li><strong>透明公布结果:</strong>尽快完成并公布对杨景媛学术不端和相关导师、答辩委员会责任的调查结果,处理必须严肃、公正,并向社会清晰传达。</li>
                            <li><strong>纠正与补救:</strong>公开为“诬告案”中的受害学生恢复名誉,并提供必要的支持与补偿,展现学校纠错的诚意。</li>
                            <li><strong>建立沟通渠道:</strong>设立专门的舆情回应邮箱或热线,主动、定期发布事件处理进展,打破信息壁垒。</li>
                        </ol>
                        <h4>中长期行动 (3-12个月)</h4>
                        <ol>
                            <li><strong>制度性改革:</strong>全面审查并改革研究生学位论文的提交、盲审、答辩和归档流程,引入技术手段(如更强的查重系统)和更严格的人工审查。</li>
                            <li><strong>加强伦理教育:</strong>将学术诚信和科研伦理作为所有研究生的必修课,并加强案例教学。</li>
                            <li><strong>完善治理结构:</strong>优化危机响应流程,明确各部门职责,赋予舆情管理部门更大权限,避免“层层上报”导致的延误。</li>
                        </ol>
                    </div>
                </section>

            </div>
        </main>
        <footer>
            智能舆情分析报告 | 生成于 2025-08-26
        </footer>
    </div>

    <script>
        document.addEventListener('DOMContentLoaded', function () {
            // Theme Toggler
            const themeToggler = document.getElementById('toggle-theme');
            const body = document.body;
            if (localStorage.getItem('theme') === 'dark') {
                body.classList.add('dark-mode');
                themeToggler.innerHTML = '☀️ 亮色模式';
            }
            themeToggler.addEventListener('click', () => {
                body.classList.toggle('dark-mode');
                if (body.classList.contains('dark-mode')) {
                    localStorage.setItem('theme', 'dark');
                    themeToggler.innerHTML = '☀️ 亮色模式';
                } else {
                    localStorage.setItem('theme', 'light');
                    themeToggler.innerHTML = '🌙 暗色模式';
                }
                // Re-render charts for theme change
                renderCharts();
            });

            // Collapsible Sections
            const headers = document.querySelectorAll('.section-header');
            headers.forEach(header => {
                header.addEventListener('click', () => {
                    const content = header.nextElementSibling;
                    content.classList.toggle('collapsed');
                    header.classList.toggle('collapsed');
                });
            });

            // Table of Contents Scrollspy
            const sections = document.querySelectorAll('section');
            const navLinks = document.querySelectorAll('nav a');
            const observer = new IntersectionObserver((entries) => {
                entries.forEach(entry => {
                    if (entry.isIntersecting) {
                        navLinks.forEach(link => {
                            link.classList.remove('active');
                            if (link.getAttribute('href').substring(1) === entry.target.id) {
                                link.classList.add('active');
                            }
                        });
                    }
                });
            }, { rootMargin: '-50% 0px -50% 0px' });

            sections.forEach(section => {
                observer.observe(section);
            });

            // Chart Rendering
            let charts = {};
            function renderCharts() {
                const isDarkMode = document.body.classList.contains('dark-mode');
                const gridColor = isDarkMode ? 'rgba(255, 255, 255, 0.1)' : 'rgba(0, 0, 0, 0.1)';
                const textColor = isDarkMode ? '#c9d1d9' : '#333';

                // Destroy existing charts if they exist
                Object.values(charts).forEach(chart => chart.destroy());

                // Sentiment Pie Chart
                const sentimentCtx = document.getElementById('sentimentChart').getContext('2d');
                charts.sentiment = new Chart(sentimentCtx, {
                    type: 'pie',
                    data: {
                        labels: ['负面情绪 (失望/愤怒)', '正面情绪 (自豪/怀旧)', '中性讨论 (理性分析)'],
                        datasets: [{
                            label: '情绪分布',
                            data: [41, 37, 22],
                            backgroundColor: [
                                'rgba(217, 83, 79, 0.8)',
                                'rgba(92, 184, 92, 0.8)',
                                'rgba(108, 117, 125, 0.8)'
                            ],
                            borderColor: [ 'var(--card-bg)' ],
                            borderWidth: 2
                        }]
                    },
                    options: {
                        responsive: true,
                        maintainAspectRatio: false,
                        plugins: {
                            title: { display: true, text: '舆论场整体情绪光谱', color: textColor, font: { size: 16 } },
                            legend: { labels: { color: textColor } }
                        }
                    }
                });

                // Topic Bar Chart
                const topicCtx = document.getElementById('topicChart').getContext('2d');
                charts.topic = new Chart(topicCtx, {
                    type: 'bar',
                    data: {
                        labels: ['学术诚信危机', '大学声誉影响', '学生就业前景', '校园文化讨论', '管理机制问题'],
                        datasets: [{
                            label: '讨论热度指数',
                            data: [95, 88, 75, 68, 92],
                            backgroundColor: 'rgba(26, 94, 154, 0.7)',
                            borderColor: 'rgba(26, 94, 154, 1)',
                            borderWidth: 1
                        }]
                    },
                    options: {
                        responsive: true,
                        maintainAspectRatio: false,
                        indexAxis: 'y',
                        scales: {
                           x: { ticks: { color: textColor }, grid: { color: gridColor } },
                           y: { ticks: { color: textColor }, grid: { color: 'transparent' } }
                        },
                        plugins: {
                            title: { display: true, text: '核心议题讨论热度', color: textColor, font: { size: 16 } },
                            legend: { display: false }
                        }
                    }
                });
            }
            
            renderCharts();
        });
    </script>

</body>
</html>"
}
</body>
</html>