<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>薛嵩的个人主页 – 博客</title>
    <link>https://www.songxue-j.com/zh-cn/blog/</link>
    <description>Recent content in 博客 on 薛嵩的个人主页</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>zh-CN</language>
    <lastBuildDate>Wed, 19 Feb 2025 00:00:00 +0000</lastBuildDate>
    
	  <atom:link href="https://www.songxue-j.com/zh-cn/blog/index.xml" rel="self" type="application/rss+xml" />
    
    
      
        
      
    
    
    <item>
      <title>SARS-CoV-2 Spike 假病毒中和实验（包装、活力标定与中和）</title>
      <link>https://www.songxue-j.com/zh-cn/blog/sars-cov-2-spike-pseudovirus-neutralization-assay/</link>
      <pubDate>Thu, 03 Sep 2026 00:00:00 +0000</pubDate>
      
      <guid>https://www.songxue-j.com/zh-cn/blog/sars-cov-2-spike-pseudovirus-neutralization-assay/</guid>
      <description>
        
        
        &lt;p&gt;本文整理了一份基于 HIV 骨架的 Spike 假病毒（pseudotyped lentivirus）定量抗体中和活性的完整流程，包括三部分：(1) 在 HEK293T 中包装携带萤火虫荧光素酶（firefly luciferase）报告基因的 SARS-CoV-2 Spike 假病毒；(2) 在 Huh7 细胞上测定感染活力并将不同病毒株标定到相近剂量；(3) 抗体梯度稀释后的体外中和实验与数据拟合。&lt;/p&gt;
&lt;p&gt;假病毒系统把 SARS-CoV-2 的 Spike（S）蛋白作为包膜展示在复制缺陷的病毒颗粒表面，因此中和实验可在 &lt;strong&gt;BSL-2&lt;/strong&gt; 条件下进行。&lt;/p&gt;
&lt;div class=&#34;hx-overflow-x-auto hx-mt-6 hx-flex hx-rounded-lg hx-border hx-py-2 ltr:hx-pr-4 rtl:hx-pl-4 contrast-more:hx-border-current contrast-more:dark:hx-border-current hx-border-yellow-100 hx-bg-yellow-50 hx-text-yellow-900 dark:hx-border-yellow-200/30 dark:hx-bg-yellow-700/30 dark:hx-text-yellow-200&#34;&gt;
  &lt;div class=&#34;ltr:hx-pl-3 ltr:hx-pr-2 rtl:hx-pr-3 rtl:hx-pl-2&#34;&gt;&lt;div class=&#34;hx-select-none hx-text-xl&#34; style=&#34;font-family: &#39;Apple Color Emoji&#39;, &#39;Segoe UI Emoji&#39;, &#39;Segoe UI Symbol&#39;;&#34;&gt;🦠&lt;/div&gt;&lt;/div&gt;

  &lt;div class=&#34;hx-w-full hx-min-w-0 hx-leading-7&#34;&gt;
    &lt;div class=&#34;hx-mt-6 hx-leading-7 first:hx-mt-0&#34;&gt;生物安全：本系统为单轮感染、复制缺陷的假病毒（基于 HIV-1 载体），但涉及重组慢病毒与含荧光素酶报告质粒的操作。请遵守你所在机构对生物安全的要求：生物安全柜内操作、含病毒废液用消毒剂（如含氯消毒液/次氯酸盐）处理后方可废弃。&lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;hr&gt;
&lt;h2&gt;一、 实验原理&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;一-实验原理&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#%e4%b8%80-%e5%ae%9e%e9%aa%8c%e5%8e%9f%e7%90%86&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;假病毒颗粒&lt;/strong&gt;：将编码 S 蛋白的&lt;strong&gt;包膜表达质粒&lt;/strong&gt;与携带 Gag/Pol 与萤火虫荧光素酶报告基因的&lt;strong&gt;骨架质粒&lt;/strong&gt;（本组所用 pNL4-3.Luc.R-E）共转染 HEK293T。细胞表达的 S 蛋白组装到出芽病毒颗粒表面，形成单轮感染的假病毒颗粒；其基因组不编码功能性毒力因子，只报告感染事件。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;感染与报告&lt;/strong&gt;：假病毒通过 S 蛋白与宿主受体结合进入 Huh7（或其他敏感细胞），骨架基因组进入细胞后表达萤火虫荧光素酶；加入底物后发光信号（RLU）正比于被感染细胞数量。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;中和&lt;/strong&gt;：将梯度稀释的抗体与假病毒预孵育，若抗体能阻断 S 介导的感染，则加入细胞后的 RLU 随抗体浓度升高而下降。拟合剂量-反应曲线可得半数抑制浓度（IC50）。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;二、 材料、试剂与仪器&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;二-材料试剂与仪器&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#%e4%ba%8c-%e6%9d%90%e6%96%99%e8%af%95%e5%89%82%e4%b8%8e%e4%bb%aa%e5%99%a8&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;h3&gt;1. 质粒与细胞&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;1-质粒与细胞&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#1-%e8%b4%a8%e7%b2%92%e4%b8%8e%e7%bb%86%e8%83%9e&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;物料&lt;/th&gt;
          &lt;th&gt;用途&lt;/th&gt;
          &lt;th&gt;说明&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;S 蛋白表达质粒&lt;/td&gt;
          &lt;td&gt;包膜质粒&lt;/td&gt;
          &lt;td&gt;编码 SARS-CoV-2 S（野生型或 VOCs 突变株）的真核表达质粒&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;骨架质粒 pNL4-3.Luc.R-E&lt;/td&gt;
          &lt;td&gt;报告骨架&lt;/td&gt;
          &lt;td&gt;提供 Gag/Pol 与 Firefly luciferase，缺失 NEF/VPR/VPU/VIF 等功能基因的单轮复制骨架&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;HEK293T 细胞&lt;/td&gt;
          &lt;td&gt;假病毒包装&lt;/td&gt;
          &lt;td&gt;贴壁培养，转染时 70–80% 汇合&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Huh7 细胞&lt;/td&gt;
          &lt;td&gt;感染/中和靶细胞&lt;/td&gt;
          &lt;td&gt;96 孔板铺板后用于活力与中和检测&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;TransStbl3（或等效）感受态细胞&lt;/td&gt;
          &lt;td&gt;骨架质粒扩增&lt;/td&gt;
          &lt;td&gt;慢病毒骨架含长末端重复序列，用较低温度（约 30 ℃）培养以减少重组&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3&gt;2. 试剂、耗材与仪器&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;2-试剂耗材与仪器&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#2-%e8%af%95%e5%89%82%e8%80%97%e6%9d%90%e4%b8%8e%e4%bb%aa%e5%99%a8&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;类别&lt;/th&gt;
          &lt;th&gt;物料&lt;/th&gt;
          &lt;th&gt;说明&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;培养基&lt;/td&gt;
          &lt;td&gt;DMEM 完全培养基&lt;/td&gt;
          &lt;td&gt;含10% FBS，293T/Huh7 维持&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;无血清 DMEM&lt;/td&gt;
          &lt;td&gt;转染前/感染期换液与病毒稀释用&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;Opti-MEM 或 PBS&lt;/td&gt;
          &lt;td&gt;转染复合物稀释用（取决于转染试剂类型）&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;转染&lt;/td&gt;
          &lt;td&gt;转染试剂&lt;/td&gt;
          &lt;td&gt;293T 双质粒转染（威格拉斯 VigoFect，0.4 mL/支）&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;消化&lt;/td&gt;
          &lt;td&gt;0.25% 胰酶-EDTA&lt;/td&gt;
          &lt;td&gt;细胞传代&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;病毒收获&lt;/td&gt;
          &lt;td&gt;0.22 µm 滤膜&lt;/td&gt;
          &lt;td&gt;上清过滤去碎片&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;检测&lt;/td&gt;
          &lt;td&gt;萤火虫荧光素酶裂解液&lt;/td&gt;
          &lt;td&gt;如 Promega E1531（Luciferase Cell Culture Lysis Reagent 5×）&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;荧光素酶底物&lt;/td&gt;
          &lt;td&gt;如 Promega E1501/E1500（Luciferase Assay System）&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;耗材&lt;/td&gt;
          &lt;td&gt;96 孔细胞培养板&lt;/td&gt;
          &lt;td&gt;Huh7 铺板&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;U 底 96 孔板&lt;/td&gt;
          &lt;td&gt;病毒/抗体梯度稀释与混合&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;96 孔白板&lt;/td&gt;
          &lt;td&gt;RLU 读数（发光不透过板壁）&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;10 cm 细胞培养皿&lt;/td&gt;
          &lt;td&gt;293T 包装&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;仪器&lt;/td&gt;
          &lt;td&gt;CO₂ 培养箱、生物安全柜&lt;/td&gt;
          &lt;td&gt;—&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;多模式酶标仪/发光检测仪&lt;/td&gt;
          &lt;td&gt;读 RLU&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2&gt;三、 假病毒包装与收获（HEK293T）&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;三-假病毒包装与收获hek293t&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#%e4%b8%89-%e5%81%87%e7%97%85%e6%af%92%e5%8c%85%e8%a3%85%e4%b8%8e%e6%94%b6%e8%8e%b7hek293t&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;以 &lt;strong&gt;10 cm 细胞培养皿&lt;/strong&gt;为一个包装单元。&lt;/p&gt;
&lt;h3&gt;1. 293T 铺板&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;1-293t-铺板&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#1-293t-%e9%93%ba%e6%9d%bf&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;用贴壁细胞传代法将 293T 消化成单细胞，调整密度约 &lt;strong&gt;6 × 10⁵ cells/mL&lt;/strong&gt;。&lt;/li&gt;
&lt;li&gt;每皿加入 &lt;strong&gt;10 mL&lt;/strong&gt; 细胞悬液，轻晃使分布均匀。&lt;/li&gt;
&lt;li&gt;37 ℃、5% CO₂ 培养 &lt;strong&gt;14–16 h&lt;/strong&gt;，至 &lt;strong&gt;70–80% 汇合&lt;/strong&gt;时转染。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;2. 双质粒瞬时转染&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;2-双质粒瞬时转染&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#2-%e5%8f%8c%e8%b4%a8%e7%b2%92%e7%9e%ac%e6%97%b6%e8%bd%ac%e6%9f%93&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;每个 10 cm 皿（约 70–80% 汇合）用量：&lt;strong&gt;骨架质粒 10 µg : S 包膜质粒 20 µg（质量比 1:2）&lt;/strong&gt;。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;稀释转染试剂&lt;/strong&gt;：取 8 µL VigoFect 加至 500 µL PBS ，混匀静置约 5 min。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;稀释质粒&lt;/strong&gt;：将 S 包膜质粒与骨架质粒加入同一管 500 µL 稀释液中，混匀静置约 5 min。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;复合物&lt;/strong&gt;：将转染试剂稀释液&lt;strong&gt;逐滴&lt;/strong&gt;加入质粒稀释液，轻弹混匀，&lt;strong&gt;室温静置约 15 min&lt;/strong&gt;，形成 DNA-转染试剂复合物。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;转染&lt;/strong&gt;：先将 293T 培养基换成新鲜无血清培养基（10 mL）；随后将复合物&lt;strong&gt;沿皿壁/四周画圈逐滴&lt;/strong&gt;加入，轻晃均匀。&lt;/li&gt;
&lt;li&gt;转染后 &lt;strong&gt;6 h&lt;/strong&gt; 换回完全培养基，继续培养 &lt;strong&gt;48 h&lt;/strong&gt;。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;3. 病毒收获与储存&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;3-病毒收获与储存&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#3-%e7%97%85%e6%af%92%e6%94%b6%e8%8e%b7%e4%b8%8e%e5%82%a8%e5%ad%98&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;48 h&lt;/strong&gt; 后收集细胞上清。&lt;/li&gt;
&lt;li&gt;0.22 µm 滤膜过滤以去除细胞碎片。&lt;/li&gt;
&lt;li&gt;将假病毒上清分装（如 15 mL 管，或按实验用量小份分装），&lt;strong&gt;标记名称与日期&lt;/strong&gt;，&lt;strong&gt;−80 ℃ 保存&lt;/strong&gt;（避免反复冻融）。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;四、 病毒感染活力检测与剂量标定&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;四-病毒感染活力检测与剂量标定&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#%e5%9b%9b-%e7%97%85%e6%af%92%e6%84%9f%e6%9f%93%e6%b4%bb%e5%8a%9b%e6%a3%80%e6%b5%8b%e4%b8%8e%e5%89%82%e9%87%8f%e6%a0%87%e5%ae%9a&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;包装后的假病毒在用于中和实验前需验证感染活力，并把不同病毒株/批次标定到相近的感染剂量（否则测得的中和效力会随病毒输入量漂移）。&lt;/p&gt;
&lt;h3&gt;1. Huh7 铺板（活力检测）&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;1-huh7-铺板活力检测&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#1-huh7-%e9%93%ba%e6%9d%bf%e6%b4%bb%e5%8a%9b%e6%a3%80%e6%b5%8b&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;96 孔细胞培养板的外周一圈：即 A1–A12、H1–H12、B1–G1、B12–G12 孔中加入 150 µL/孔的 PBS。&lt;/li&gt;
&lt;li&gt;用 DMEM 完全培养基将状态良好的 Huh7 稀释至 &lt;strong&gt;1 × 10⁵ cells/mL&lt;/strong&gt;，取 &lt;strong&gt;100 µL/孔&lt;/strong&gt; 加入 96 孔细胞培养板&lt;strong&gt;中间的 60 个孔&lt;/strong&gt;。&lt;/li&gt;
&lt;li&gt;37 ℃ 培养 &lt;strong&gt;7–8 h&lt;/strong&gt; 后用于感染。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;2. 病毒稀释与感染&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;2-病毒稀释与感染&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#2-%e7%97%85%e6%af%92%e7%a8%80%e9%87%8a%e4%b8%8e%e6%84%9f%e6%9f%93&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;在 &lt;strong&gt;U 底 96 孔板&lt;/strong&gt;中用&lt;strong&gt;无血清 DMEM&lt;/strong&gt; 将病毒做&lt;strong&gt;四个梯度&lt;/strong&gt;：原液、2 倍、4 倍、8 倍稀释。&lt;/li&gt;
&lt;li&gt;每孔直接加入 &lt;strong&gt;100 µL&lt;/strong&gt; 病毒稀释液（不弃原有细胞培养基），37 ℃ 感染 &lt;strong&gt;24 h&lt;/strong&gt;。&lt;/li&gt;
&lt;li&gt;感染 24 h 后换回完全培养基，继续 &lt;strong&gt;36 h&lt;/strong&gt;（共约 60 h 后检测）。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;3. 萤火虫荧光素酶检测&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;3-萤火虫荧光素酶检测&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#3-%e8%90%a4%e7%81%ab%e8%99%ab%e8%8d%a7%e5%85%89%e7%b4%a0%e9%85%b6%e6%a3%80%e6%b5%8b&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;弃去孔内上清。&lt;/li&gt;
&lt;li&gt;每孔加入 &lt;strong&gt;50 µL 1× 细胞裂解液&lt;/strong&gt;（将 5× 储液用去离子水稀释至 1×），摇床&lt;strong&gt;室温振荡裂解约 40 min&lt;/strong&gt;。&lt;/li&gt;
&lt;li&gt;取 &lt;strong&gt;40 µL&lt;/strong&gt; 裂解液转移至 &lt;strong&gt;96 孔白板&lt;/strong&gt;，加入&lt;strong&gt;等体积（40 µL）荧光素酶底物&lt;/strong&gt;。&lt;/li&gt;
&lt;li&gt;立即用酶标仪读取发光信号（RLU）。RLU 越高表示病毒感染活力越强。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;4. 中和用剂量标定&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;4-中和用剂量标定&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#4-%e4%b8%ad%e5%92%8c%e7%94%a8%e5%89%82%e9%87%8f%e6%a0%87%e5%ae%9a&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;用无血清 DMEM 调整各病毒株/批次，使设定体积内产生的感染信号落在同一区间（本记录将中和输入病毒校正到约 &lt;strong&gt;10 × 10⁴ RLU&lt;/strong&gt;），后续中和实验的病毒量即以此确认。&lt;/p&gt;
&lt;h2&gt;五、 中和实验&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;五-中和实验&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#%e4%ba%94-%e4%b8%ad%e5%92%8c%e5%ae%9e%e9%aa%8c&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;h3&gt;1. Huh7 铺板&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;1-huh7-铺板&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#1-huh7-%e9%93%ba%e6%9d%bf&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;同第四部分：DMEM 完全培养基铺 Huh7，100 µL/孔，37 ℃ &lt;strong&gt;7–8 h&lt;/strong&gt;。&lt;/p&gt;
&lt;h3&gt;2. 病毒输入&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;2-病毒输入&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#2-%e7%97%85%e6%af%92%e8%be%93%e5%85%a5&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;用无血清 DMEM 将各病毒株稀释至标定的感染剂量（见四.4），备用。&lt;/p&gt;
&lt;h3&gt;3. 抗体稀释与抗体-病毒孵育&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;3-抗体稀释与抗体-病毒孵育&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#3-%e6%8a%97%e4%bd%93%e7%a8%80%e9%87%8a%e4%b8%8e%e6%8a%97%e4%bd%93-%e7%97%85%e6%af%92%e5%ad%b5%e8%82%b2&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;将待测单抗预调至 &lt;strong&gt;0.5 mg/mL&lt;/strong&gt;（工作储液浓度）。&lt;/li&gt;
&lt;li&gt;在 &lt;strong&gt;U 底 96 孔板&lt;/strong&gt;中按下表做梯度：&lt;/li&gt;
&lt;/ol&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;孔位&lt;/th&gt;
          &lt;th&gt;操作&lt;/th&gt;
          &lt;th&gt;混合后抗体终浓度（µg/mL）&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;第 1 孔&lt;/td&gt;
          &lt;td&gt;196 µL 病毒 + &lt;strong&gt;4 µL 抗体（0.5 mg/mL）&lt;/strong&gt;，吹打混匀&lt;/td&gt;
          &lt;td&gt;10.000&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;第 2–9 孔&lt;/td&gt;
          &lt;td&gt;各 120 µL 病毒&lt;/td&gt;
          &lt;td&gt;—&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;第 2 孔&lt;/td&gt;
          &lt;td&gt;从第 1 孔取 &lt;strong&gt;60 µL&lt;/strong&gt; 加入，混匀&lt;/td&gt;
          &lt;td&gt;3.333&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;第 3 孔&lt;/td&gt;
          &lt;td&gt;从第 2 孔取 60 µL 加入，混匀&lt;/td&gt;
          &lt;td&gt;1.111&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;第 4 孔&lt;/td&gt;
          &lt;td&gt;依次 60 µL 3 倍转移&lt;/td&gt;
          &lt;td&gt;0.370&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;第 5–9 孔&lt;/td&gt;
          &lt;td&gt;依次 3 倍转移&lt;/td&gt;
          &lt;td&gt;0.123 / 0.041 / 0.014 / 0.005 / 0.002&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;（即 9 个浓度、3 倍倍比，覆盖 10 → 0.002 µg/mL。中间 60 孔设为实验孔，每浓度两重复；第 10 孔作为&lt;strong&gt;仅病毒&lt;/strong&gt;对照孔。）&lt;/p&gt;
&lt;ol start=&#34;3&#34;&gt;
&lt;li&gt;混合完成后，将 U 底板放入 &lt;strong&gt;37 ℃ 培养箱孵育 30 min&lt;/strong&gt;（抗体与病毒预结合）。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;4. 感染&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;4-感染&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#4-%e6%84%9f%e6%9f%93&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;每孔直接加入 &lt;strong&gt;100 µL&lt;/strong&gt; 抗体-病毒混合液（不弃原有细胞培养基，孔内总体积约 200 µL），37 ℃ 感染。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;24 h&lt;/strong&gt; 后换回完全培养基，继续 &lt;strong&gt;36 h&lt;/strong&gt;培养。&lt;/li&gt;
&lt;/ol&gt;
&lt;div class=&#34;hx-overflow-x-auto hx-mt-6 hx-flex hx-flex-col hx-rounded-lg hx-border hx-py-4 hx-px-4 contrast-more:hx-border-current contrast-more:dark:hx-border-current hx-border-blue-200 hx-bg-blue-100 hx-text-blue-900 dark:hx-border-blue-200/30 dark:hx-bg-blue-900/30 dark:hx-text-blue-200&#34;&gt;
  &lt;p class=&#34;hx-flex hx-items-center hx-font-medium&#34;&gt;&lt;svg height=16px class=&#34;hx-inline-block hx-align-middle hx-mr-2&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34; fill=&#34;none&#34; viewBox=&#34;0 0 24 24&#34; stroke-width=&#34;2&#34; stroke=&#34;currentColor&#34; aria-hidden=&#34;true&#34;&gt;&lt;path stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34; d=&#34;M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z&#34;/&gt;&lt;/svg&gt;Note&lt;/p&gt;

  &lt;div class=&#34;hx-w-full hx-min-w-0 hx-leading-7&#34;&gt;
    &lt;div class=&#34;hx-mt-6 hx-leading-7 first:hx-mt-0&#34;&gt;&lt;p&gt;抗体-病毒混合液直接加在原有细胞培养上（不弃旧培养基）；表中&amp;quot;混合后终浓度&amp;quot;为混合液内浓度，实际孵育时孔内总体积约 200 µL，抗体浓度需再除以约 2。&lt;/p&gt;
&lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h3&gt;5. 读出&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;5-读出&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#5-%e8%af%bb%e5%87%ba&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;同四.3（弃上清 → 50 µL 1× 裂解液室温 40 min → 40 µL + 等体积底物 → 读 RLU）。&lt;/p&gt;
&lt;h2&gt;六、 数据记录与结果计算&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;六-数据记录与结果计算&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#%e5%85%ad-%e6%95%b0%e6%8d%ae%e8%ae%b0%e5%bd%95%e4%b8%8e%e7%bb%93%e6%9e%9c%e8%ae%a1%e7%ae%97&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;h3&gt;1. 对照&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;1-对照&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#1-%e5%af%b9%e7%85%a7&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;对照&lt;/th&gt;
          &lt;th&gt;含义&lt;/th&gt;
          &lt;th&gt;处理&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;病毒对照（仅病毒，无抗体）&lt;/td&gt;
          &lt;td&gt;0% 中和（100% 感染信号）&lt;/td&gt;
          &lt;td&gt;应给出最高 RLU&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;细胞对照（仅细胞，无病毒）&lt;/td&gt;
          &lt;td&gt;本底&lt;/td&gt;
          &lt;td&gt;从所有读值中扣除&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;（可选）已知中和抗体&lt;/td&gt;
          &lt;td&gt;阳性对照&lt;/td&gt;
          &lt;td&gt;监控批间一致性&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3&gt;2. 中和率计算&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;2-中和率计算&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#2-%e4%b8%ad%e5%92%8c%e7%8e%87%e8%ae%a1%e7%ae%97&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;以 mAb 为例（测血清时把&amp;quot;浓度&amp;quot;换成&amp;quot;稀释度&amp;quot;即可）：&lt;/p&gt;
&lt;div class=&#34;hextra-code-block hx-relative hx-mt-6 first:hx-mt-0 hx-group/code&#34;&gt;

&lt;pre&gt;&lt;code&gt;中和率（%）= (1 − (RLU(样本) − RLU(本底)) / (RLU(病毒对照) − RLU(本底))) × 100%&lt;/code&gt;&lt;/pre&gt;&lt;div class=&#34;hextra-code-copy-btn-container hx-opacity-0 hx-transition group-hover/code:hx-opacity-100 hx-flex hx-gap-1 hx-absolute hx-m-[11px] hx-right-0 hx-top-0&#34;&gt;
  &lt;button
    class=&#34;hextra-code-copy-btn hx-group/copybtn hx-transition-all active:hx-opacity-50 hx-bg-primary-700/5 hx-border hx-border-black/5 hx-text-gray-600 hover:hx-text-gray-900 hx-rounded-md hx-p-1.5 dark:hx-bg-primary-300/10 dark:hx-border-white/10 dark:hx-text-gray-400 dark:hover:hx-text-gray-50&#34;
    title=&#34;Copy code&#34;
  &gt;
    &lt;div class=&#34;copy-icon group-[.copied]/copybtn:hx-hidden hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
    &lt;div class=&#34;success-icon hx-hidden group-[.copied]/copybtn:hx-block hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
  &lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;对每个抗体浓度计算中和率，两重复取均值。&lt;/li&gt;
&lt;li&gt;以抗体浓度（log10）为横轴、中和率（%）为纵轴作图，得到 S 形剂量-反应曲线。&lt;/li&gt;
&lt;li&gt;用&lt;strong&gt;四参数 logistic（4PL）非线性回归&lt;/strong&gt;拟合（如 GraphPad Prism 的 &amp;ldquo;log(inhibitor) vs. normalized response — Variable slope&amp;rdquo;），取抑制 50% 感染信号对应的抗体浓度作为 &lt;strong&gt;IC50&lt;/strong&gt;。&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&#34;hx-overflow-x-auto hx-mt-6 hx-flex hx-flex-col hx-rounded-lg hx-border hx-py-4 hx-px-4 contrast-more:hx-border-current contrast-more:dark:hx-border-current hx-border-blue-200 hx-bg-blue-100 hx-text-blue-900 dark:hx-border-blue-200/30 dark:hx-bg-blue-900/30 dark:hx-text-blue-200&#34;&gt;
  &lt;p class=&#34;hx-flex hx-items-center hx-font-medium&#34;&gt;&lt;svg height=16px class=&#34;hx-inline-block hx-align-middle hx-mr-2&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34; fill=&#34;none&#34; viewBox=&#34;0 0 24 24&#34; stroke-width=&#34;2&#34; stroke=&#34;currentColor&#34; aria-hidden=&#34;true&#34;&gt;&lt;path stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34; d=&#34;M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z&#34;/&gt;&lt;/svg&gt;Note&lt;/p&gt;

  &lt;div class=&#34;hx-w-full hx-min-w-0 hx-leading-7&#34;&gt;
    &lt;div class=&#34;hx-mt-6 hx-leading-7 first:hx-mt-0&#34;&gt;&lt;p&gt;&amp;ldquo;减本底归一化 + 四参数变斜率拟合求 IC50&amp;rdquo; 是假病毒中和数据的标准分析流程（见文末参考：Ferrara &amp;amp; Temperton, 2018）。若测血清并按稀释度报告，可定义 NT50 为使 RLU 相对（仅病毒孔 − 仅细胞孔）差值下降 50% 的血清稀释度（Zhang 等, STAR Protocols, 2025）。&lt;/p&gt;
&lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h3&gt;3. 预期结果&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;3-预期结果&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#3-%e9%a2%84%e6%9c%9f%e7%bb%93%e6%9e%9c&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;具有中和活性的抗体呈现典型的&lt;strong&gt;剂量依赖性抑制&lt;/strong&gt;：低浓度接近 0%、高浓度接近 100%。&lt;/li&gt;
&lt;li&gt;无中和活性的抗体各浓度中和率均接近 0（在误差范围内）。&lt;/li&gt;
&lt;li&gt;若抗体与 RBD/受体结合阳性却不显示中和，可能因表位不阻断受体结合或病毒输入量过高（见问题排查）。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;七、 问题排查与注意事项&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;七-问题排查与注意事项&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#%e4%b8%83-%e9%97%ae%e9%a2%98%e6%8e%92%e6%9f%a5%e4%b8%8e%e6%b3%a8%e6%84%8f%e4%ba%8b%e9%a1%b9&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;details class=&#34;last-of-type:hx-mb-0 hx-rounded-lg hx-bg-neutral-50 dark:hx-bg-neutral-800 hx-p-2 hx-mt-4 hx-group&#34; &gt;
  &lt;summary class=&#34;hx-flex hx-items-center hx-cursor-pointer hx-select-none hx-list-none hx-p-1 hx-rounded hx-transition-colors hover:hx-bg-gray-100 dark:hover:hx-bg-neutral-800 before:hx-mr-1 before:hx-inline-block before:hx-transition-transform before:hx-content-[&#39;&#39;] dark:before:hx-invert rtl:before:hx-rotate-180 group-open:before:hx-rotate-90&#34;&gt;
    &lt;strong class=&#34;hx-text-lg&#34;&gt;问题排查（Troubleshooting）&lt;/strong&gt;
  &lt;/summary&gt;
  &lt;div class=&#34;hx-p-2 hx-overflow-hidden&#34;&gt;
    &lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;现象&lt;/th&gt;
          &lt;th&gt;可能原因&lt;/th&gt;
          &lt;th&gt;处理建议&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;整体 RLU 很低 / 无信号&lt;/td&gt;
          &lt;td&gt;包装失败、293T 汇合度过高过低、病毒反复冻融、Huh7 状态差&lt;/td&gt;
          &lt;td&gt;收液后尽快分装 −80 ℃；转染前确保细胞处于对数生长期&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;阳性抗体也不中和&lt;/td&gt;
          &lt;td&gt;病毒输入量过高（抗体相对不足）、mAb 表位不阻断结合&lt;/td&gt;
          &lt;td&gt;降低病毒剂量重标定；换用已知中和阳性抗体验证体系&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;中和曲线不完整（顶部不到 100%）&lt;/td&gt;
          &lt;td&gt;抗体最高浓度不够 / 病毒输入过高&lt;/td&gt;
          &lt;td&gt;提高起始浓度或降低病毒输入量；延长最高浓度平台&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;批间差异大&lt;/td&gt;
          &lt;td&gt;病毒批次间滴度漂移、细胞批次差异&lt;/td&gt;
          &lt;td&gt;每次用同一标定靶 RLU；固定铺板密度；板内设阳性对照 mAb&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RLU 背景高&lt;/td&gt;
          &lt;td&gt;裂解液/底物污染、白板污染&lt;/td&gt;
          &lt;td&gt;现配底物；用洁净的枪头&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
  &lt;/div&gt;
&lt;/details&gt;
&lt;details class=&#34;last-of-type:hx-mb-0 hx-rounded-lg hx-bg-neutral-50 dark:hx-bg-neutral-800 hx-p-2 hx-mt-4 hx-group&#34; &gt;
  &lt;summary class=&#34;hx-flex hx-items-center hx-cursor-pointer hx-select-none hx-list-none hx-p-1 hx-rounded hx-transition-colors hover:hx-bg-gray-100 dark:hover:hx-bg-neutral-800 before:hx-mr-1 before:hx-inline-block before:hx-transition-transform before:hx-content-[&#39;&#39;] dark:before:hx-invert rtl:before:hx-rotate-180 group-open:before:hx-rotate-90&#34;&gt;
    &lt;strong class=&#34;hx-text-lg&#34;&gt;注意事项（Notes）&lt;/strong&gt;
  &lt;/summary&gt;
  &lt;div class=&#34;hx-p-2 hx-overflow-hidden&#34;&gt;
    &lt;ul&gt;
&lt;li&gt;假病毒为重组慢病毒报告系统，需按规范处理废弃物与消毒。&lt;/li&gt;
&lt;li&gt;病毒梯度滴定用的 4 个梯度（原液/2/4/8 倍）用于初筛活力；正式中和实验将不同毒株的目标 RLU 信号调整至相似的区间。&lt;/li&gt;
&lt;/ul&gt;
  &lt;/div&gt;
&lt;/details&gt;
&lt;div class=&#34;hx-overflow-x-auto hx-mt-6 hx-flex hx-rounded-lg hx-border hx-py-2 ltr:hx-pr-4 rtl:hx-pl-4 contrast-more:hx-border-current contrast-more:dark:hx-border-current hx-border-blue-200 hx-bg-blue-100 hx-text-blue-900 dark:hx-border-blue-200/30 dark:hx-bg-blue-900/30 dark:hx-text-blue-200&#34;&gt;
  &lt;div class=&#34;ltr:hx-pl-3 ltr:hx-pr-2 rtl:hx-pr-3 rtl:hx-pl-2&#34;&gt;&lt;div class=&#34;hx-select-none hx-text-xl&#34; style=&#34;font-family: &#39;Apple Color Emoji&#39;, &#39;Segoe UI Emoji&#39;, &#39;Segoe UI Symbol&#39;;&#34;&gt;🤖&lt;/div&gt;&lt;/div&gt;

  &lt;div class=&#34;hx-w-full hx-min-w-0 hx-leading-7&#34;&gt;
    &lt;div class=&#34;hx-mt-6 hx-leading-7 first:hx-mt-0&#34;&gt;&lt;strong&gt;AI 使用声明&lt;/strong&gt;：本文由作者撰写，AI 工具（Claude）辅助完成初稿起草与格式整理。作者已审校全部内容，并对准确性承担最终责任。&lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;h2&gt;八、 相关方法&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;八-相关方法&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#%e5%85%ab-%e7%9b%b8%e5%85%b3%e6%96%b9%e6%b3%95&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;抗体结合是否阳性的前期筛选：&lt;a href=&#34;https://www.songxue-j.com/zh-cn/blog/sars-cov-2-spike-rbd-binding-elisa/&#34; &gt;间接 ELISA 检测抗 SARS-CoV-2 Spike RBD 抗体结合&lt;/a&gt;。&lt;/li&gt;
&lt;li&gt;中和实验所用单克隆抗体的制备：&lt;a href=&#34;https://www.songxue-j.com/zh-cn/blog/recombinant-mab-expression-protein-g-purification/&#34; &gt;单克隆抗体 HEK293F 瞬时表达与 Protein G 亲和纯化&lt;/a&gt;。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;其他可参考的资料&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;其他可参考的资料&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#%e5%85%b6%e4%bb%96%e5%8f%af%e5%8f%82%e8%80%83%e7%9a%84%e8%b5%84%e6%96%99&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;Crawford KHD, et al. Protocol and Reagents for Pseudotyping Lentiviral Particles with SARS-CoV-2 Spike Protein for Neutralization Assays. Viruses, 2020. &lt;a href=&#34;https://doi.org/10.3390/v12050513&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;https://doi.org/10.3390/v12050513&lt;/a&gt;（PMC 全文：&lt;a href=&#34;https://pmc.ncbi.nlm.nih.gov/articles/PMC7291041/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;https://pmc.ncbi.nlm.nih.gov/articles/PMC7291041/&lt;/a&gt;）— 荧光/荧光素酶报告假病毒中和实验的代表性 BSL-2 方案（病毒剂量、对照与线性信号要求）。&lt;/li&gt;
&lt;li&gt;Di Genova C, et al. Production, Titration, Neutralisation, Storage and Lyophilisation of SARS-CoV-2 Lentiviral Pseudotypes. Bio-protocol, 2021. &lt;a href=&#34;https://doi.org/10.21769/BioProtoc.4236&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;https://doi.org/10.21769/BioProtoc.4236&lt;/a&gt; — 慢病毒假病毒的生产/滴定/中和/储存全程详解。&lt;/li&gt;
&lt;li&gt;Ferrara F, Temperton N. Pseudotype Neutralization Assays: From Laboratory Bench to Data Analysis. Methods and Protocols, 2018. &lt;a href=&#34;https://doi.org/10.3390/mps1010008&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;https://doi.org/10.3390/mps1010008&lt;/a&gt; — 中和率归一化（病毒孔 0%、细胞孔 100%）与四参数变斜率拟合求 IC50 的标准流程。&lt;/li&gt;
&lt;li&gt;Zhang Y, et al. Protocol for evaluating humoral immune responses in mice following SARS-CoV-2 vaccination. STAR Protocols, 2025. &lt;a href=&#34;https://doi.org/10.1016/j.xpro.2024.103548&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;https://doi.org/10.1016/j.xpro.2024.103548&lt;/a&gt; — NT50 定义（相对 NVC/NPC 差值下降 50% 的稀释度）示例。&lt;/li&gt;
&lt;li&gt;CDC/NIH. Biosafety in Microbiological and Biomedical Laboratories (BMBL), 6th ed. &lt;a href=&#34;https://www.cdc.gov/labs/bmbl/index.html&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;https://www.cdc.gov/labs/bmbl/index.html&lt;/a&gt; — 含灭活与验证的机构生物安全风险评估框架。&lt;/li&gt;
&lt;li&gt;荧光素酶检测体系官方说明：Promega E1501 Luciferase Assay System、E1531 裂解液（5×）与 TB281 Technical Bulletin：&lt;a href=&#34;https://www.promega.com.cn/resources/protocols/technical-bulletins/0/luciferase-assay-system-protocol/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;https://www.promega.com.cn/resources/protocols/technical-bulletins/0/luciferase-assay-system-protocol/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
      </description>
    </item>
    
    <item>
      <title>单克隆抗体 HEK293F 瞬时表达与 Protein G 亲和纯化</title>
      <link>https://www.songxue-j.com/zh-cn/blog/recombinant-mab-expression-protein-g-purification/</link>
      <pubDate>Thu, 03 Sep 2026 00:00:00 +0000</pubDate>
      
      <guid>https://www.songxue-j.com/zh-cn/blog/recombinant-mab-expression-protein-g-purification/</guid>
      <description>
        
        
        &lt;p&gt;本文整理一套在悬浮 HEK293F 细胞中瞬时表达重组单克隆抗体（IgG）并用 Protein G 亲和层析纯化的流程，覆盖：细胞转染与表达、上清收获与澄清、Protein G 结合与低 pH 洗脱（即时中和）、超滤浓缩与定量，以及 SDS-PAGE 质控和填料再生。&lt;/p&gt;
&lt;p&gt;整套流程以 45 mL 摇瓶培养规模为例。&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;一、 流程概述与关键点&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;一-流程概述与关键点&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#%e4%b8%80-%e6%b5%81%e7%a8%8b%e6%a6%82%e8%bf%b0%e4%b8%8e%e5%85%b3%e9%94%ae%e7%82%b9&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;重组 IgG 由两个相同重链（heavy chain, HC）与两个相同轻链（light chain, LC）组成。将编码 HC 与 LC 的表达质粒共转染悬浮 HEK293F 细胞后，细胞将装配并分泌完整 IgG 至培养基；培养数日后收获上清，经 Protein G 亲和填料（结合 IgG 的 Fc 区）一步富集，再低 pH 洗脱。由于洗脱液偏酸会使 IgG 部分变性/聚集，&lt;strong&gt;洗脱液必须直接滴入预先装有碱性中和液的收集管&lt;/strong&gt;，防止局部 pH 过低。&lt;/p&gt;
&lt;div class=&#34;hx-overflow-x-auto hx-mt-6 hx-flex hx-rounded-lg hx-border hx-py-2 ltr:hx-pr-4 rtl:hx-pl-4 contrast-more:hx-border-current contrast-more:dark:hx-border-current hx-border-yellow-100 hx-bg-yellow-50 hx-text-yellow-900 dark:hx-border-yellow-200/30 dark:hx-bg-yellow-700/30 dark:hx-text-yellow-200&#34;&gt;
  &lt;div class=&#34;ltr:hx-pl-3 ltr:hx-pr-2 rtl:hx-pr-3 rtl:hx-pl-2&#34;&gt;&lt;div class=&#34;hx-select-none hx-text-xl&#34; style=&#34;font-family: &#39;Apple Color Emoji&#39;, &#39;Segoe UI Emoji&#39;, &#39;Segoe UI Symbol&#39;;&#34;&gt;🔧&lt;/div&gt;&lt;/div&gt;

  &lt;div class=&#34;hx-w-full hx-min-w-0 hx-leading-7&#34;&gt;
    &lt;div class=&#34;hx-mt-6 hx-leading-7 first:hx-mt-0&#34;&gt;&lt;p&gt;关键成功因素：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;转染时细胞活力要高（通常 &amp;gt; 90%）；&lt;/li&gt;
&lt;li&gt;全程缓冲液预冷（4 ℃），避免抗体长时间处于室温；&lt;/li&gt;
&lt;li&gt;低 pH 洗脱必须即时中和；&lt;/li&gt;
&lt;li&gt;浓缩/换液用 30 kDa 截留超滤管，避免 IgG（约 150 kDa）损失。&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;h2&gt;二、 材料、试剂与缓冲液&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;二-材料试剂与缓冲液&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#%e4%ba%8c-%e6%9d%90%e6%96%99%e8%af%95%e5%89%82%e4%b8%8e%e7%bc%93%e5%86%b2%e6%b6%b2&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;h3&gt;1. 试剂与耗材&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;1-试剂与耗材&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#1-%e8%af%95%e5%89%82%e4%b8%8e%e8%80%97%e6%9d%90&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;物料&lt;/th&gt;
          &lt;th&gt;用途&lt;/th&gt;
          &lt;th&gt;规格/说明&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;悬浮 HEK293F 细胞&lt;/td&gt;
          &lt;td&gt;表达宿主&lt;/td&gt;
          &lt;td&gt;Gibco Expi293F（货号 A14527）&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;无血清悬浮培养基&lt;/td&gt;
          &lt;td&gt;细胞培养&lt;/td&gt;
          &lt;td&gt;奥浦迈 293F Hi-exp 培养基（货号 AC601501）&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Optimal-MEM 减血清培养基&lt;/td&gt;
          &lt;td&gt;稀释质粒与转染试剂&lt;/td&gt;
          &lt;td&gt;美仑生物（Meilunbio）PWL041（含酚红）或 PWL042（不含酚红）&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;HC 表达质粒&lt;/td&gt;
          &lt;td&gt;编码抗体重链&lt;/td&gt;
          &lt;td&gt;转染级（去内毒素），A260/280 合格&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;LC 表达质粒&lt;/td&gt;
          &lt;td&gt;编码抗体轻链&lt;/td&gt;
          &lt;td&gt;同上&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;转染试剂&lt;/td&gt;
          &lt;td&gt;递送质粒入细胞&lt;/td&gt;
          &lt;td&gt;李记生物（Life-iLab）EZ Trans 细胞转染试剂（高效），货号 AC04L092（50 mL）&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;补料液&lt;/td&gt;
          &lt;td&gt;延长表达&lt;/td&gt;
          &lt;td&gt;奥浦迈 OPM-293 ProFeed（货号 F081918-001，1000 mL）+ 葡萄糖母液（450 g/L）&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Protein G 亲和填料&lt;/td&gt;
          &lt;td&gt;捕获 IgG&lt;/td&gt;
          &lt;td&gt;GenScript Protein G Resin（货号 L00209）；20% EtOH 保存，用前预冷 PBS 清洗&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;重力亲和层析柱&lt;/td&gt;
          &lt;td&gt;柱层析&lt;/td&gt;
          &lt;td&gt;依上清体积选柱（如 3–6 mL 柱床）&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;30 kDa 超滤浓缩管&lt;/td&gt;
          &lt;td&gt;浓缩/换液&lt;/td&gt;
          &lt;td&gt;Millipore Amicon Ultra-4（Ultracel-30K），货号 UFC803024（24 支/盒）&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;0.45 µm 滤膜&lt;/td&gt;
          &lt;td&gt;上清澄清&lt;/td&gt;
          &lt;td&gt;或离心澄清&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;预染蛋白 marker、5× 上样缓冲液&lt;/td&gt;
          &lt;td&gt;SDS-PAGE&lt;/td&gt;
          &lt;td&gt;含还原剂&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;4–12% 预制胶&lt;/td&gt;
          &lt;td&gt;SDS-PAGE&lt;/td&gt;
          &lt;td&gt;梯度胶&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;考马斯亮蓝 R-250&lt;/td&gt;
          &lt;td&gt;胶染色&lt;/td&gt;
          &lt;td&gt;染色/脱色&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3&gt;2. 缓冲液配方&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;2-缓冲液配方&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#2-%e7%bc%93%e5%86%b2%e6%b6%b2%e9%85%8d%e6%96%b9&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;缓冲液&lt;/th&gt;
          &lt;th&gt;配方&lt;/th&gt;
          &lt;th&gt;用途&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;PBS（预冷）&lt;/td&gt;
          &lt;td&gt;1× PBS，pH 7.4&lt;/td&gt;
          &lt;td&gt;填料平衡、洗涤、浓缩后换液/定容&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;洗脱缓冲液（elution buffer）&lt;/td&gt;
          &lt;td&gt;Pierce IgG Elution Buffer（货号 21004，1 L；pH 2.8，即用型）&lt;/td&gt;
          &lt;td&gt;低 pH 洗脱 IgG&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;中和液&lt;/td&gt;
          &lt;td&gt;1 M Tris-HCl，pH 9.0&lt;/td&gt;
          &lt;td&gt;按预计洗脱体积的约 1/10 预置于收集管&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;再生/去污洗液&lt;/td&gt;
          &lt;td&gt;0.5 M Glycine，pH 2.7&lt;/td&gt;
          &lt;td&gt;Beads 再生（去除残留结合物）&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;PBST&lt;/td&gt;
          &lt;td&gt;PBS + 0.05%（v/v）Tween-20&lt;/td&gt;
          &lt;td&gt;Beads 再生清洗&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;EtOH 溶液&lt;/td&gt;
          &lt;td&gt;70%、20%（v/v）&lt;/td&gt;
          &lt;td&gt;填料消毒/保存（20% EtOH 4 ℃ 长期保存）&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2&gt;三、 细胞准备与瞬时转染&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;三-细胞准备与瞬时转染&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#%e4%b8%89-%e7%bb%86%e8%83%9e%e5%87%86%e5%a4%87%e4%b8%8e%e7%9e%ac%e6%97%b6%e8%bd%ac%e6%9f%93&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;h3&gt;1. 培养规模与密度&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;1-培养规模与密度&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#1-%e5%9f%b9%e5%85%bb%e8%a7%84%e6%a8%a1%e4%b8%8e%e5%af%86%e5%ba%a6&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;取活力 &amp;gt; 90% 的 293F 细胞，以约 &lt;strong&gt;1.5 × 10⁶ cells/mL&lt;/strong&gt; 接种于摇瓶（&lt;strong&gt;45 mL&lt;/strong&gt; 培养体积；加入转染体系后总体积约 &lt;strong&gt;50 mL&lt;/strong&gt;），37 ℃、5% CO₂、约 120 rpm 振荡培养。&lt;/li&gt;
&lt;li&gt;转染前记录细胞密度与活力，确认处于对数期。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;2. 配制质粒-转染试剂复合物&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;2-配制质粒-转染试剂复合物&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#2-%e9%85%8d%e5%88%b6%e8%b4%a8%e7%b2%92-%e8%bd%ac%e6%9f%93%e8%af%95%e5%89%82%e5%a4%8d%e5%90%88%e7%89%a9&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;取两个离心管，分别加入 &lt;strong&gt;Opti-MEM&lt;/strong&gt;（见步骤 3 的体积）。&lt;/li&gt;
&lt;li&gt;一管加入 &lt;strong&gt;HC 质粒&lt;/strong&gt;，另一管加入 &lt;strong&gt;LC 质粒&lt;/strong&gt;（两者摩尔数/质量比约 1:1）。&lt;/li&gt;
&lt;li&gt;向其中一管 Opti-MEM 中加入 &lt;strong&gt;转染试剂&lt;/strong&gt;，另一管加入质粒 DNA；将转染试剂稀释液与质粒稀释液合并，轻弹/轻吹混匀。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;室温静置约 10 min&lt;/strong&gt;，形成 DNA-转染试剂复合物。&lt;/li&gt;
&lt;/ol&gt;
&lt;div class=&#34;hx-overflow-x-auto hx-mt-6 hx-flex hx-rounded-lg hx-border hx-py-2 ltr:hx-pr-4 rtl:hx-pl-4 contrast-more:hx-border-current contrast-more:dark:hx-border-current hx-border-yellow-100 hx-bg-yellow-50 hx-text-yellow-900 dark:hx-border-yellow-200/30 dark:hx-bg-yellow-700/30 dark:hx-text-yellow-200&#34;&gt;
  &lt;div class=&#34;ltr:hx-pl-3 ltr:hx-pr-2 rtl:hx-pr-3 rtl:hx-pl-2&#34;&gt;&lt;div class=&#34;hx-select-none hx-text-xl&#34; style=&#34;font-family: &#39;Apple Color Emoji&#39;, &#39;Segoe UI Emoji&#39;, &#39;Segoe UI Symbol&#39;;&#34;&gt;⚠️&lt;/div&gt;&lt;/div&gt;

  &lt;div class=&#34;hx-w-full hx-min-w-0 hx-leading-7&#34;&gt;
    &lt;div class=&#34;hx-mt-6 hx-leading-7 first:hx-mt-0&#34;&gt;&lt;strong&gt;转染体系（45 mL 培养）：&lt;/strong&gt; 2.4 mL Optimal-MEM 稀释 180 µL 转染试剂；另 2.4 mL Optimal-MEM 稀释 HC 与 LC 质粒各约 30 µg。合并后室温静置约 10 min。&lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;h3&gt;3. 转染&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;3-转染&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#3-%e8%bd%ac%e6%9f%93&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;将复合物&lt;strong&gt;逐滴&lt;/strong&gt;缓慢加入摇瓶（边振荡边滴加，使复合物均匀分散）。&lt;/li&gt;
&lt;li&gt;转染后继续培养。本记录在转染 &lt;strong&gt;24 h&lt;/strong&gt; 后补加补料（2.5 mL 补料 + 0.625 mL 葡萄糖母液（450 g/L）/50 mL 体系）。&lt;/li&gt;
&lt;li&gt;转染 &lt;strong&gt;72 h&lt;/strong&gt; 后补加 2.5 mL 补料，不加葡萄糖。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;第 7 天&lt;/strong&gt;（约转染后 7 天）收获上清。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;四、 上清收获与澄清&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;四-上清收获与澄清&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#%e5%9b%9b-%e4%b8%8a%e6%b8%85%e6%94%b6%e8%8e%b7%e4%b8%8e%e6%be%84%e6%b8%85&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;ol&gt;
&lt;li&gt;将培养物分装至离心管（约 &lt;strong&gt;45 mL/管&lt;/strong&gt;）。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;4 ℃ 离心去细胞&lt;/strong&gt;（4000 g、40 min、10 ℃）。&lt;/li&gt;
&lt;li&gt;取上清，经 &lt;strong&gt;0.45 µm 滤膜&lt;/strong&gt;过滤，得到澄清上清，用于 Protein G 纯化。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;五、 Protein G 亲和纯化&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;五-protein-g-亲和纯化&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#%e4%ba%94-protein-g-%e4%ba%b2%e5%92%8c%e7%ba%af%e5%8c%96&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;按&amp;quot;填料与上清批式结合 → 重力柱洗涤与洗脱&amp;quot;的流程进行纯化。&lt;/p&gt;
&lt;h3&gt;1. 填料准备与结合&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;1-填料准备与结合&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#1-%e5%a1%ab%e6%96%99%e5%87%86%e5%a4%87%e4%b8%8e%e7%bb%93%e5%90%88&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;取 Protein G 填料。填料以 &lt;strong&gt;20% EtOH&lt;/strong&gt; 保存，&lt;strong&gt;使用前用预冷 PBS 洗涤数次&lt;/strong&gt;（去除 EtOH 与杂质）。&lt;/li&gt;
&lt;li&gt;按约 &lt;strong&gt;600 µL 填料 / 50 mL 上清&lt;/strong&gt; 的量取用（以填料结合载量和你目标得量为准，可适当增减）。&lt;/li&gt;
&lt;li&gt;将填料加入澄清上清，&lt;strong&gt;4 ℃ 旋转/摇动结合过夜&lt;/strong&gt;（或至少数小时，确保充分结合）。&lt;/li&gt;
&lt;li&gt;次日将含填料的悬液小心移入重力亲和层析柱，让液体自然流下，收集/弃去流出液。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;2. 洗涤&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;2-洗涤&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#2-%e6%b4%97%e6%b6%a4&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;待柱内液体流尽，用&lt;strong&gt;预冷 PBS 加满柱床&lt;/strong&gt;洗涤，让液体自然流下。重复洗涤至约 &lt;strong&gt;10 次柱体积&lt;/strong&gt;。&lt;/li&gt;
&lt;li&gt;柱床始终不要干涸（可留薄层液体覆盖）。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;3. 洗脱与中和&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;3-洗脱与中和&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#3-%e6%b4%97%e8%84%b1%e4%b8%8e%e4%b8%ad%e5%92%8c&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;准备收集管，每管&lt;strong&gt;预置 1 M Tris-HCl pH 9.0&lt;/strong&gt;，体积约为计划洗脱体积的 &lt;strong&gt;1/10&lt;/strong&gt;（例如预计洗脱 900 µL，则预置约 90 µL）。&lt;/li&gt;
&lt;li&gt;向柱中加入 &lt;strong&gt;洗脱缓冲液&lt;/strong&gt;（50 mL 起始体系约加 900 µL；静置 3–5 min 后再打开出口收集）。&lt;/li&gt;
&lt;li&gt;让洗脱液&lt;strong&gt;自然滴入收集管&lt;/strong&gt;，与 Tris 液即时混合，随即&lt;strong&gt;颠倒混匀&lt;/strong&gt;，防止局部 pH 过低导致抗体聚集/沉淀。&lt;/li&gt;
&lt;li&gt;可重复加洗脱缓冲液 2–3 次，合并洗脱液。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;六、 浓缩、置换与定量&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;六-浓缩置换与定量&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#%e5%85%ad-%e6%b5%93%e7%bc%a9%e7%bd%ae%e6%8d%a2%e4%b8%8e%e5%ae%9a%e9%87%8f&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;ol&gt;
&lt;li&gt;将洗脱液加入 &lt;strong&gt;30 kDa 截留超滤管&lt;/strong&gt;（Amicon Ultra 30K）。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;4 ℃、4000 ×g 离心&lt;/strong&gt; 30 min（视浓缩目标体积调整时间，避免过度离心）。&lt;/li&gt;
&lt;li&gt;弃去滤出液。若需换液至 PBS：加入 &lt;strong&gt;预冷 PBS&lt;/strong&gt;（记录用约 4 mL）冲洗原管壁后一并加入超滤管，重复 &lt;strong&gt;2–3 次&lt;/strong&gt;，将缓冲体系置换为 PBS 并同步浓缩。&lt;/li&gt;
&lt;li&gt;收集浓缩液，&lt;strong&gt;测 A280&lt;/strong&gt; 计算浓度（用抗体的消光系数），并记录 A260/280 观察核酸/杂质污染情况。&lt;/li&gt;
&lt;li&gt;用 PBS 将抗体&lt;strong&gt;调至目标浓度（一般约 2 mg/mL）&lt;/strong&gt;，分装保存（短期 4 ℃，长期冻存于 -80 ℃）。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;七、 SDS-PAGE 质控&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;七-sds-page-质控&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#%e4%b8%83-sds-page-%e8%b4%a8%e6%8e%a7&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;样品制备&lt;/strong&gt;：将 5 µg 抗体用 PBS 稀释至 20 µL；加入 &lt;strong&gt;5 µL 5× 上样缓冲液&lt;/strong&gt;（含 DTT）。&lt;/li&gt;
&lt;li&gt;混匀后简短离心，&lt;strong&gt;95 ℃ 加热 10 min&lt;/strong&gt;。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;上样&lt;/strong&gt;：预染蛋白 marker 10 µL/孔，样品 20 µL/孔。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;电泳&lt;/strong&gt;：4–12% 梯度胶，&lt;strong&gt;100 V 约 90 min&lt;/strong&gt;（或按胶厂商建议的电压/时间，以溴酚蓝前沿跑至胶底为准）。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;染色&lt;/strong&gt;：取下凝胶放入容器，加&lt;strong&gt;考马斯亮蓝染液&lt;/strong&gt;浸没，摇床染色 &lt;strong&gt;2–3 h&lt;/strong&gt;；倒掉染液，用脱色液或自来水摇床&lt;strong&gt;脱色过夜&lt;/strong&gt;。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;拍照记录&lt;/strong&gt;。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;预期条带：&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;条件&lt;/th&gt;
          &lt;th&gt;预期&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;还原&lt;/td&gt;
          &lt;td&gt;约 50 kDa（HC）+ 约 25 kDa（LC），无高分子量聚集体条带更佳&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2&gt;八、 Protein G 填料再生与保存&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;八-protein-g-填料再生与保存&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#%e5%85%ab-protein-g-%e5%a1%ab%e6%96%99%e5%86%8d%e7%94%9f%e4%b8%8e%e4%bf%9d%e5%ad%98&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;纯化后按以下顺序处理填料（记录流程）：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;柱中加满 PBS，洗涤 &lt;strong&gt;5 次&lt;/strong&gt;。&lt;/li&gt;
&lt;li&gt;加入 &lt;strong&gt;0.5 M Glycine（pH 2.7）&lt;/strong&gt;，按填料体积的 &lt;strong&gt;2 倍&lt;/strong&gt;量加，孵育约 &lt;strong&gt;5 min&lt;/strong&gt;，重复 &lt;strong&gt;2 次&lt;/strong&gt;（去除残留结合物）。&lt;/li&gt;
&lt;li&gt;PBS 加满洗涤 &lt;strong&gt;5 次&lt;/strong&gt;。&lt;/li&gt;
&lt;li&gt;加满 &lt;strong&gt;PBST（0.05% Tween-20）&lt;/strong&gt;，孵育约 5 min 去除疏水杂质。&lt;/li&gt;
&lt;li&gt;PBS 洗涤 &lt;strong&gt;5 次&lt;/strong&gt;。&lt;/li&gt;
&lt;li&gt;加满 &lt;strong&gt;70% EtOH&lt;/strong&gt;，孵育过夜（消毒/去污，视厂商建议）。&lt;/li&gt;
&lt;li&gt;PBS 洗涤 &lt;strong&gt;5 次&lt;/strong&gt;，最后将填料转入 &lt;strong&gt;20% EtOH&lt;/strong&gt;，&lt;strong&gt;4 ℃ 保存&lt;/strong&gt;。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;九、 问题排查&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;九-问题排查&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#%e4%b9%9d-%e9%97%ae%e9%a2%98%e6%8e%92%e6%9f%a5&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;details class=&#34;last-of-type:hx-mb-0 hx-rounded-lg hx-bg-neutral-50 dark:hx-bg-neutral-800 hx-p-2 hx-mt-4 hx-group&#34; &gt;
  &lt;summary class=&#34;hx-flex hx-items-center hx-cursor-pointer hx-select-none hx-list-none hx-p-1 hx-rounded hx-transition-colors hover:hx-bg-gray-100 dark:hover:hx-bg-neutral-800 before:hx-mr-1 before:hx-inline-block before:hx-transition-transform before:hx-content-[&#39;&#39;] dark:before:hx-invert rtl:before:hx-rotate-180 group-open:before:hx-rotate-90&#34;&gt;
    &lt;strong class=&#34;hx-text-lg&#34;&gt;问题排查（Troubleshooting）&lt;/strong&gt;
  &lt;/summary&gt;
  &lt;div class=&#34;hx-p-2 hx-overflow-hidden&#34;&gt;
    &lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;现象&lt;/th&gt;
          &lt;th&gt;可能原因&lt;/th&gt;
          &lt;th&gt;处理建议&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;得量远低于预期&lt;/td&gt;
          &lt;td&gt;转染效率低、细胞密度/活力不佳、收获过早&lt;/td&gt;
          &lt;td&gt;核对细胞活力与对数期；做 GFP/报告质粒平行转染监测效率；确认收获时间与补料&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;洗脱峰不明显/结合差&lt;/td&gt;
          &lt;td&gt;填料未平衡好、上清 pH 或盐浓度异常、填料过期&lt;/td&gt;
          &lt;td&gt;上清澄清后调至中性；填料预冷 PBS 充分平衡；核对填料保存状态&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;纯化样品浑浊/沉淀&lt;/td&gt;
          &lt;td&gt;洗脱低 pH 未及时中和&lt;/td&gt;
          &lt;td&gt;加大 Tris 体积或提前混匀；必要时洗脱后立即调 pH&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;还原胶出现杂带/高分子量带&lt;/td&gt;
          &lt;td&gt;样品中残留宿主蛋白或聚集体&lt;/td&gt;
          &lt;td&gt;加强洗涤；结合 SEC 或进一步精纯&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;A260/280 偏高&lt;/td&gt;
          &lt;td&gt;核酸或缓冲液成分干扰&lt;/td&gt;
          &lt;td&gt;检查洗脱与换液是否彻底；必要时用 A280 消光系数法并扣除稀释液本底&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
  &lt;/div&gt;
&lt;/details&gt;
&lt;div class=&#34;hx-overflow-x-auto hx-mt-6 hx-flex hx-rounded-lg hx-border hx-py-2 ltr:hx-pr-4 rtl:hx-pl-4 contrast-more:hx-border-current contrast-more:dark:hx-border-current hx-border-blue-200 hx-bg-blue-100 hx-text-blue-900 dark:hx-border-blue-200/30 dark:hx-bg-blue-900/30 dark:hx-text-blue-200&#34;&gt;
  &lt;div class=&#34;ltr:hx-pl-3 ltr:hx-pr-2 rtl:hx-pr-3 rtl:hx-pl-2&#34;&gt;&lt;div class=&#34;hx-select-none hx-text-xl&#34; style=&#34;font-family: &#39;Apple Color Emoji&#39;, &#39;Segoe UI Emoji&#39;, &#39;Segoe UI Symbol&#39;;&#34;&gt;🤖&lt;/div&gt;&lt;/div&gt;

  &lt;div class=&#34;hx-w-full hx-min-w-0 hx-leading-7&#34;&gt;
    &lt;div class=&#34;hx-mt-6 hx-leading-7 first:hx-mt-0&#34;&gt;&lt;strong&gt;AI 使用声明&lt;/strong&gt;：本文由作者撰写，AI 工具（Claude）辅助完成初稿起草与格式整理。作者已审校全部内容，并对准确性承担最终责任。&lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;h2&gt;十、 相关方法&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;十-相关方法&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#%e5%8d%81-%e7%9b%b8%e5%85%b3%e6%96%b9%e6%b3%95&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;纯化出的抗体可进一步用于功能评价：&lt;a href=&#34;https://www.songxue-j.com/zh-cn/blog/sars-cov-2-spike-pseudovirus-neutralization-assay/&#34; &gt;SARS-CoV-2 Spike 假病毒中和实验&lt;/a&gt; 与 &lt;a href=&#34;https://www.songxue-j.com/zh-cn/blog/sars-cov-2-spike-rbd-binding-elisa/&#34; &gt;间接 ELISA 检测 RBD 抗体结合&lt;/a&gt;。&lt;/li&gt;
&lt;/ul&gt;
      </description>
    </item>
    
    <item>
      <title>间接 ELISA 检测抗 SARS-CoV-2 Spike RBD 抗体的结合</title>
      <link>https://www.songxue-j.com/zh-cn/blog/sars-cov-2-spike-rbd-binding-elisa/</link>
      <pubDate>Thu, 03 Sep 2026 00:00:00 +0000</pubDate>
      
      <guid>https://www.songxue-j.com/zh-cn/blog/sars-cov-2-spike-rbd-binding-elisa/</guid>
      <description>
        
        
        &lt;p&gt;本文总结了以重组 SARS-CoV-2 Spike 受体结合域（receptor-binding domain, RBD）为包被抗原的间接 ELISA 流程，该流程用于评估血清或单克隆抗体与 RBD 的结合强度与效价。&lt;/p&gt;
&lt;p&gt;主要流程和原理为：抗原包被于 96 孔板后，依次加入封闭液、梯度稀释的一抗（血清或抗体）、HRP 标记的抗人 IgG 二抗，最后以 ABTS 底物显色并在 405 nm 读取吸光度。&lt;/p&gt;
&lt;div class=&#34;hx-overflow-x-auto hx-mt-6 hx-flex hx-flex-col hx-rounded-lg hx-border hx-py-4 hx-px-4 contrast-more:hx-border-current contrast-more:dark:hx-border-current hx-border-blue-200 hx-bg-blue-100 hx-text-blue-900 dark:hx-border-blue-200/30 dark:hx-bg-blue-900/30 dark:hx-text-blue-200&#34;&gt;
  &lt;p class=&#34;hx-flex hx-items-center hx-font-medium&#34;&gt;&lt;svg height=16px class=&#34;hx-inline-block hx-align-middle hx-mr-2&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34; fill=&#34;none&#34; viewBox=&#34;0 0 24 24&#34; stroke-width=&#34;2&#34; stroke=&#34;currentColor&#34; aria-hidden=&#34;true&#34;&gt;&lt;path stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34; d=&#34;M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z&#34;/&gt;&lt;/svg&gt;Note&lt;/p&gt;

  &lt;div class=&#34;hx-w-full hx-min-w-0 hx-leading-7&#34;&gt;
    &lt;div class=&#34;hx-mt-6 hx-leading-7 first:hx-mt-0&#34;&gt;&lt;p&gt;文中以检测人源血清 IgG 结合为例（二抗为抗人 IgG-HRP）。若一抗为鼠源或其他种属抗体，将二抗换成对应的抗种属二抗即可，其余流程不变。&lt;/p&gt;
&lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;hr&gt;
&lt;h2&gt;一、 实验原理与设计要点&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;一-实验原理与设计要点&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#%e4%b8%80-%e5%ae%9e%e9%aa%8c%e5%8e%9f%e7%90%86%e4%b8%8e%e8%ae%be%e8%ae%a1%e8%a6%81%e7%82%b9&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;间接 ELISA 通过&amp;quot;包被抗原 → 一抗（待测抗体）结合 → 酶标二抗识别一抗 → 底物显色&amp;quot;层级放大，将抗体的结合量转化为可定量的吸光度。&lt;/p&gt;
&lt;p&gt;设计上需要特别注意三点：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;包被抗原量不能过低&lt;/strong&gt;：RBD 包被浓度不足时，即使血清效价较高，信噪比也会显著下降。本流程使用约 5 µg/mL 包被。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;封闭时间对背景影响大&lt;/strong&gt;：2% BSA 封闭 2 h 产生的背景明显低于封闭 1 h，本流程固定为室温 2 h。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;血清起始浓度不能过稀&lt;/strong&gt;：血清样本从 1:10（或 1:100）起始（PBS 稀释），再在 U 底 96 孔板中做梯度滴定后转移至检测板。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;二、 材料、试剂与缓冲液&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;二-材料试剂与缓冲液&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#%e4%ba%8c-%e6%9d%90%e6%96%99%e8%af%95%e5%89%82%e4%b8%8e%e7%bc%93%e5%86%b2%e6%b6%b2&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;h3&gt;1. 试剂与耗材&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;1-试剂与耗材&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#1-%e8%af%95%e5%89%82%e4%b8%8e%e8%80%97%e6%9d%90&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;物料&lt;/th&gt;
          &lt;th&gt;用途&lt;/th&gt;
          &lt;th&gt;规格/说明&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;重组 SARS-CoV-2 S-RBD 蛋白&lt;/td&gt;
          &lt;td&gt;包被抗原&lt;/td&gt;
          &lt;td&gt;HEK293 细胞表达的可溶性 RBD&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;96 孔酶标板&lt;/td&gt;
          &lt;td&gt;反应板&lt;/td&gt;
          &lt;td&gt;Corning 9018&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;U 底 96 孔板&lt;/td&gt;
          &lt;td&gt;血清/抗体梯度稀释&lt;/td&gt;
          &lt;td&gt;Nest&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;抗人 IgG（H+L）-HRP 二抗&lt;/td&gt;
          &lt;td&gt;检测抗体&lt;/td&gt;
          &lt;td&gt;Thermo Fisher 31410（Goat anti-Human IgG (H+L), HRP）&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;ABTS 底物溶液&lt;/td&gt;
          &lt;td&gt;显色&lt;/td&gt;
          &lt;td&gt;即用型 ABTS 溶液（Thermo Fisher 002024）&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;封闭用 BSA&lt;/td&gt;
          &lt;td&gt;封闭液成分&lt;/td&gt;
          &lt;td&gt;高纯度 BSA，配成 2%（w/v）&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;封板膜/盖&lt;/td&gt;
          &lt;td&gt;防蒸发&lt;/td&gt;
          &lt;td&gt;包被过夜与各孵育步加盖&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;多道移液器&lt;/td&gt;
          &lt;td&gt;洗涤与加样&lt;/td&gt;
          &lt;td&gt;8/12 道&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;纸巾/吸水纸&lt;/td&gt;
          &lt;td&gt;拍板去液&lt;/td&gt;
          &lt;td&gt;每次洗涤后彻底拍干&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;酶标仪&lt;/td&gt;
          &lt;td&gt;读板&lt;/td&gt;
          &lt;td&gt;能读 405 nm 的吸光度&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3&gt;2. 缓冲液配方&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;2-缓冲液配方&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#2-%e7%bc%93%e5%86%b2%e6%b6%b2%e9%85%8d%e6%96%b9&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;缓冲液&lt;/th&gt;
          &lt;th&gt;配方&lt;/th&gt;
          &lt;th&gt;用途与备注&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;包被缓冲液（coating buffer）&lt;/td&gt;
          &lt;td&gt;PBS&lt;/td&gt;
          &lt;td&gt;常用配方&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;洗涤液 PBST&lt;/td&gt;
          &lt;td&gt;PBS（pH 7.2）含 0.05%（v/v）Tween-20&lt;/td&gt;
          &lt;td&gt;0.05%&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;封闭液&lt;/td&gt;
          &lt;td&gt;DPBS 中 2%（w/v）BSA，0.22 µm 过滤&lt;/td&gt;
          &lt;td&gt;同时用作二抗稀释液&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3&gt;3. 稀释液与基质&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;3-稀释液与基质&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#3-%e7%a8%80%e9%87%8a%e6%b6%b2%e4%b8%8e%e5%9f%ba%e8%b4%a8&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;一抗/血清稀释：PBS（人血清首孔 1:10（或 1:100）起）。&lt;/li&gt;
&lt;li&gt;二抗稀释：用封闭液（2% BSA/PBS）稀释，避免单独加 BSA。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;三、 操作流程&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;三-操作流程&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#%e4%b8%89-%e6%93%8d%e4%bd%9c%e6%b5%81%e7%a8%8b&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;全部孵育均在湿盒/加盖条件下进行，避免边缘孔蒸发。默认每孔终体积见各步；同一板建议做重复孔。&lt;/p&gt;
&lt;h3&gt;1. 包被（4 ℃ 过夜）&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;1-包被4--过夜&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#1-%e5%8c%85%e8%a2%ab4--%e8%bf%87%e5%a4%9c&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;用包被缓冲液将 RBD 稀释至 &lt;strong&gt;5 µg/mL&lt;/strong&gt;。&lt;/li&gt;
&lt;li&gt;向 96 孔板加入 &lt;strong&gt;50 µL/孔&lt;/strong&gt;。加样后轻拍/轻晃使液面铺匀（避免边缘挂壁）。&lt;/li&gt;
&lt;li&gt;盖上封板膜，&lt;strong&gt;4 ℃ 孵育过夜&lt;/strong&gt;（约 16–18 h）。&lt;/li&gt;
&lt;/ol&gt;
&lt;div class=&#34;hx-overflow-x-auto hx-mt-6 hx-flex hx-flex-col hx-rounded-lg hx-border hx-py-4 hx-px-4 contrast-more:hx-border-current contrast-more:dark:hx-border-current hx-border-indigo-200 hx-bg-indigo-100 hx-text-indigo-900 dark:hx-border-indigo-200/30 dark:hx-bg-indigo-900/30 dark:hx-text-indigo-200&#34;&gt;
  &lt;p class=&#34;hx-flex hx-items-center hx-font-medium&#34;&gt;&lt;svg height=16px class=&#34;hx-inline-block hx-align-middle hx-mr-2&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34; fill=&#34;none&#34; viewBox=&#34;0 0 24 24&#34; stroke-width=&#34;2&#34; stroke=&#34;currentColor&#34; aria-hidden=&#34;true&#34;&gt;&lt;path stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34; d=&#34;M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z&#34;/&gt;&lt;/svg&gt;Important&lt;/p&gt;

  &lt;div class=&#34;hx-w-full hx-min-w-0 hx-leading-7&#34;&gt;
    &lt;div class=&#34;hx-mt-6 hx-leading-7 first:hx-mt-0&#34;&gt;&lt;p&gt;若更换抗原批次或改用截短抗原，先用 2–3 个已知阳/阴性样本做浓度梯度（如 2.5/5/10 µg/mL）预实验，确认包被浓度仍能给出足够信噪比。抗原量偏低会显著压低信噪比。&lt;/p&gt;
&lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h3&gt;2. 洗涤（3 × 200 µL PBST）&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;2-洗涤3--200-µl-pbst&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#2-%e6%b4%97%e6%b6%a43--200-%c2%b5l-pbst&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;弃去孔内液体（直接倒出或甩出）。&lt;/li&gt;
&lt;li&gt;每孔加入 &lt;strong&gt;200 µL PBST&lt;/strong&gt;，随后&lt;strong&gt;完全去除液体&lt;/strong&gt;：将板倒扣在干净纸巾上拍打数次，必要时轻甩 5 次后再次拍干。&lt;/li&gt;
&lt;li&gt;重复洗涤共 &lt;strong&gt;3 次&lt;/strong&gt;。每次都要彻底拍干，残留液会抬高背景。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;3. 封闭（室温 2 h）&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;3-封闭室温-2-h&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#3-%e5%b0%81%e9%97%ad%e5%ae%a4%e6%b8%a9-2-h&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;每孔加入 &lt;strong&gt;200 µL 封闭液&lt;/strong&gt;（2% BSA/DPBS）。&lt;/li&gt;
&lt;li&gt;盖板，&lt;strong&gt;室温孵育 2 h&lt;/strong&gt;。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;4. 洗涤&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;4-洗涤&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#4-%e6%b4%97%e6%b6%a4&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;同步骤 2（3 × 200 µL PBST，拍干）。&lt;/p&gt;
&lt;h3&gt;5. 一抗（血清/抗体）孵育（室温 1 h）&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;5-一抗血清抗体孵育室温-1-h&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#5-%e4%b8%80%e6%8a%97%e8%a1%80%e6%b8%85%e6%8a%97%e4%bd%93%e5%ad%b5%e8%82%b2%e5%ae%a4%e6%b8%a9-1-h&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;在 &lt;strong&gt;U 底 96 孔板&lt;/strong&gt;中用 PBS 将待测样本梯度稀释。人血清样本从 &lt;strong&gt;1:10 起始&lt;/strong&gt;（按样本类型调整）。&lt;/li&gt;
&lt;li&gt;将稀释好的样本按 &lt;strong&gt;50 µL/孔&lt;/strong&gt;转移至已封闭的检测板。&lt;/li&gt;
&lt;li&gt;盖板，&lt;strong&gt;室温孵育 1 h&lt;/strong&gt;。&lt;/li&gt;
&lt;/ol&gt;
&lt;div class=&#34;hx-overflow-x-auto hx-mt-6 hx-flex hx-flex-col hx-rounded-lg hx-border hx-py-4 hx-px-4 contrast-more:hx-border-current contrast-more:dark:hx-border-current hx-border-green-200 hx-bg-green-100 hx-text-green-900 dark:hx-border-green-200/30 dark:hx-bg-green-900/30 dark:hx-text-green-200&#34;&gt;
  &lt;p class=&#34;hx-flex hx-items-center hx-font-medium&#34;&gt;&lt;svg height=16px class=&#34;hx-inline-block hx-align-middle hx-mr-2&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34; fill=&#34;none&#34; viewBox=&#34;0 0 24 24&#34; stroke-width=&#34;2&#34; stroke=&#34;currentColor&#34; aria-hidden=&#34;true&#34;&gt;&lt;path stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34; d=&#34;M9.663 17h4.673M12 3v1m6.364 1.636l-.707.707M21 12h-1M4 12H3m3.343-5.657l-.707-.707m2.828 9.9a5 5 0 117.072 0l-.548.547A3.374 3.374 0 0014 18.469V19a2 2 0 11-4 0v-.531c0-.895-.356-1.754-.988-2.386l-.548-.547z&#34;/&gt;&lt;/svg&gt;Tip&lt;/p&gt;

  &lt;div class=&#34;hx-w-full hx-min-w-0 hx-leading-7&#34;&gt;
    &lt;div class=&#34;hx-mt-6 hx-leading-7 first:hx-mt-0&#34;&gt;&lt;p&gt;每板应包含：阴性对照（如已知阴性血清/无关抗体）、空白（仅 PBS，作为本底）与（可选）阳性对照。U 底板稀释后建议立即转移，避免长时间放置。&lt;/p&gt;
&lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h3&gt;6. 洗涤&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;6-洗涤&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#6-%e6%b4%97%e6%b6%a4&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;同步骤 2。&lt;/p&gt;
&lt;h3&gt;7. 二抗孵育（室温 1 h）&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;7-二抗孵育室温-1-h&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#7-%e4%ba%8c%e6%8a%97%e5%ad%b5%e8%82%b2%e5%ae%a4%e6%b8%a9-1-h&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;用封闭液将抗人 IgG-HRP 稀释至 &lt;strong&gt;1:5000&lt;/strong&gt;。&lt;/li&gt;
&lt;li&gt;每孔加入 &lt;strong&gt;50 µL&lt;/strong&gt;，盖板，&lt;strong&gt;室温孵育 1 h&lt;/strong&gt;。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;8. 洗涤&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;8-洗涤&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#8-%e6%b4%97%e6%b6%a4&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;同步骤 2（建议最后一次洗涤后拍干更彻底）。&lt;/p&gt;
&lt;h3&gt;9. 显色&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;9-显色&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#9-%e6%98%be%e8%89%b2&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;每孔加入 &lt;strong&gt;100 µL ABTS 底物&lt;/strong&gt;。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;室温、避光&lt;/strong&gt;孵育。设定初始 &lt;strong&gt;10 min&lt;/strong&gt;，期间不时观察显色：至阴性/空白对照仍浅、阳性孔呈明显绿色时即可终止读数；显色过快则缩短时间。&lt;/li&gt;
&lt;li&gt;若显色不足，可延长至 15–30 min（随时间线性增长时进行多时间点读取更稳妥）。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;10. 读板&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;10-读板&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#10-%e8%af%bb%e6%9d%bf&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;在 &lt;strong&gt;405 nm&lt;/strong&gt; 读取吸光度并记录。&lt;/p&gt;
&lt;div class=&#34;hx-overflow-x-auto hx-mt-6 hx-flex hx-flex-col hx-rounded-lg hx-border hx-py-4 hx-px-4 contrast-more:hx-border-current contrast-more:dark:hx-border-current hx-border-blue-200 hx-bg-blue-100 hx-text-blue-900 dark:hx-border-blue-200/30 dark:hx-bg-blue-900/30 dark:hx-text-blue-200&#34;&gt;
  &lt;p class=&#34;hx-flex hx-items-center hx-font-medium&#34;&gt;&lt;svg height=16px class=&#34;hx-inline-block hx-align-middle hx-mr-2&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34; fill=&#34;none&#34; viewBox=&#34;0 0 24 24&#34; stroke-width=&#34;2&#34; stroke=&#34;currentColor&#34; aria-hidden=&#34;true&#34;&gt;&lt;path stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34; d=&#34;M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z&#34;/&gt;&lt;/svg&gt;Note&lt;/p&gt;

  &lt;div class=&#34;hx-w-full hx-min-w-0 hx-leading-7&#34;&gt;
    &lt;div class=&#34;hx-mt-6 hx-leading-7 first:hx-mt-0&#34;&gt;&lt;p&gt;ABTS 为终点法/动力学法均可的底物；若使用同一板做多时间点（如 10/15/20/30 min）读取，可观察是否已进入平台期。&lt;/p&gt;
&lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h2&gt;四、 稀释方案与板布局&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;四-稀释方案与板布局&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#%e5%9b%9b-%e7%a8%80%e9%87%8a%e6%96%b9%e6%a1%88%e4%b8%8e%e6%9d%bf%e5%b8%83%e5%b1%80&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;h3&gt;1. 96 孔板布局&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;1-96-孔板布局&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#1-96-%e5%ad%94%e6%9d%bf%e5%b8%83%e5%b1%80&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;每列对应一个样本，8 个稀释度沿行 A–H 纵向铺布（3 倍比）。第 1 列留作阴性血清对照、第 2 列作空白（PBS）对照，其余列放待测样本。&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;行&lt;/th&gt;
          &lt;th&gt;第 1 列（阴性血清）&lt;/th&gt;
          &lt;th&gt;第 2 列（空白）&lt;/th&gt;
          &lt;th&gt;第 3 列（样本 1）&lt;/th&gt;
          &lt;th&gt;第 4 列（样本 2）&lt;/th&gt;
          &lt;th&gt;…&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;A&lt;/td&gt;
          &lt;td&gt;1:10&lt;/td&gt;
          &lt;td&gt;PBS&lt;/td&gt;
          &lt;td&gt;D1&lt;/td&gt;
          &lt;td&gt;D1&lt;/td&gt;
          &lt;td&gt;…&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;B&lt;/td&gt;
          &lt;td&gt;1:30&lt;/td&gt;
          &lt;td&gt;—&lt;/td&gt;
          &lt;td&gt;D2&lt;/td&gt;
          &lt;td&gt;D2&lt;/td&gt;
          &lt;td&gt;…&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;C&lt;/td&gt;
          &lt;td&gt;1:90&lt;/td&gt;
          &lt;td&gt;—&lt;/td&gt;
          &lt;td&gt;D3&lt;/td&gt;
          &lt;td&gt;D3&lt;/td&gt;
          &lt;td&gt;…&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;D&lt;/td&gt;
          &lt;td&gt;1:270&lt;/td&gt;
          &lt;td&gt;—&lt;/td&gt;
          &lt;td&gt;D4&lt;/td&gt;
          &lt;td&gt;D4&lt;/td&gt;
          &lt;td&gt;…&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;E&lt;/td&gt;
          &lt;td&gt;1:810&lt;/td&gt;
          &lt;td&gt;—&lt;/td&gt;
          &lt;td&gt;D5&lt;/td&gt;
          &lt;td&gt;D5&lt;/td&gt;
          &lt;td&gt;…&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;F&lt;/td&gt;
          &lt;td&gt;1:2430&lt;/td&gt;
          &lt;td&gt;—&lt;/td&gt;
          &lt;td&gt;D6&lt;/td&gt;
          &lt;td&gt;D6&lt;/td&gt;
          &lt;td&gt;…&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;G&lt;/td&gt;
          &lt;td&gt;1:7290&lt;/td&gt;
          &lt;td&gt;—&lt;/td&gt;
          &lt;td&gt;D7&lt;/td&gt;
          &lt;td&gt;D7&lt;/td&gt;
          &lt;td&gt;…&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;H&lt;/td&gt;
          &lt;td&gt;1:21870&lt;/td&gt;
          &lt;td&gt;—&lt;/td&gt;
          &lt;td&gt;D8&lt;/td&gt;
          &lt;td&gt;D8&lt;/td&gt;
          &lt;td&gt;…&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;（D1–D8 表示 8 个 3 倍比稀释度；抗体样本的纵轴单位为 µg/mL，见下表。）&lt;/p&gt;
&lt;h3&gt;2. 稀释梯度&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;2-稀释梯度&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#2-%e7%a8%80%e9%87%8a%e6%a2%af%e5%ba%a6&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;在 U 底 96 孔板中做 3 倍比、共 8 个点的梯度稀释，再转移至检测板。&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;样本类型&lt;/th&gt;
          &lt;th&gt;起始浓度/稀释度&lt;/th&gt;
          &lt;th&gt;8 点梯度（3 倍比）&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;单克隆抗体&lt;/td&gt;
          &lt;td&gt;10 µg/mL&lt;/td&gt;
          &lt;td&gt;10、3.33、1.11、0.37、0.123、0.041、0.0137、0.0046 µg/mL&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;血清&lt;/td&gt;
          &lt;td&gt;1:10（或 1:100）&lt;/td&gt;
          &lt;td&gt;1:10、1:30、1:90、1:270、1:810、1:2430、1:7290、1:21870&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2&gt;五、 数据记录与判定&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;五-数据记录与判定&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#%e4%ba%94-%e6%95%b0%e6%8d%ae%e8%ae%b0%e5%bd%95%e4%b8%8e%e5%88%a4%e5%ae%9a&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;h3&gt;1. 数据处理&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;1-数据处理&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#1-%e6%95%b0%e6%8d%ae%e5%a4%84%e7%90%86&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;以&lt;strong&gt;空白（仅 PBS）孔&lt;/strong&gt;均值作为本底，从所有读值中扣除。&lt;/li&gt;
&lt;li&gt;以稀释度为横轴（log 坐标）、OD₄₀₅ 为纵轴绘制滴定曲线。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;2. 常见质控信号&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;2-常见质控信号&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#2-%e5%b8%b8%e8%a7%81%e8%b4%a8%e6%8e%a7%e4%bf%a1%e5%8f%b7&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;若阴性对照在 1:10 已明显偏高 → 洗涤不彻底或封闭不足，见&amp;quot;问题排查&amp;quot;。&lt;/li&gt;
&lt;li&gt;若已知阳性样本的信号整体偏低 → 检查包被抗原浓度/活性与二抗稀释度。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;六、 竞争 ELISA（变体方法）&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;六-竞争-elisa变体方法&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#%e5%85%ad-%e7%ab%9e%e4%ba%89-elisa%e5%8f%98%e4%bd%93%e6%96%b9%e6%b3%95&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;同一抗原体系下，可通过改变检测读出方式扩展为竞争 ELISA，用于判断两株抗体是否识别相近表位，或待测抗体能否阻断某一参照结合事件。以下为依据实验记录整理的流程：&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;步骤&lt;/th&gt;
          &lt;th&gt;要点&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;包被&lt;/td&gt;
          &lt;td&gt;RBD/Spike 蛋白 5 µg/mL，100 µL/孔，4 ℃ 过夜&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;洗涤/封闭&lt;/td&gt;
          &lt;td&gt;PBST 3×200 µL → 2% BSA 200 µL/孔，室温 2 h&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;一抗（预结合）&lt;/td&gt;
          &lt;td&gt;待测抗体/血清梯度稀释（具体浓度需摸索），室温 2 h&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;竞争抗体&lt;/td&gt;
          &lt;td&gt;直接加入&lt;strong&gt;生物素化参照抗体&lt;/strong&gt;（不洗涤），室温 30 min；降低其浓度可让竞争更敏感&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;洗涤&lt;/td&gt;
          &lt;td&gt;PBST 7 次&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;检测&lt;/td&gt;
          &lt;td&gt;Streptavidin-HRP 1:5000（封闭液稀释）50 µL/孔，室温 1 h&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;显色/读板&lt;/td&gt;
          &lt;td&gt;PBST 洗 3 次 → ABTS 100 µL/孔 → 405 nm（可 10/20/30 min 多点读取）&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;竞争值计算：&lt;code&gt;竞争值 = OD(样本孔) / OD(PBS 孔) × 100%&lt;/code&gt;。OD 越低说明待测抗体与生物素化参照抗体的表位越重叠。&lt;/p&gt;
&lt;h2&gt;七、 问题排查&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;七-问题排查&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#%e4%b8%83-%e9%97%ae%e9%a2%98%e6%8e%92%e6%9f%a5&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;现象&lt;/th&gt;
          &lt;th&gt;可能原因&lt;/th&gt;
          &lt;th&gt;处理建议&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;信噪比低、阳性信号弱&lt;/td&gt;
          &lt;td&gt;包被抗原量不足/抗原活性下降&lt;/td&gt;
          &lt;td&gt;提高包被浓度或换新抗原批次；验证抗原纯度与正确折叠&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;背景高（阴性也高）&lt;/td&gt;
          &lt;td&gt;洗涤不彻底、封闭不足、二抗过浓&lt;/td&gt;
          &lt;td&gt;每次拍干彻底；封闭保证室温 2 h；二抗降到 1:5000 或更低并做棋盘滴定&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;边缘孔读值偏高&lt;/td&gt;
          &lt;td&gt;蒸发/边缘效应&lt;/td&gt;
          &lt;td&gt;仅用中间孔加样本，外圈加 PBS 或封板&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;重复孔差异大&lt;/td&gt;
          &lt;td&gt;移液或洗涤不均&lt;/td&gt;
          &lt;td&gt;用多道排枪、规范拍板；样本先在 U 底板混匀&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;div class=&#34;hx-overflow-x-auto hx-mt-6 hx-flex hx-rounded-lg hx-border hx-py-2 ltr:hx-pr-4 rtl:hx-pl-4 contrast-more:hx-border-current contrast-more:dark:hx-border-current hx-border-blue-200 hx-bg-blue-100 hx-text-blue-900 dark:hx-border-blue-200/30 dark:hx-bg-blue-900/30 dark:hx-text-blue-200&#34;&gt;
  &lt;div class=&#34;ltr:hx-pl-3 ltr:hx-pr-2 rtl:hx-pr-3 rtl:hx-pl-2&#34;&gt;&lt;div class=&#34;hx-select-none hx-text-xl&#34; style=&#34;font-family: &#39;Apple Color Emoji&#39;, &#39;Segoe UI Emoji&#39;, &#39;Segoe UI Symbol&#39;;&#34;&gt;🤖&lt;/div&gt;&lt;/div&gt;

  &lt;div class=&#34;hx-w-full hx-min-w-0 hx-leading-7&#34;&gt;
    &lt;div class=&#34;hx-mt-6 hx-leading-7 first:hx-mt-0&#34;&gt;&lt;strong&gt;AI 使用声明&lt;/strong&gt;：本文由作者撰写，AI 工具（Claude）辅助完成初稿起草与格式整理。作者已审校全部内容，并对准确性承担最终责任。&lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;h2&gt;参考来源&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;参考来源&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#%e5%8f%82%e8%80%83%e6%9d%a5%e6%ba%90&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;Amanat F, et al. A serological assay to detect SARS-CoV-2 seroconversion in humans. Nature Medicine, 2020. &lt;a href=&#34;https://doi.org/10.1038/s41591-020-0913-5&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;https://doi.org/10.1038/s41591-020-0913-5&lt;/a&gt; — 间接 ELISA 检测抗 S/RBD 抗体的代表性方法。&lt;/li&gt;
&lt;li&gt;Stadlbauer D, et al. SARS-CoV-2 Seroconversion in Humans: A Detailed Protocol for a Serological Assay, Antigen Production, and Test Setup. Current Protocols in Microbiology, 2020. &lt;a href=&#34;https://doi.org/10.1002/cpmc.100&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;https://doi.org/10.1002/cpmc.100&lt;/a&gt; — 配套的 RBD/spike 抗原生产与两段式血清 ELISA 详细方案。&lt;/li&gt;
&lt;li&gt;Baine C, et al. An Optimised Indirect ELISA Protocol for Detection and Quantification of Anti-viral Antibodies in Human Plasma or Serum: A Case Study Using SARS-CoV-2. Bio-protocol, 2023. &lt;a href=&#34;https://doi.org/10.21769/BioProtoc.4905&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;https://doi.org/10.21769/BioProtoc.4905&lt;/a&gt; — 以 RBD/Spike 等为包被抗原、BSA 封闭的间接 ELISA 参考方案。&lt;/li&gt;
&lt;li&gt;Goat anti-Human IgG (H+L), HRP — Thermo Fisher Scientific, 货号 31410。产品页：&lt;a href=&#34;https://www.thermofisher.com/antibody/product/Goat-anti-Human-IgG-H-L-Secondary-Antibody-Polyclonal/31410&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;https://www.thermofisher.com/antibody/product/Goat-anti-Human-IgG-H-L-Secondary-Antibody-Polyclonal/31410&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;ABTS, solution — Thermo Fisher/Invitrogen, 货号 002024。产品页：&lt;a href=&#34;https://www.thermofisher.com/order/catalog/product/002024&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;https://www.thermofisher.com/order/catalog/product/002024&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Thermo Fisher ABTS 使用说明：&lt;a href=&#34;https://assets.thermofisher.cn/TFS-Assets/LSG/manuals/MAN0011191_ABTS_UG.pdf&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;https://assets.thermofisher.cn/TFS-Assets/LSG/manuals/MAN0011191_ABTS_UG.pdf&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
      </description>
    </item>
    
    <item>
      <title>Hextra 主题 Shortcodes 速查：让你的 Hugo 博客更生动</title>
      <link>https://www.songxue-j.com/zh-cn/blog/hextra-shortcodes-tips/</link>
      <pubDate>Wed, 17 Jun 2026 00:00:00 +0000</pubDate>
      
      <guid>https://www.songxue-j.com/zh-cn/blog/hextra-shortcodes-tips/</guid>
      <description>
        
        
        &lt;p&gt;Hextra 是一个基于 Hugo 的现代化文档/博客主题，除了标准 Markdown 语法外，还提供了丰富的 Shortcodes 来增强内容表现力。本文整理了最常用的 Shortcodes，每个都附带写法和真实渲染效果，方便日常写作时快速查阅。&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;折叠内容 (details)&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;折叠内容-details&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#%e6%8a%98%e5%8f%a0%e5%86%85%e5%ae%b9-details&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;用于隐藏/展示一段内容，适合 FAQ、补充说明等场景。&lt;/p&gt;
&lt;h3&gt;默认展开&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;默认展开&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#%e9%bb%98%e8%ae%a4%e5%b1%95%e5%bc%80&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;details class=&#34;last-of-type:hx-mb-0 hx-rounded-lg hx-bg-neutral-50 dark:hx-bg-neutral-800 hx-p-2 hx-mt-4 hx-group&#34; open&gt;
  &lt;summary class=&#34;hx-flex hx-items-center hx-cursor-pointer hx-select-none hx-list-none hx-p-1 hx-rounded hx-transition-colors hover:hx-bg-gray-100 dark:hover:hx-bg-neutral-800 before:hx-mr-1 before:hx-inline-block before:hx-transition-transform before:hx-content-[&#39;&#39;] dark:before:hx-invert rtl:before:hx-rotate-180 group-open:before:hx-rotate-90&#34;&gt;
    &lt;strong class=&#34;hx-text-lg&#34;&gt;点击折叠&lt;/strong&gt;
  &lt;/summary&gt;
  &lt;div class=&#34;hx-p-2 hx-overflow-hidden&#34;&gt;
    这是一段默认展开的内容，支持 &lt;strong&gt;Markdown&lt;/strong&gt; 格式，包括 &lt;code&gt;代码&lt;/code&gt;、链接、列表等。
  &lt;/div&gt;
&lt;/details&gt;
&lt;div class=&#34;hextra-code-block hx-relative hx-mt-6 first:hx-mt-0 hx-group/code&#34;&gt;

&lt;div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-markdown&#34; data-lang=&#34;markdown&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;{{% details title=&amp;#34;点击折叠&amp;#34; %}}
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;这是一段默认展开的内容，支持 &lt;span class=&#34;gs&#34;&gt;**Markdown**&lt;/span&gt; 格式。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;{{% /details %}}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;hextra-code-copy-btn-container hx-opacity-0 hx-transition group-hover/code:hx-opacity-100 hx-flex hx-gap-1 hx-absolute hx-m-[11px] hx-right-0 hx-top-0&#34;&gt;
  &lt;button
    class=&#34;hextra-code-copy-btn hx-group/copybtn hx-transition-all active:hx-opacity-50 hx-bg-primary-700/5 hx-border hx-border-black/5 hx-text-gray-600 hover:hx-text-gray-900 hx-rounded-md hx-p-1.5 dark:hx-bg-primary-300/10 dark:hx-border-white/10 dark:hx-text-gray-400 dark:hover:hx-text-gray-50&#34;
    title=&#34;Copy code&#34;
  &gt;
    &lt;div class=&#34;copy-icon group-[.copied]/copybtn:hx-hidden hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
    &lt;div class=&#34;success-icon hx-hidden group-[.copied]/copybtn:hx-block hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
  &lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h3&gt;默认折叠&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;默认折叠&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#%e9%bb%98%e8%ae%a4%e6%8a%98%e5%8f%a0&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;details class=&#34;last-of-type:hx-mb-0 hx-rounded-lg hx-bg-neutral-50 dark:hx-bg-neutral-800 hx-p-2 hx-mt-4 hx-group&#34; &gt;
  &lt;summary class=&#34;hx-flex hx-items-center hx-cursor-pointer hx-select-none hx-list-none hx-p-1 hx-rounded hx-transition-colors hover:hx-bg-gray-100 dark:hover:hx-bg-neutral-800 before:hx-mr-1 before:hx-inline-block before:hx-transition-transform before:hx-content-[&#39;&#39;] dark:before:hx-invert rtl:before:hx-rotate-180 group-open:before:hx-rotate-90&#34;&gt;
    &lt;strong class=&#34;hx-text-lg&#34;&gt;点击展开查看&lt;/strong&gt;
  &lt;/summary&gt;
  &lt;div class=&#34;hx-p-2 hx-overflow-hidden&#34;&gt;
    这是一段默认折叠的内容，需要点击标题才能看到。
  &lt;/div&gt;
&lt;/details&gt;
&lt;div class=&#34;hextra-code-block hx-relative hx-mt-6 first:hx-mt-0 hx-group/code&#34;&gt;

&lt;div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-markdown&#34; data-lang=&#34;markdown&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;{{% details title=&amp;#34;点击展开查看&amp;#34; closed=&amp;#34;true&amp;#34; %}}
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;这是一段默认折叠的内容。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;{{% /details %}}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;hextra-code-copy-btn-container hx-opacity-0 hx-transition group-hover/code:hx-opacity-100 hx-flex hx-gap-1 hx-absolute hx-m-[11px] hx-right-0 hx-top-0&#34;&gt;
  &lt;button
    class=&#34;hextra-code-copy-btn hx-group/copybtn hx-transition-all active:hx-opacity-50 hx-bg-primary-700/5 hx-border hx-border-black/5 hx-text-gray-600 hover:hx-text-gray-900 hx-rounded-md hx-p-1.5 dark:hx-bg-primary-300/10 dark:hx-border-white/10 dark:hx-text-gray-400 dark:hover:hx-text-gray-50&#34;
    title=&#34;Copy code&#34;
  &gt;
    &lt;div class=&#34;copy-icon group-[.copied]/copybtn:hx-hidden hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
    &lt;div class=&#34;success-icon hx-hidden group-[.copied]/copybtn:hx-block hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
  &lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;hx-overflow-x-auto hx-mt-6 hx-flex hx-flex-col hx-rounded-lg hx-border hx-py-4 hx-px-4 contrast-more:hx-border-current contrast-more:dark:hx-border-current hx-border-blue-200 hx-bg-blue-100 hx-text-blue-900 dark:hx-border-blue-200/30 dark:hx-bg-blue-900/30 dark:hx-text-blue-200&#34;&gt;
  &lt;p class=&#34;hx-flex hx-items-center hx-font-medium&#34;&gt;&lt;svg height=16px class=&#34;hx-inline-block hx-align-middle hx-mr-2&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34; fill=&#34;none&#34; viewBox=&#34;0 0 24 24&#34; stroke-width=&#34;2&#34; stroke=&#34;currentColor&#34; aria-hidden=&#34;true&#34;&gt;&lt;path stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34; d=&#34;M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z&#34;/&gt;&lt;/svg&gt;Note&lt;/p&gt;

  &lt;div class=&#34;hx-w-full hx-min-w-0 hx-leading-7&#34;&gt;
    &lt;div class=&#34;hx-mt-6 hx-leading-7 first:hx-mt-0&#34;&gt;&lt;p&gt;必须使用 &lt;code&gt;{{% %}}&lt;/code&gt; 分隔符（百分号），否则内部 Markdown 不会被渲染。&lt;/p&gt;
&lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;hr&gt;
&lt;h2&gt;提示框 (callout)&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;提示框-callout&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#%e6%8f%90%e7%a4%ba%e6%a1%86-callout&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;用于在正文中插入醒目的提示信息。&lt;/p&gt;
&lt;h3&gt;默认（橙色）&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;默认橙色&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#%e9%bb%98%e8%ae%a4%e6%a9%99%e8%89%b2&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;div class=&#34;hx-overflow-x-auto hx-mt-6 hx-flex hx-rounded-lg hx-border hx-py-2 ltr:hx-pr-4 rtl:hx-pl-4 contrast-more:hx-border-current contrast-more:dark:hx-border-current hx-border-orange-100 hx-bg-orange-50 hx-text-orange-800 dark:hx-border-orange-400/30 dark:hx-bg-orange-400/20 dark:hx-text-orange-300&#34;&gt;
  &lt;div class=&#34;ltr:hx-pl-3 ltr:hx-pr-2 rtl:hx-pr-3 rtl:hx-pl-2&#34;&gt;&lt;/div&gt;

  &lt;div class=&#34;hx-w-full hx-min-w-0 hx-leading-7&#34;&gt;
    &lt;div class=&#34;hx-mt-6 hx-leading-7 first:hx-mt-0&#34;&gt;这是一个默认样式的提示框。&lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;div class=&#34;hextra-code-block hx-relative hx-mt-6 first:hx-mt-0 hx-group/code&#34;&gt;

&lt;div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-markdown&#34; data-lang=&#34;markdown&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;{{&lt;span class=&#34;p&#34;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&#34;nt&#34;&gt;callout&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;&amp;gt;&lt;/span&gt;}}
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  这是一个默认样式的提示框。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;{{&lt;span class=&#34;p&#34;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;callout&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;&amp;gt;&lt;/span&gt;}}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;hextra-code-copy-btn-container hx-opacity-0 hx-transition group-hover/code:hx-opacity-100 hx-flex hx-gap-1 hx-absolute hx-m-[11px] hx-right-0 hx-top-0&#34;&gt;
  &lt;button
    class=&#34;hextra-code-copy-btn hx-group/copybtn hx-transition-all active:hx-opacity-50 hx-bg-primary-700/5 hx-border hx-border-black/5 hx-text-gray-600 hover:hx-text-gray-900 hx-rounded-md hx-p-1.5 dark:hx-bg-primary-300/10 dark:hx-border-white/10 dark:hx-text-gray-400 dark:hover:hx-text-gray-50&#34;
    title=&#34;Copy code&#34;
  &gt;
    &lt;div class=&#34;copy-icon group-[.copied]/copybtn:hx-hidden hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
    &lt;div class=&#34;success-icon hx-hidden group-[.copied]/copybtn:hx-block hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
  &lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h3&gt;信息（蓝色）&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;信息蓝色&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#%e4%bf%a1%e6%81%af%e8%93%9d%e8%89%b2&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;div class=&#34;hx-overflow-x-auto hx-mt-6 hx-flex hx-rounded-lg hx-border hx-py-2 ltr:hx-pr-4 rtl:hx-pl-4 contrast-more:hx-border-current contrast-more:dark:hx-border-current hx-border-blue-200 hx-bg-blue-100 hx-text-blue-900 dark:hx-border-blue-200/30 dark:hx-bg-blue-900/30 dark:hx-text-blue-200&#34;&gt;
  &lt;div class=&#34;ltr:hx-pl-3 ltr:hx-pr-2 rtl:hx-pr-3 rtl:hx-pl-2&#34;&gt;&lt;div class=&#34;hx-select-none hx-text-xl&#34; style=&#34;font-family: &#39;Apple Color Emoji&#39;, &#39;Segoe UI Emoji&#39;, &#39;Segoe UI Symbol&#39;;&#34;&gt;ℹ️&lt;/div&gt;&lt;/div&gt;

  &lt;div class=&#34;hx-w-full hx-min-w-0 hx-leading-7&#34;&gt;
    &lt;div class=&#34;hx-mt-6 hx-leading-7 first:hx-mt-0&#34;&gt;这是一个信息提示框，用于补充说明。&lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;div class=&#34;hextra-code-block hx-relative hx-mt-6 first:hx-mt-0 hx-group/code&#34;&gt;

&lt;div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-markdown&#34; data-lang=&#34;markdown&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;{{&lt;span class=&#34;p&#34;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&#34;nt&#34;&gt;callout&lt;/span&gt; &lt;span class=&#34;na&#34;&gt;type&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;info&amp;#34;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;&amp;gt;&lt;/span&gt;}}
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  这是一个信息提示框，用于补充说明。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;{{&lt;span class=&#34;p&#34;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;callout&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;&amp;gt;&lt;/span&gt;}}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;hextra-code-copy-btn-container hx-opacity-0 hx-transition group-hover/code:hx-opacity-100 hx-flex hx-gap-1 hx-absolute hx-m-[11px] hx-right-0 hx-top-0&#34;&gt;
  &lt;button
    class=&#34;hextra-code-copy-btn hx-group/copybtn hx-transition-all active:hx-opacity-50 hx-bg-primary-700/5 hx-border hx-border-black/5 hx-text-gray-600 hover:hx-text-gray-900 hx-rounded-md hx-p-1.5 dark:hx-bg-primary-300/10 dark:hx-border-white/10 dark:hx-text-gray-400 dark:hover:hx-text-gray-50&#34;
    title=&#34;Copy code&#34;
  &gt;
    &lt;div class=&#34;copy-icon group-[.copied]/copybtn:hx-hidden hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
    &lt;div class=&#34;success-icon hx-hidden group-[.copied]/copybtn:hx-block hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
  &lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h3&gt;警告（黄色）&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;警告黄色&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#%e8%ad%a6%e5%91%8a%e9%bb%84%e8%89%b2&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;div class=&#34;hx-overflow-x-auto hx-mt-6 hx-flex hx-rounded-lg hx-border hx-py-2 ltr:hx-pr-4 rtl:hx-pl-4 contrast-more:hx-border-current contrast-more:dark:hx-border-current hx-border-yellow-100 hx-bg-yellow-50 hx-text-yellow-900 dark:hx-border-yellow-200/30 dark:hx-bg-yellow-700/30 dark:hx-text-yellow-200&#34;&gt;
  &lt;div class=&#34;ltr:hx-pl-3 ltr:hx-pr-2 rtl:hx-pr-3 rtl:hx-pl-2&#34;&gt;&lt;div class=&#34;hx-select-none hx-text-xl&#34; style=&#34;font-family: &#39;Apple Color Emoji&#39;, &#39;Segoe UI Emoji&#39;, &#39;Segoe UI Symbol&#39;;&#34;&gt;⚠️&lt;/div&gt;&lt;/div&gt;

  &lt;div class=&#34;hx-w-full hx-min-w-0 hx-leading-7&#34;&gt;
    &lt;div class=&#34;hx-mt-6 hx-leading-7 first:hx-mt-0&#34;&gt;这是一个警告提示框，请注意。&lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;div class=&#34;hextra-code-block hx-relative hx-mt-6 first:hx-mt-0 hx-group/code&#34;&gt;

&lt;div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-markdown&#34; data-lang=&#34;markdown&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;{{&lt;span class=&#34;p&#34;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&#34;nt&#34;&gt;callout&lt;/span&gt; &lt;span class=&#34;na&#34;&gt;type&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;warning&amp;#34;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;&amp;gt;&lt;/span&gt;}}
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  这是一个警告提示框，请注意。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;{{&lt;span class=&#34;p&#34;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;callout&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;&amp;gt;&lt;/span&gt;}}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;hextra-code-copy-btn-container hx-opacity-0 hx-transition group-hover/code:hx-opacity-100 hx-flex hx-gap-1 hx-absolute hx-m-[11px] hx-right-0 hx-top-0&#34;&gt;
  &lt;button
    class=&#34;hextra-code-copy-btn hx-group/copybtn hx-transition-all active:hx-opacity-50 hx-bg-primary-700/5 hx-border hx-border-black/5 hx-text-gray-600 hover:hx-text-gray-900 hx-rounded-md hx-p-1.5 dark:hx-bg-primary-300/10 dark:hx-border-white/10 dark:hx-text-gray-400 dark:hover:hx-text-gray-50&#34;
    title=&#34;Copy code&#34;
  &gt;
    &lt;div class=&#34;copy-icon group-[.copied]/copybtn:hx-hidden hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
    &lt;div class=&#34;success-icon hx-hidden group-[.copied]/copybtn:hx-block hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
  &lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h3&gt;错误（红色）&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;错误红色&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#%e9%94%99%e8%af%af%e7%ba%a2%e8%89%b2&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;div class=&#34;hx-overflow-x-auto hx-mt-6 hx-flex hx-rounded-lg hx-border hx-py-2 ltr:hx-pr-4 rtl:hx-pl-4 contrast-more:hx-border-current contrast-more:dark:hx-border-current hx-border-red-200 hx-bg-red-100 hx-text-red-900 dark:hx-border-red-200/30 dark:hx-bg-red-900/30 dark:hx-text-red-200&#34;&gt;
  &lt;div class=&#34;ltr:hx-pl-3 ltr:hx-pr-2 rtl:hx-pr-3 rtl:hx-pl-2&#34;&gt;&lt;div class=&#34;hx-select-none hx-text-xl&#34; style=&#34;font-family: &#39;Apple Color Emoji&#39;, &#39;Segoe UI Emoji&#39;, &#39;Segoe UI Symbol&#39;;&#34;&gt;🚫&lt;/div&gt;&lt;/div&gt;

  &lt;div class=&#34;hx-w-full hx-min-w-0 hx-leading-7&#34;&gt;
    &lt;div class=&#34;hx-mt-6 hx-leading-7 first:hx-mt-0&#34;&gt;这是一个错误提示框，危险操作。&lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;div class=&#34;hextra-code-block hx-relative hx-mt-6 first:hx-mt-0 hx-group/code&#34;&gt;

&lt;div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-markdown&#34; data-lang=&#34;markdown&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;{{&lt;span class=&#34;p&#34;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&#34;nt&#34;&gt;callout&lt;/span&gt; &lt;span class=&#34;na&#34;&gt;type&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;error&amp;#34;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;&amp;gt;&lt;/span&gt;}}
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  这是一个错误提示框，危险操作。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;{{&lt;span class=&#34;p&#34;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;callout&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;&amp;gt;&lt;/span&gt;}}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;hextra-code-copy-btn-container hx-opacity-0 hx-transition group-hover/code:hx-opacity-100 hx-flex hx-gap-1 hx-absolute hx-m-[11px] hx-right-0 hx-top-0&#34;&gt;
  &lt;button
    class=&#34;hextra-code-copy-btn hx-group/copybtn hx-transition-all active:hx-opacity-50 hx-bg-primary-700/5 hx-border hx-border-black/5 hx-text-gray-600 hover:hx-text-gray-900 hx-rounded-md hx-p-1.5 dark:hx-bg-primary-300/10 dark:hx-border-white/10 dark:hx-text-gray-400 dark:hover:hx-text-gray-50&#34;
    title=&#34;Copy code&#34;
  &gt;
    &lt;div class=&#34;copy-icon group-[.copied]/copybtn:hx-hidden hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
    &lt;div class=&#34;success-icon hx-hidden group-[.copied]/copybtn:hx-block hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
  &lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h3&gt;自定义 emoji&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;自定义-emoji&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#%e8%87%aa%e5%ae%9a%e4%b9%89-emoji&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;div class=&#34;hx-overflow-x-auto hx-mt-6 hx-flex hx-rounded-lg hx-border hx-py-2 ltr:hx-pr-4 rtl:hx-pl-4 contrast-more:hx-border-current contrast-more:dark:hx-border-current hx-border-orange-100 hx-bg-orange-50 hx-text-orange-800 dark:hx-border-orange-400/30 dark:hx-bg-orange-400/20 dark:hx-text-orange-300&#34;&gt;
  &lt;div class=&#34;ltr:hx-pl-3 ltr:hx-pr-2 rtl:hx-pr-3 rtl:hx-pl-2&#34;&gt;&lt;div class=&#34;hx-select-none hx-text-xl&#34; style=&#34;font-family: &#39;Apple Color Emoji&#39;, &#39;Segoe UI Emoji&#39;, &#39;Segoe UI Symbol&#39;;&#34;&gt;👾&lt;/div&gt;&lt;/div&gt;

  &lt;div class=&#34;hx-w-full hx-min-w-0 hx-leading-7&#34;&gt;
    &lt;div class=&#34;hx-mt-6 hx-leading-7 first:hx-mt-0&#34;&gt;可以用任意 emoji 作为图标。&lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;div class=&#34;hextra-code-block hx-relative hx-mt-6 first:hx-mt-0 hx-group/code&#34;&gt;

&lt;div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-markdown&#34; data-lang=&#34;markdown&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;{{&lt;span class=&#34;p&#34;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&#34;nt&#34;&gt;callout&lt;/span&gt; &lt;span class=&#34;na&#34;&gt;emoji&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;👾&amp;#34;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;&amp;gt;&lt;/span&gt;}}
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  可以用任意 emoji 作为图标。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;{{&lt;span class=&#34;p&#34;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;callout&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;&amp;gt;&lt;/span&gt;}}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;hextra-code-copy-btn-container hx-opacity-0 hx-transition group-hover/code:hx-opacity-100 hx-flex hx-gap-1 hx-absolute hx-m-[11px] hx-right-0 hx-top-0&#34;&gt;
  &lt;button
    class=&#34;hextra-code-copy-btn hx-group/copybtn hx-transition-all active:hx-opacity-50 hx-bg-primary-700/5 hx-border hx-border-black/5 hx-text-gray-600 hover:hx-text-gray-900 hx-rounded-md hx-p-1.5 dark:hx-bg-primary-300/10 dark:hx-border-white/10 dark:hx-text-gray-400 dark:hover:hx-text-gray-50&#34;
    title=&#34;Copy code&#34;
  &gt;
    &lt;div class=&#34;copy-icon group-[.copied]/copybtn:hx-hidden hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
    &lt;div class=&#34;success-icon hx-hidden group-[.copied]/copybtn:hx-block hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
  &lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;hr&gt;
&lt;h2&gt;GitHub 风格 Alerts&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;github-风格-alerts&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#github-%e9%a3%8e%e6%a0%bc-alerts&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;和 callout 类似，但语法更轻量，不需要 shortcode 标签。&lt;/p&gt;
&lt;div class=&#34;hx-overflow-x-auto hx-mt-6 hx-flex hx-flex-col hx-rounded-lg hx-border hx-py-4 hx-px-4 contrast-more:hx-border-current contrast-more:dark:hx-border-current hx-border-blue-200 hx-bg-blue-100 hx-text-blue-900 dark:hx-border-blue-200/30 dark:hx-bg-blue-900/30 dark:hx-text-blue-200&#34;&gt;
  &lt;p class=&#34;hx-flex hx-items-center hx-font-medium&#34;&gt;&lt;svg height=16px class=&#34;hx-inline-block hx-align-middle hx-mr-2&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34; fill=&#34;none&#34; viewBox=&#34;0 0 24 24&#34; stroke-width=&#34;2&#34; stroke=&#34;currentColor&#34; aria-hidden=&#34;true&#34;&gt;&lt;path stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34; d=&#34;M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z&#34;/&gt;&lt;/svg&gt;Note&lt;/p&gt;

  &lt;div class=&#34;hx-w-full hx-min-w-0 hx-leading-7&#34;&gt;
    &lt;div class=&#34;hx-mt-6 hx-leading-7 first:hx-mt-0&#34;&gt;&lt;p&gt;补充说明信息（蓝色）。&lt;/p&gt;
&lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;hx-overflow-x-auto hx-mt-6 hx-flex hx-flex-col hx-rounded-lg hx-border hx-py-4 hx-px-4 contrast-more:hx-border-current contrast-more:dark:hx-border-current hx-border-green-200 hx-bg-green-100 hx-text-green-900 dark:hx-border-green-200/30 dark:hx-bg-green-900/30 dark:hx-text-green-200&#34;&gt;
  &lt;p class=&#34;hx-flex hx-items-center hx-font-medium&#34;&gt;&lt;svg height=16px class=&#34;hx-inline-block hx-align-middle hx-mr-2&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34; fill=&#34;none&#34; viewBox=&#34;0 0 24 24&#34; stroke-width=&#34;2&#34; stroke=&#34;currentColor&#34; aria-hidden=&#34;true&#34;&gt;&lt;path stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34; d=&#34;M9.663 17h4.673M12 3v1m6.364 1.636l-.707.707M21 12h-1M4 12H3m3.343-5.657l-.707-.707m2.828 9.9a5 5 0 117.072 0l-.548.547A3.374 3.374 0 0014 18.469V19a2 2 0 11-4 0v-.531c0-.895-.356-1.754-.988-2.386l-.548-.547z&#34;/&gt;&lt;/svg&gt;Tip&lt;/p&gt;

  &lt;div class=&#34;hx-w-full hx-min-w-0 hx-leading-7&#34;&gt;
    &lt;div class=&#34;hx-mt-6 hx-leading-7 first:hx-mt-0&#34;&gt;&lt;p&gt;有用的建议（绿色）。&lt;/p&gt;
&lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;hx-overflow-x-auto hx-mt-6 hx-flex hx-flex-col hx-rounded-lg hx-border hx-py-4 hx-px-4 contrast-more:hx-border-current contrast-more:dark:hx-border-current hx-border-indigo-200 hx-bg-indigo-100 hx-text-indigo-900 dark:hx-border-indigo-200/30 dark:hx-bg-indigo-900/30 dark:hx-text-indigo-200&#34;&gt;
  &lt;p class=&#34;hx-flex hx-items-center hx-font-medium&#34;&gt;&lt;svg height=16px class=&#34;hx-inline-block hx-align-middle hx-mr-2&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34; fill=&#34;none&#34; viewBox=&#34;0 0 24 24&#34; stroke-width=&#34;2&#34; stroke=&#34;currentColor&#34; aria-hidden=&#34;true&#34;&gt;&lt;path stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34; d=&#34;M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z&#34;/&gt;&lt;/svg&gt;Important&lt;/p&gt;

  &lt;div class=&#34;hx-w-full hx-min-w-0 hx-leading-7&#34;&gt;
    &lt;div class=&#34;hx-mt-6 hx-leading-7 first:hx-mt-0&#34;&gt;&lt;p&gt;重要信息（紫色）。&lt;/p&gt;
&lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;hx-overflow-x-auto hx-mt-6 hx-flex hx-flex-col hx-rounded-lg hx-border hx-py-4 hx-px-4 contrast-more:hx-border-current contrast-more:dark:hx-border-current hx-border-amber-200 hx-bg-amber-100 hx-text-amber-900 dark:hx-border-amber-200/30 dark:hx-bg-amber-900/30 dark:hx-text-amber-200&#34;&gt;
  &lt;p class=&#34;hx-flex hx-items-center hx-font-medium&#34;&gt;&lt;svg height=16px class=&#34;hx-inline-block hx-align-middle hx-mr-2&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34; fill=&#34;none&#34; viewBox=&#34;0 0 24 24&#34; stroke-width=&#34;2&#34; stroke=&#34;currentColor&#34; aria-hidden=&#34;true&#34;&gt;&lt;path stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34; d=&#34;M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z&#34;/&gt;&lt;/svg&gt;Warning&lt;/p&gt;

  &lt;div class=&#34;hx-w-full hx-min-w-0 hx-leading-7&#34;&gt;
    &lt;div class=&#34;hx-mt-6 hx-leading-7 first:hx-mt-0&#34;&gt;&lt;p&gt;需要注意（琥珀色）。&lt;/p&gt;
&lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;hx-overflow-x-auto hx-mt-6 hx-flex hx-flex-col hx-rounded-lg hx-border hx-py-4 hx-px-4 contrast-more:hx-border-current contrast-more:dark:hx-border-current hx-border-red-200 hx-bg-red-100 hx-text-red-900 dark:hx-border-red-200/30 dark:hx-bg-red-900/30 dark:hx-text-red-200&#34;&gt;
  &lt;p class=&#34;hx-flex hx-items-center hx-font-medium&#34;&gt;&lt;svg height=16px class=&#34;hx-inline-block hx-align-middle hx-mr-2&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34; fill=&#34;none&#34; viewBox=&#34;0 0 24 24&#34; stroke-width=&#34;2&#34; stroke=&#34;currentColor&#34; aria-hidden=&#34;true&#34;&gt;&lt;path stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34; d=&#34;M12 8v4m0 4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z&#34;/&gt;&lt;/svg&gt;Caution&lt;/p&gt;

  &lt;div class=&#34;hx-w-full hx-min-w-0 hx-leading-7&#34;&gt;
    &lt;div class=&#34;hx-mt-6 hx-leading-7 first:hx-mt-0&#34;&gt;&lt;p&gt;危险操作（红色）。&lt;/p&gt;
&lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;hextra-code-block hx-relative hx-mt-6 first:hx-mt-0 hx-group/code&#34;&gt;

&lt;div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-markdown&#34; data-lang=&#34;markdown&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;&amp;gt; &lt;/span&gt;&lt;span class=&#34;ge&#34;&gt;[!NOTE]
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;ge&#34;&gt;&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;&amp;gt; &lt;/span&gt;&lt;span class=&#34;ge&#34;&gt;补充说明信息（蓝色）。
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;ge&#34;&gt;&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;&amp;gt; &lt;/span&gt;&lt;span class=&#34;ge&#34;&gt;[!TIP]
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;ge&#34;&gt;&lt;/span&gt;&amp;gt; 有用的建议（绿色）。&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;hextra-code-copy-btn-container hx-opacity-0 hx-transition group-hover/code:hx-opacity-100 hx-flex hx-gap-1 hx-absolute hx-m-[11px] hx-right-0 hx-top-0&#34;&gt;
  &lt;button
    class=&#34;hextra-code-copy-btn hx-group/copybtn hx-transition-all active:hx-opacity-50 hx-bg-primary-700/5 hx-border hx-border-black/5 hx-text-gray-600 hover:hx-text-gray-900 hx-rounded-md hx-p-1.5 dark:hx-bg-primary-300/10 dark:hx-border-white/10 dark:hx-text-gray-400 dark:hover:hx-text-gray-50&#34;
    title=&#34;Copy code&#34;
  &gt;
    &lt;div class=&#34;copy-icon group-[.copied]/copybtn:hx-hidden hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
    &lt;div class=&#34;success-icon hx-hidden group-[.copied]/copybtn:hx-block hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
  &lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;选择建议：&lt;/strong&gt; 需要自定义 emoji → 用 &lt;code&gt;callout&lt;/code&gt;；简单标注 → 用 Alerts。&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;标签页 (tabs)&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;标签页-tabs&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#%e6%a0%87%e7%ad%be%e9%a1%b5-tabs&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;用于并列展示多组内容，如多语言代码对比、多平台安装步骤。&lt;/p&gt;
&lt;div class=&#34;hextra-scrollbar hx-overflow-x-auto hx-overflow-y-hidden hx-overscroll-x-contain&#34;&gt;
  &lt;div class=&#34;hx-mt-4 hx-flex hx-w-max hx-min-w-full hx-border-b hx-border-gray-200 hx-pb-px dark:hx-border-neutral-800&#34;&gt;&lt;button
        class=&#34;hextra-tabs-toggle data-[state=selected]:hx-border-primary-500 data-[state=selected]:hx-text-primary-600 data-[state=selected]:dark:hx-border-primary-500 data-[state=selected]:dark:hx-text-primary-600 hx-mr-2 hx-rounded-t hx-p-2 hx-font-medium hx-leading-5 hx-transition-colors -hx-mb-0.5 hx-select-none hx-border-b-2 hx-border-transparent hx-text-gray-600 hover:hx-border-gray-200 hover:hx-text-black dark:hx-text-gray-200 dark:hover:hx-border-neutral-800 dark:hover:hx-text-white&#34;
        role=&#34;tab&#34;
        type=&#34;button&#34;
        aria-controls=&#34;tabs-panel-0&#34; aria-selected=&#34;true&#34;  tabindex=&#34;0&#34;  data-state=&#34;selected&#34;&gt;JSON&lt;/button&gt;&lt;button
        class=&#34;hextra-tabs-toggle data-[state=selected]:hx-border-primary-500 data-[state=selected]:hx-text-primary-600 data-[state=selected]:dark:hx-border-primary-500 data-[state=selected]:dark:hx-text-primary-600 hx-mr-2 hx-rounded-t hx-p-2 hx-font-medium hx-leading-5 hx-transition-colors -hx-mb-0.5 hx-select-none hx-border-b-2 hx-border-transparent hx-text-gray-600 hover:hx-border-gray-200 hover:hx-text-black dark:hx-text-gray-200 dark:hover:hx-border-neutral-800 dark:hover:hx-text-white&#34;
        role=&#34;tab&#34;
        type=&#34;button&#34;
        aria-controls=&#34;tabs-panel-1&#34;&gt;YAML&lt;/button&gt;&lt;button
        class=&#34;hextra-tabs-toggle data-[state=selected]:hx-border-primary-500 data-[state=selected]:hx-text-primary-600 data-[state=selected]:dark:hx-border-primary-500 data-[state=selected]:dark:hx-text-primary-600 hx-mr-2 hx-rounded-t hx-p-2 hx-font-medium hx-leading-5 hx-transition-colors -hx-mb-0.5 hx-select-none hx-border-b-2 hx-border-transparent hx-text-gray-600 hover:hx-border-gray-200 hover:hx-text-black dark:hx-text-gray-200 dark:hover:hx-border-neutral-800 dark:hover:hx-text-white&#34;
        role=&#34;tab&#34;
        type=&#34;button&#34;
        aria-controls=&#34;tabs-panel-2&#34;&gt;TOML&lt;/button&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
  &lt;div
  class=&#34;hextra-tabs-panel hx-rounded hx-pt-6 hx-hidden data-[state=selected]:hx-block&#34;
  id=&#34;tabs-panel-0&#34;
  role=&#34;tabpanel&#34; tabindex=&#34;0&#34;  data-state=&#34;selected&#34; &gt;&lt;div class=&#34;hextra-code-block hx-relative hx-mt-6 first:hx-mt-0 hx-group/code&#34;&gt;

&lt;div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-json&#34; data-lang=&#34;json&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt; &lt;span class=&#34;nt&#34;&gt;&amp;#34;hello&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;world&amp;#34;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;hextra-code-copy-btn-container hx-opacity-0 hx-transition group-hover/code:hx-opacity-100 hx-flex hx-gap-1 hx-absolute hx-m-[11px] hx-right-0 hx-top-0&#34;&gt;
  &lt;button
    class=&#34;hextra-code-copy-btn hx-group/copybtn hx-transition-all active:hx-opacity-50 hx-bg-primary-700/5 hx-border hx-border-black/5 hx-text-gray-600 hover:hx-text-gray-900 hx-rounded-md hx-p-1.5 dark:hx-bg-primary-300/10 dark:hx-border-white/10 dark:hx-text-gray-400 dark:hover:hx-text-gray-50&#34;
    title=&#34;Copy code&#34;
  &gt;
    &lt;div class=&#34;copy-icon group-[.copied]/copybtn:hx-hidden hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
    &lt;div class=&#34;success-icon hx-hidden group-[.copied]/copybtn:hx-block hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
  &lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
  &lt;div
  class=&#34;hextra-tabs-panel hx-rounded hx-pt-6 hx-hidden data-[state=selected]:hx-block&#34;
  id=&#34;tabs-panel-1&#34;
  role=&#34;tabpanel&#34;&gt;&lt;div class=&#34;hextra-code-block hx-relative hx-mt-6 first:hx-mt-0 hx-group/code&#34;&gt;

&lt;div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;hello&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;world&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;hextra-code-copy-btn-container hx-opacity-0 hx-transition group-hover/code:hx-opacity-100 hx-flex hx-gap-1 hx-absolute hx-m-[11px] hx-right-0 hx-top-0&#34;&gt;
  &lt;button
    class=&#34;hextra-code-copy-btn hx-group/copybtn hx-transition-all active:hx-opacity-50 hx-bg-primary-700/5 hx-border hx-border-black/5 hx-text-gray-600 hover:hx-text-gray-900 hx-rounded-md hx-p-1.5 dark:hx-bg-primary-300/10 dark:hx-border-white/10 dark:hx-text-gray-400 dark:hover:hx-text-gray-50&#34;
    title=&#34;Copy code&#34;
  &gt;
    &lt;div class=&#34;copy-icon group-[.copied]/copybtn:hx-hidden hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
    &lt;div class=&#34;success-icon hx-hidden group-[.copied]/copybtn:hx-block hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
  &lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
  &lt;div
  class=&#34;hextra-tabs-panel hx-rounded hx-pt-6 hx-hidden data-[state=selected]:hx-block&#34;
  id=&#34;tabs-panel-2&#34;
  role=&#34;tabpanel&#34;&gt;&lt;div class=&#34;hextra-code-block hx-relative hx-mt-6 first:hx-mt-0 hx-group/code&#34;&gt;

&lt;div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-toml&#34; data-lang=&#34;toml&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nx&#34;&gt;hello&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;world&amp;#34;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;hextra-code-copy-btn-container hx-opacity-0 hx-transition group-hover/code:hx-opacity-100 hx-flex hx-gap-1 hx-absolute hx-m-[11px] hx-right-0 hx-top-0&#34;&gt;
  &lt;button
    class=&#34;hextra-code-copy-btn hx-group/copybtn hx-transition-all active:hx-opacity-50 hx-bg-primary-700/5 hx-border hx-border-black/5 hx-text-gray-600 hover:hx-text-gray-900 hx-rounded-md hx-p-1.5 dark:hx-bg-primary-300/10 dark:hx-border-white/10 dark:hx-text-gray-400 dark:hover:hx-text-gray-50&#34;
    title=&#34;Copy code&#34;
  &gt;
    &lt;div class=&#34;copy-icon group-[.copied]/copybtn:hx-hidden hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
    &lt;div class=&#34;success-icon hx-hidden group-[.copied]/copybtn:hx-block hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
  &lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;hextra-code-block hx-relative hx-mt-6 first:hx-mt-0 hx-group/code&#34;&gt;

&lt;div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-markdown&#34; data-lang=&#34;markdown&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;{{&lt;span class=&#34;p&#34;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&#34;nt&#34;&gt;tabs&lt;/span&gt; &lt;span class=&#34;na&#34;&gt;items&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;JSON,YAML,TOML&amp;#34;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;&amp;gt;&lt;/span&gt;}}
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  {{&lt;span class=&#34;p&#34;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&#34;nt&#34;&gt;tab&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;&amp;gt;&lt;/span&gt;}}
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  ```json
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  { &amp;#34;hello&amp;#34;: &amp;#34;world&amp;#34; }
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  ```
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  {{&lt;span class=&#34;p&#34;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;tab&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;&amp;gt;&lt;/span&gt;}}
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  {{&lt;span class=&#34;p&#34;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&#34;nt&#34;&gt;tab&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;&amp;gt;&lt;/span&gt;}}
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  ```yaml
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  hello: world
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  ```
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  {{&lt;span class=&#34;p&#34;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;tab&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;&amp;gt;&lt;/span&gt;}}
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  {{&lt;span class=&#34;p&#34;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&#34;nt&#34;&gt;tab&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;&amp;gt;&lt;/span&gt;}}
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  ```toml
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  hello = &amp;#34;world&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  ```
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  {{&lt;span class=&#34;p&#34;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;tab&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;&amp;gt;&lt;/span&gt;}}
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;{{&lt;span class=&#34;p&#34;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;tabs&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;&amp;gt;&lt;/span&gt;}}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;hextra-code-copy-btn-container hx-opacity-0 hx-transition group-hover/code:hx-opacity-100 hx-flex hx-gap-1 hx-absolute hx-m-[11px] hx-right-0 hx-top-0&#34;&gt;
  &lt;button
    class=&#34;hextra-code-copy-btn hx-group/copybtn hx-transition-all active:hx-opacity-50 hx-bg-primary-700/5 hx-border hx-border-black/5 hx-text-gray-600 hover:hx-text-gray-900 hx-rounded-md hx-p-1.5 dark:hx-bg-primary-300/10 dark:hx-border-white/10 dark:hx-text-gray-400 dark:hover:hx-text-gray-50&#34;
    title=&#34;Copy code&#34;
  &gt;
    &lt;div class=&#34;copy-icon group-[.copied]/copybtn:hx-hidden hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
    &lt;div class=&#34;success-icon hx-hidden group-[.copied]/copybtn:hx-block hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
  &lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;默认选中第一个标签，可通过 &lt;code&gt;defaultIndex=&amp;quot;1&amp;quot;&lt;/code&gt; 改为默认选中第二个。&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;卡片网格 (cards + card)&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;卡片网格-cards--card&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#%e5%8d%a1%e7%89%87%e7%bd%91%e6%a0%bc-cards--card&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;用于展示文章推荐、资源列表等，支持图标、图片和标签。&lt;/p&gt;
&lt;div class=&#34;hextra-cards hx-mt-4 hx-gap-4 hx-grid not-prose&#34; style=&#34;--hextra-cards-grid-cols: 2;&#34;&gt;
  &lt;a
    class=&#34;hextra-card hx-group hx-flex hx-flex-col hx-justify-start hx-overflow-hidden hx-rounded-lg hx-border hx-border-gray-200 hx-text-current hx-no-underline dark:hx-shadow-none hover:hx-shadow-gray-100 dark:hover:hx-shadow-none hx-shadow-gray-100 active:hx-shadow-sm active:hx-shadow-gray-200 hx-transition-all hx-duration-200 hover:hx-border-gray-300 hx-bg-transparent hx-shadow-sm dark:hx-border-neutral-800 hover:hx-bg-slate-50 hover:hx-shadow-md dark:hover:hx-border-neutral-700 dark:hover:hx-bg-neutral-900&#34;href=&#34;https://www.songxue-j.com/zh-cn/blog&#34;
      &gt;&lt;span class=&#34;hextra-card-icon hx-flex hx-font-semibold hx-items-start hx-gap-2 hx-pt-4 hx-px-4 hx-text-gray-700 hover:hx-text-gray-900 dark:hx-text-neutral-200 dark:hover:hx-text-neutral-50&#34;&gt;&lt;svg xmlns=&#34;http://www.w3.org/2000/svg&#34; fill=&#34;none&#34; viewBox=&#34;0 0 24 24&#34; stroke-width=&#34;2&#34; stroke=&#34;currentColor&#34; aria-hidden=&#34;true&#34;&gt;&lt;path stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34; d=&#34;M15.232 5.232l3.536 3.536m-2.036-5.036a2.5 2.5 0 113.536 3.536L6.5 21.036H3v-3.572L16.732 3.732z&#34;/&gt;&lt;/svg&gt;访问博客&lt;/span&gt;&lt;div class=&#34;hextra-card-subtitle hx-line-clamp-3 hx-text-sm hx-font-normal hx-text-gray-500 dark:hx-text-gray-400 hx-px-4 hx-mb-4 hx-mt-2&#34;&gt;查看所有文章&lt;/div&gt;&lt;/a&gt;
  &lt;a
    class=&#34;hextra-card hx-group hx-flex hx-flex-col hx-justify-start hx-overflow-hidden hx-rounded-lg hx-border hx-border-gray-200 hx-text-current hx-no-underline dark:hx-shadow-none hover:hx-shadow-gray-100 dark:hover:hx-shadow-none hx-shadow-gray-100 active:hx-shadow-sm active:hx-shadow-gray-200 hx-transition-all hx-duration-200 hover:hx-border-gray-300 hx-bg-transparent hx-shadow-sm dark:hx-border-neutral-800 hover:hx-bg-slate-50 hover:hx-shadow-md dark:hover:hx-border-neutral-700 dark:hover:hx-bg-neutral-900&#34;href=&#34;https://www.songxue-j.com/zh-cn/about&#34;
      &gt;&lt;span class=&#34;hextra-card-icon hx-flex hx-font-semibold hx-items-start hx-gap-2 hx-pt-4 hx-px-4 hx-text-gray-700 hover:hx-text-gray-900 dark:hx-text-neutral-200 dark:hover:hx-text-neutral-50&#34;&gt;&lt;svg xmlns=&#34;http://www.w3.org/2000/svg&#34; fill=&#34;none&#34; viewBox=&#34;0 0 24 24&#34; stroke-width=&#34;2&#34; stroke=&#34;currentColor&#34; aria-hidden=&#34;true&#34;&gt;&lt;path stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34; d=&#34;M16 7a4 4 0 11-8 0 4 4 0 018 0zM12 14a7 7 0 00-7 7h14a7 7 0 00-7-7z&#34;/&gt;&lt;/svg&gt;关于我&lt;/span&gt;&lt;div class=&#34;hextra-card-subtitle hx-line-clamp-3 hx-text-sm hx-font-normal hx-text-gray-500 dark:hx-text-gray-400 hx-px-4 hx-mb-4 hx-mt-2&#34;&gt;了解更多&lt;/div&gt;&lt;/a&gt;
&lt;/div&gt;

&lt;div class=&#34;hextra-code-block hx-relative hx-mt-6 first:hx-mt-0 hx-group/code&#34;&gt;

&lt;div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-markdown&#34; data-lang=&#34;markdown&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;{{&lt;span class=&#34;p&#34;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&#34;nt&#34;&gt;cards&lt;/span&gt; &lt;span class=&#34;na&#34;&gt;cols&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;2&amp;#34;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;&amp;gt;&lt;/span&gt;}}
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  {{&lt;span class=&#34;p&#34;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&#34;nt&#34;&gt;card&lt;/span&gt; &lt;span class=&#34;na&#34;&gt;link&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;/blog&amp;#34;&lt;/span&gt; &lt;span class=&#34;na&#34;&gt;title&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;访问博客&amp;#34;&lt;/span&gt; &lt;span class=&#34;na&#34;&gt;icon&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;pencil&amp;#34;&lt;/span&gt; &lt;span class=&#34;na&#34;&gt;subtitle&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;查看所有文章&amp;#34;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;&amp;gt;&lt;/span&gt;}}
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  {{&lt;span class=&#34;p&#34;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&#34;nt&#34;&gt;card&lt;/span&gt; &lt;span class=&#34;na&#34;&gt;link&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;/about&amp;#34;&lt;/span&gt; &lt;span class=&#34;na&#34;&gt;title&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;关于我&amp;#34;&lt;/span&gt; &lt;span class=&#34;na&#34;&gt;icon&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;user&amp;#34;&lt;/span&gt; &lt;span class=&#34;na&#34;&gt;subtitle&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;了解更多&amp;#34;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;&amp;gt;&lt;/span&gt;}}
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;{{&lt;span class=&#34;p&#34;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;cards&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;&amp;gt;&lt;/span&gt;}}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;hextra-code-copy-btn-container hx-opacity-0 hx-transition group-hover/code:hx-opacity-100 hx-flex hx-gap-1 hx-absolute hx-m-[11px] hx-right-0 hx-top-0&#34;&gt;
  &lt;button
    class=&#34;hextra-code-copy-btn hx-group/copybtn hx-transition-all active:hx-opacity-50 hx-bg-primary-700/5 hx-border hx-border-black/5 hx-text-gray-600 hover:hx-text-gray-900 hx-rounded-md hx-p-1.5 dark:hx-bg-primary-300/10 dark:hx-border-white/10 dark:hx-text-gray-400 dark:hover:hx-text-gray-50&#34;
    title=&#34;Copy code&#34;
  &gt;
    &lt;div class=&#34;copy-icon group-[.copied]/copybtn:hx-hidden hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
    &lt;div class=&#34;success-icon hx-hidden group-[.copied]/copybtn:hx-block hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
  &lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;带标签的卡片：&lt;/p&gt;
&lt;div class=&#34;hextra-cards hx-mt-4 hx-gap-4 hx-grid not-prose&#34; style=&#34;--hextra-cards-grid-cols: 3;&#34;&gt;
  &lt;a
    class=&#34;hextra-card hx-group hx-flex hx-flex-col hx-justify-start hx-overflow-hidden hx-rounded-lg hx-border hx-border-gray-200 hx-text-current hx-no-underline dark:hx-shadow-none hover:hx-shadow-gray-100 dark:hover:hx-shadow-none hx-shadow-gray-100 active:hx-shadow-sm active:hx-shadow-gray-200 hx-transition-all hx-duration-200 hover:hx-border-gray-300 hx-bg-transparent hx-shadow-sm dark:hx-border-neutral-800 hover:hx-bg-slate-50 hover:hx-shadow-md dark:hover:hx-border-neutral-700 dark:hover:hx-bg-neutral-900&#34;href=&#34;https://www.songxue-j.com/zh-cn/blog&#34;
      &gt;&lt;span class=&#34;hextra-card-icon hx-flex hx-font-semibold hx-items-start hx-gap-2 hx-p-4 hx-text-gray-700 hover:hx-text-gray-900 dark:hx-text-neutral-200 dark:hover:hx-text-neutral-50&#34;&gt;带标签&lt;/span&gt;&lt;div class=&#34;hextra-badge hextra-card-tag&#34;&gt;
    &lt;div class=&#34;hx-inline-flex hx-gap-1 hx-items-center hx-rounded-full hx-px-2.5 hx-leading-6 hx-text-[.65rem] hx-border hx-border-blue-200 hx-bg-blue-100 hx-text-blue-900 dark:hx-border-blue-200/30 dark:hx-bg-blue-900/30 dark:hx-text-blue-200&#34;&gt;新&lt;/div&gt;
  &lt;/div&gt;&lt;/a&gt;
  &lt;a
    class=&#34;hextra-card hx-group hx-flex hx-flex-col hx-justify-start hx-overflow-hidden hx-rounded-lg hx-border hx-border-gray-200 hx-text-current hx-no-underline dark:hx-shadow-none hover:hx-shadow-gray-100 dark:hover:hx-shadow-none hx-shadow-gray-100 active:hx-shadow-sm active:hx-shadow-gray-200 hx-transition-all hx-duration-200 hover:hx-border-gray-300 hx-bg-transparent hx-shadow-sm dark:hx-border-neutral-800 hover:hx-bg-slate-50 hover:hx-shadow-md dark:hover:hx-border-neutral-700 dark:hover:hx-bg-neutral-900&#34;href=&#34;https://www.songxue-j.com/zh-cn/blog&#34;
      &gt;&lt;span class=&#34;hextra-card-icon hx-flex hx-font-semibold hx-items-start hx-gap-2 hx-p-4 hx-text-gray-700 hover:hx-text-gray-900 dark:hx-text-neutral-200 dark:hover:hx-text-neutral-50&#34;&gt;警告标签&lt;/span&gt;&lt;div class=&#34;hextra-badge hextra-card-tag&#34;&gt;
    &lt;div class=&#34;hx-inline-flex hx-gap-1 hx-items-center hx-rounded-full hx-px-2.5 hx-leading-6 hx-text-[.65rem] hx-border hx-border-yellow-100 hx-bg-yellow-50 hx-text-yellow-900 dark:hx-border-yellow-200/30 dark:hx-bg-yellow-700/30 dark:hx-text-yellow-200&#34;&gt;注意&lt;/div&gt;
  &lt;/div&gt;&lt;/a&gt;
&lt;/div&gt;

&lt;div class=&#34;hextra-code-block hx-relative hx-mt-6 first:hx-mt-0 hx-group/code&#34;&gt;

&lt;div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-markdown&#34; data-lang=&#34;markdown&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;{{&lt;span class=&#34;p&#34;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&#34;nt&#34;&gt;card&lt;/span&gt; &lt;span class=&#34;na&#34;&gt;link&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;/blog&amp;#34;&lt;/span&gt; &lt;span class=&#34;na&#34;&gt;title&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;带标签&amp;#34;&lt;/span&gt; &lt;span class=&#34;na&#34;&gt;tag&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;新&amp;#34;&lt;/span&gt; &lt;span class=&#34;na&#34;&gt;tagType&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;info&amp;#34;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;&amp;gt;&lt;/span&gt;}}
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;{{&lt;span class=&#34;p&#34;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&#34;nt&#34;&gt;card&lt;/span&gt; &lt;span class=&#34;na&#34;&gt;link&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;/blog&amp;#34;&lt;/span&gt; &lt;span class=&#34;na&#34;&gt;title&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;警告标签&amp;#34;&lt;/span&gt; &lt;span class=&#34;na&#34;&gt;tag&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;注意&amp;#34;&lt;/span&gt; &lt;span class=&#34;na&#34;&gt;tagType&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;warning&amp;#34;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;&amp;gt;&lt;/span&gt;}}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;hextra-code-copy-btn-container hx-opacity-0 hx-transition group-hover/code:hx-opacity-100 hx-flex hx-gap-1 hx-absolute hx-m-[11px] hx-right-0 hx-top-0&#34;&gt;
  &lt;button
    class=&#34;hextra-code-copy-btn hx-group/copybtn hx-transition-all active:hx-opacity-50 hx-bg-primary-700/5 hx-border hx-border-black/5 hx-text-gray-600 hover:hx-text-gray-900 hx-rounded-md hx-p-1.5 dark:hx-bg-primary-300/10 dark:hx-border-white/10 dark:hx-text-gray-400 dark:hover:hx-text-gray-50&#34;
    title=&#34;Copy code&#34;
  &gt;
    &lt;div class=&#34;copy-icon group-[.copied]/copybtn:hx-hidden hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
    &lt;div class=&#34;success-icon hx-hidden group-[.copied]/copybtn:hx-block hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
  &lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;hr&gt;
&lt;h2&gt;步骤流程 (steps)&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;步骤流程-steps&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#%e6%ad%a5%e9%aa%a4%e6%b5%81%e7%a8%8b-steps&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;用于展示教程、操作指南等按步骤排列的内容。&lt;/p&gt;
&lt;div class=&#34;steps hx-ml-4 hx-mb-12 ltr:hx-border-l rtl:hx-border-r hx-border-gray-200 ltr:hx-pl-6 rtl:hx-pr-6 dark:hx-border-neutral-800 [counter-reset:step]&#34;&gt;
&lt;h3&gt;第一步&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;第一步&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#%e7%ac%ac%e4%b8%80%e6%ad%a5&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;安装 Hugo：&lt;code&gt;brew install hugo&lt;/code&gt;（macOS）或 &lt;code&gt;choco install hugo&lt;/code&gt;（Windows）。&lt;/p&gt;
&lt;h3&gt;第二步&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;第二步&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#%e7%ac%ac%e4%ba%8c%e6%ad%a5&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;创建站点：&lt;code&gt;hugo new site myblog&lt;/code&gt;&lt;/p&gt;
&lt;h3&gt;第三步&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;第三步&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#%e7%ac%ac%e4%b8%89%e6%ad%a5&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;选择主题并部署上线。&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&#34;hextra-code-block hx-relative hx-mt-6 first:hx-mt-0 hx-group/code&#34;&gt;

&lt;div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-markdown&#34; data-lang=&#34;markdown&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;{{% steps %}}
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;gu&#34;&gt;### 第一步
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;gu&#34;&gt;&lt;/span&gt;安装 Hugo：`brew install hugo`（macOS）或 &lt;span class=&#34;sb&#34;&gt;`choco install hugo`&lt;/span&gt;（Windows）。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;gu&#34;&gt;### 第二步
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;gu&#34;&gt;&lt;/span&gt;创建站点：`hugo new site myblog`
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;gu&#34;&gt;### 第三步
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;gu&#34;&gt;&lt;/span&gt;选择主题并部署上线。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;{{% /steps %}}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;hextra-code-copy-btn-container hx-opacity-0 hx-transition group-hover/code:hx-opacity-100 hx-flex hx-gap-1 hx-absolute hx-m-[11px] hx-right-0 hx-top-0&#34;&gt;
  &lt;button
    class=&#34;hextra-code-copy-btn hx-group/copybtn hx-transition-all active:hx-opacity-50 hx-bg-primary-700/5 hx-border hx-border-black/5 hx-text-gray-600 hover:hx-text-gray-900 hx-rounded-md hx-p-1.5 dark:hx-bg-primary-300/10 dark:hx-border-white/10 dark:hx-text-gray-400 dark:hover:hx-text-gray-50&#34;
    title=&#34;Copy code&#34;
  &gt;
    &lt;div class=&#34;copy-icon group-[.copied]/copybtn:hx-hidden hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
    &lt;div class=&#34;success-icon hx-hidden group-[.copied]/copybtn:hx-block hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
  &lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;hx-overflow-x-auto hx-mt-6 hx-flex hx-flex-col hx-rounded-lg hx-border hx-py-4 hx-px-4 contrast-more:hx-border-current contrast-more:dark:hx-border-current hx-border-blue-200 hx-bg-blue-100 hx-text-blue-900 dark:hx-border-blue-200/30 dark:hx-bg-blue-900/30 dark:hx-text-blue-200&#34;&gt;
  &lt;p class=&#34;hx-flex hx-items-center hx-font-medium&#34;&gt;&lt;svg height=16px class=&#34;hx-inline-block hx-align-middle hx-mr-2&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34; fill=&#34;none&#34; viewBox=&#34;0 0 24 24&#34; stroke-width=&#34;2&#34; stroke=&#34;currentColor&#34; aria-hidden=&#34;true&#34;&gt;&lt;path stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34; d=&#34;M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z&#34;/&gt;&lt;/svg&gt;Note&lt;/p&gt;

  &lt;div class=&#34;hx-w-full hx-min-w-0 hx-leading-7&#34;&gt;
    &lt;div class=&#34;hx-mt-6 hx-leading-7 first:hx-mt-0&#34;&gt;&lt;p&gt;每一步必须是 &lt;code&gt;###&lt;/code&gt;（H3）标题。使用 &lt;code&gt;{{% %}}&lt;/code&gt; 分隔符。&lt;/p&gt;
&lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;hr&gt;
&lt;h2&gt;代码块增强&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;代码块增强&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#%e4%bb%a3%e7%a0%81%e5%9d%97%e5%a2%9e%e5%bc%ba&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;在代码块的语言标记后加 &lt;code&gt;{filename=&amp;quot;文件名&amp;quot;}&lt;/code&gt; 可显示文件名标签。&lt;/p&gt;
&lt;div class=&#34;hextra-code-block hx-relative hx-mt-6 first:hx-mt-0 hx-group/code&#34;&gt;

&lt;div class=&#34;filename not-prose&#34; dir=&#34;auto&#34;&gt;app.py&lt;/div&gt;&lt;div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;def&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;hello&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;():&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nb&#34;&gt;print&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;Hello, world!&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;hextra-code-copy-btn-container hx-opacity-0 hx-transition group-hover/code:hx-opacity-100 hx-flex hx-gap-1 hx-absolute hx-m-[11px] hx-right-0 hx-top-8&#34;&gt;
  &lt;button
    class=&#34;hextra-code-copy-btn hx-group/copybtn hx-transition-all active:hx-opacity-50 hx-bg-primary-700/5 hx-border hx-border-black/5 hx-text-gray-600 hover:hx-text-gray-900 hx-rounded-md hx-p-1.5 dark:hx-bg-primary-300/10 dark:hx-border-white/10 dark:hx-text-gray-400 dark:hover:hx-text-gray-50&#34;
    title=&#34;Copy code&#34;
  &gt;
    &lt;div class=&#34;copy-icon group-[.copied]/copybtn:hx-hidden hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
    &lt;div class=&#34;success-icon hx-hidden group-[.copied]/copybtn:hx-block hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
  &lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;hextra-code-block hx-relative hx-mt-6 first:hx-mt-0 hx-group/code&#34;&gt;

&lt;div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-markdown&#34; data-lang=&#34;markdown&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;```python {filename=&amp;#34;app.py&amp;#34;}
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;def hello():
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    print(&amp;#34;Hello, world!&amp;#34;)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;```&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;hextra-code-copy-btn-container hx-opacity-0 hx-transition group-hover/code:hx-opacity-100 hx-flex hx-gap-1 hx-absolute hx-m-[11px] hx-right-0 hx-top-0&#34;&gt;
  &lt;button
    class=&#34;hextra-code-copy-btn hx-group/copybtn hx-transition-all active:hx-opacity-50 hx-bg-primary-700/5 hx-border hx-border-black/5 hx-text-gray-600 hover:hx-text-gray-900 hx-rounded-md hx-p-1.5 dark:hx-bg-primary-300/10 dark:hx-border-white/10 dark:hx-text-gray-400 dark:hover:hx-text-gray-50&#34;
    title=&#34;Copy code&#34;
  &gt;
    &lt;div class=&#34;copy-icon group-[.copied]/copybtn:hx-hidden hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
    &lt;div class=&#34;success-icon hx-hidden group-[.copied]/copybtn:hx-block hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
  &lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;hr&gt;
&lt;h2&gt;Mermaid 图表&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;mermaid-图表&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#mermaid-%e5%9b%be%e8%a1%a8&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;直接在代码块中写 Mermaid 语法即可渲染为 SVG 图表。&lt;/p&gt;
&lt;pre class=&#34;mermaid hx-mt-6&#34;&gt;graph LR
    A[开始] --&gt; B[处理]
    B --&gt; C[结束]&lt;/pre&gt;&lt;div class=&#34;hextra-code-block hx-relative hx-mt-6 first:hx-mt-0 hx-group/code&#34;&gt;

&lt;div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-markdown&#34; data-lang=&#34;markdown&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;```mermaid
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;&lt;/span&gt;graph LR
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    A[开始] --&amp;gt; B[处理]
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    B --&amp;gt; C[结束]
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;```&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;hextra-code-copy-btn-container hx-opacity-0 hx-transition group-hover/code:hx-opacity-100 hx-flex hx-gap-1 hx-absolute hx-m-[11px] hx-right-0 hx-top-0&#34;&gt;
  &lt;button
    class=&#34;hextra-code-copy-btn hx-group/copybtn hx-transition-all active:hx-opacity-50 hx-bg-primary-700/5 hx-border hx-border-black/5 hx-text-gray-600 hover:hx-text-gray-900 hx-rounded-md hx-p-1.5 dark:hx-bg-primary-300/10 dark:hx-border-white/10 dark:hx-text-gray-400 dark:hover:hx-text-gray-50&#34;
    title=&#34;Copy code&#34;
  &gt;
    &lt;div class=&#34;copy-icon group-[.copied]/copybtn:hx-hidden hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
    &lt;div class=&#34;success-icon hx-hidden group-[.copied]/copybtn:hx-block hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
  &lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;hr&gt;
&lt;h2&gt;文件树 (filetree)&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;文件树-filetree&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#%e6%96%87%e4%bb%b6%e6%a0%91-filetree&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;用于展示目录结构，文件夹可展开/折叠。&lt;/p&gt;
&lt;div class=&#34;hextra-filetree hx-mt-6 hx-select-none hx-text-sm hx-text-gray-800 dark:hx-text-gray-300 not-prose&#34;&gt;
  &lt;div class=&#34;hx-inline-block hx-rounded-lg hx-border hx-px-4 hx-py-2 dark:hx-border-neutral-800&#34;&gt;
  

&lt;li class=&#34;hx-group hx-flex hx-list-none hx-flex-col&#34;&gt;
  &lt;button class=&#34;hextra-filetree-folder hx-inline-flex hx-cursor-pointer hx-items-center hx-py-1 hover:hx-opacity-60&#34;&gt;
    &lt;span data-state=&#34;open&#34; class=&#34;data-[state=open]:hx-hidden&#34;&gt;&lt;svg width=1em xmlns=&#34;http://www.w3.org/2000/svg&#34; fill=&#34;none&#34; viewBox=&#34;0 0 24 24&#34; stroke-width=&#34;2&#34; stroke=&#34;currentColor&#34; aria-hidden=&#34;true&#34;&gt;&lt;path stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34; d=&#34;M3 7v10a2 2 0 002 2h14a2 2 0 002-2V9a2 2 0 00-2-2h-6l-2-2H5a2 2 0 00-2 2z&#34;/&gt;&lt;/svg&gt;&lt;/span&gt;
    &lt;span data-state=&#34;open&#34; class=&#34;data-[state=closed]:hx-hidden&#34;&gt;&lt;svg width=1em xmlns=&#34;http://www.w3.org/2000/svg&#34; fill=&#34;none&#34; viewBox=&#34;0 0 24 24&#34; stroke-width=&#34;2&#34; stroke=&#34;currentColor&#34; aria-hidden=&#34;true&#34;&gt;&lt;path stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34; d=&#34;M5 19a2 2 0 01-2-2V7a2 2 0 012-2h4l2 2h4a2 2 0 012 2v1M5 19h14a2 2 0 002-2v-5a2 2 0 00-2-2H9a2 2 0 00-2 2v5a2 2 0 01-2 2z&#34;/&gt;&lt;/svg&gt;&lt;/span&gt;
    &lt;span class=&#34;ltr:hx-ml-1 rtl:hx-mr-1&#34;&gt;content&lt;/span&gt;
  &lt;/button&gt;
  &lt;ul data-state=&#34;open&#34; class=&#34;ltr:hx-pl-5 rtl:hx-pr-5 data-[state=closed]:hx-hidden&#34;&gt;
    &lt;li class=&#34;hx-flex hx-list-none&#34;&gt;
      &lt;span class=&#34;hx-inline-flex hx-cursor-default hx-items-center hx-py-1&#34;&gt;&lt;svg width=1em xmlns=&#34;http://www.w3.org/2000/svg&#34; fill=&#34;none&#34; viewBox=&#34;0 0 24 24&#34; stroke-width=&#34;2&#34; stroke=&#34;currentColor&#34; aria-hidden=&#34;true&#34;&gt;&lt;path stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34; d=&#34;M9 12h6m-6 4h6m2 5H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z&#34;/&gt;&lt;/svg&gt;&lt;span class=&#34;ltr:hx-ml-1 rtl:hx-mr-1&#34;&gt;_index.md&lt;/span&gt;
      &lt;/span&gt;
    &lt;/li&gt;

    

&lt;li class=&#34;hx-group hx-flex hx-list-none hx-flex-col&#34;&gt;
  &lt;button class=&#34;hextra-filetree-folder hx-inline-flex hx-cursor-pointer hx-items-center hx-py-1 hover:hx-opacity-60&#34;&gt;
    &lt;span data-state=&#34;open&#34; class=&#34;data-[state=open]:hx-hidden&#34;&gt;&lt;svg width=1em xmlns=&#34;http://www.w3.org/2000/svg&#34; fill=&#34;none&#34; viewBox=&#34;0 0 24 24&#34; stroke-width=&#34;2&#34; stroke=&#34;currentColor&#34; aria-hidden=&#34;true&#34;&gt;&lt;path stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34; d=&#34;M3 7v10a2 2 0 002 2h14a2 2 0 002-2V9a2 2 0 00-2-2h-6l-2-2H5a2 2 0 00-2 2z&#34;/&gt;&lt;/svg&gt;&lt;/span&gt;
    &lt;span data-state=&#34;open&#34; class=&#34;data-[state=closed]:hx-hidden&#34;&gt;&lt;svg width=1em xmlns=&#34;http://www.w3.org/2000/svg&#34; fill=&#34;none&#34; viewBox=&#34;0 0 24 24&#34; stroke-width=&#34;2&#34; stroke=&#34;currentColor&#34; aria-hidden=&#34;true&#34;&gt;&lt;path stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34; d=&#34;M5 19a2 2 0 01-2-2V7a2 2 0 012-2h4l2 2h4a2 2 0 012 2v1M5 19h14a2 2 0 002-2v-5a2 2 0 00-2-2H9a2 2 0 00-2 2v5a2 2 0 01-2 2z&#34;/&gt;&lt;/svg&gt;&lt;/span&gt;
    &lt;span class=&#34;ltr:hx-ml-1 rtl:hx-mr-1&#34;&gt;blog&lt;/span&gt;
  &lt;/button&gt;
  &lt;ul data-state=&#34;open&#34; class=&#34;ltr:hx-pl-5 rtl:hx-pr-5 data-[state=closed]:hx-hidden&#34;&gt;
      &lt;li class=&#34;hx-flex hx-list-none&#34;&gt;
        &lt;span class=&#34;hx-inline-flex hx-cursor-default hx-items-center hx-py-1&#34;&gt;&lt;svg width=1em xmlns=&#34;http://www.w3.org/2000/svg&#34; fill=&#34;none&#34; viewBox=&#34;0 0 24 24&#34; stroke-width=&#34;2&#34; stroke=&#34;currentColor&#34; aria-hidden=&#34;true&#34;&gt;&lt;path stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34; d=&#34;M9 12h6m-6 4h6m2 5H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z&#34;/&gt;&lt;/svg&gt;&lt;span class=&#34;ltr:hx-ml-1 rtl:hx-mr-1&#34;&gt;post1.md&lt;/span&gt;
        &lt;/span&gt;
      &lt;/li&gt;

      &lt;li class=&#34;hx-flex hx-list-none&#34;&gt;
        &lt;span class=&#34;hx-inline-flex hx-cursor-default hx-items-center hx-py-1&#34;&gt;&lt;svg width=1em xmlns=&#34;http://www.w3.org/2000/svg&#34; fill=&#34;none&#34; viewBox=&#34;0 0 24 24&#34; stroke-width=&#34;2&#34; stroke=&#34;currentColor&#34; aria-hidden=&#34;true&#34;&gt;&lt;path stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34; d=&#34;M9 12h6m-6 4h6m2 5H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z&#34;/&gt;&lt;/svg&gt;&lt;span class=&#34;ltr:hx-ml-1 rtl:hx-mr-1&#34;&gt;post2.md&lt;/span&gt;
        &lt;/span&gt;
      &lt;/li&gt;

    &lt;/ul&gt;
&lt;/li&gt;

  &lt;/ul&gt;
&lt;/li&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;div class=&#34;hextra-code-block hx-relative hx-mt-6 first:hx-mt-0 hx-group/code&#34;&gt;

&lt;div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-markdown&#34; data-lang=&#34;markdown&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;{{&lt;span class=&#34;p&#34;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&#34;nt&#34;&gt;filetree&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;na&#34;&gt;container&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;&amp;gt;&lt;/span&gt;}}
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  {{&lt;span class=&#34;p&#34;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&#34;nt&#34;&gt;filetree&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;na&#34;&gt;folder&lt;/span&gt; &lt;span class=&#34;na&#34;&gt;name&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;content&amp;#34;&lt;/span&gt; &lt;span class=&#34;na&#34;&gt;state&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;open&amp;#34;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;&amp;gt;&lt;/span&gt;}}
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    {{&lt;span class=&#34;p&#34;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&#34;nt&#34;&gt;filetree&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;na&#34;&gt;file&lt;/span&gt; &lt;span class=&#34;na&#34;&gt;name&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;_index.md&amp;#34;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;&amp;gt;&lt;/span&gt;}}
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    {{&lt;span class=&#34;p&#34;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&#34;nt&#34;&gt;filetree&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;na&#34;&gt;folder&lt;/span&gt; &lt;span class=&#34;na&#34;&gt;name&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;blog&amp;#34;&lt;/span&gt; &lt;span class=&#34;na&#34;&gt;state&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;open&amp;#34;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;&amp;gt;&lt;/span&gt;}}
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      {{&lt;span class=&#34;p&#34;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&#34;nt&#34;&gt;filetree&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;na&#34;&gt;file&lt;/span&gt; &lt;span class=&#34;na&#34;&gt;name&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;post1.md&amp;#34;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;&amp;gt;&lt;/span&gt;}}
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    {{&lt;span class=&#34;err&#34;&gt;&amp;lt;&lt;/span&gt; /filetree/folder &amp;gt;}}
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  {{&lt;span class=&#34;err&#34;&gt;&amp;lt;&lt;/span&gt; /filetree/folder &amp;gt;}}
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;{{&lt;span class=&#34;err&#34;&gt;&amp;lt;&lt;/span&gt; /filetree/container &amp;gt;}}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;hextra-code-copy-btn-container hx-opacity-0 hx-transition group-hover/code:hx-opacity-100 hx-flex hx-gap-1 hx-absolute hx-m-[11px] hx-right-0 hx-top-0&#34;&gt;
  &lt;button
    class=&#34;hextra-code-copy-btn hx-group/copybtn hx-transition-all active:hx-opacity-50 hx-bg-primary-700/5 hx-border hx-border-black/5 hx-text-gray-600 hover:hx-text-gray-900 hx-rounded-md hx-p-1.5 dark:hx-bg-primary-300/10 dark:hx-border-white/10 dark:hx-text-gray-400 dark:hover:hx-text-gray-50&#34;
    title=&#34;Copy code&#34;
  &gt;
    &lt;div class=&#34;copy-icon group-[.copied]/copybtn:hx-hidden hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
    &lt;div class=&#34;success-icon hx-hidden group-[.copied]/copybtn:hx-block hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
  &lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;code&gt;state&lt;/code&gt; 参数：&lt;code&gt;&amp;quot;open&amp;quot;&lt;/code&gt;（默认展开）或 &lt;code&gt;&amp;quot;closed&amp;quot;&lt;/code&gt;（默认折叠）。&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;行内徽章 (badge)&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;行内徽章-badge&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#%e8%a1%8c%e5%86%85%e5%be%bd%e7%ab%a0-badge&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;用于行内小标签，支持 4 种颜色。&lt;/p&gt;
&lt;p&gt;默认：&lt;div class=&#34;hextra-badge &#34;&gt;
  &lt;div class=&#34;hx-inline-flex hx-gap-1 hx-items-center hx-rounded-full hx-px-2.5 hx-leading-6 hx-text-[.65rem] hx-border hx-text-gray-600 hx-bg-gray-100 dark:hx-bg-neutral-800 dark:hx-text-neutral-200 hx-border-gray-200 dark:hx-border-neutral-700&#34;&gt;默认&lt;/div&gt;
&lt;/div&gt;
信息：&lt;div class=&#34;hextra-badge &#34;&gt;
  &lt;div class=&#34;hx-inline-flex hx-gap-1 hx-items-center hx-rounded-full hx-px-2.5 hx-leading-6 hx-text-[.65rem] hx-border hx-border-blue-200 hx-bg-blue-100 hx-text-blue-900 dark:hx-border-blue-200/30 dark:hx-bg-blue-900/30 dark:hx-text-blue-200&#34;&gt;信息&lt;/div&gt;
&lt;/div&gt;
警告：&lt;div class=&#34;hextra-badge &#34;&gt;
  &lt;div class=&#34;hx-inline-flex hx-gap-1 hx-items-center hx-rounded-full hx-px-2.5 hx-leading-6 hx-text-[.65rem] hx-border hx-border-yellow-100 hx-bg-yellow-50 hx-text-yellow-900 dark:hx-border-yellow-200/30 dark:hx-bg-yellow-700/30 dark:hx-text-yellow-200&#34;&gt;警告&lt;/div&gt;
&lt;/div&gt;
错误：&lt;div class=&#34;hextra-badge &#34;&gt;
  &lt;div class=&#34;hx-inline-flex hx-gap-1 hx-items-center hx-rounded-full hx-px-2.5 hx-leading-6 hx-text-[.65rem] hx-border hx-border-red-200 hx-bg-red-100 hx-text-red-900 dark:hx-border-red-200/30 dark:hx-bg-red-900/30 dark:hx-text-red-200&#34;&gt;错误&lt;/div&gt;
&lt;/div&gt;&lt;/p&gt;
&lt;div class=&#34;hextra-code-block hx-relative hx-mt-6 first:hx-mt-0 hx-group/code&#34;&gt;

&lt;div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-markdown&#34; data-lang=&#34;markdown&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;{{&lt;span class=&#34;p&#34;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&#34;nt&#34;&gt;badge&lt;/span&gt; &lt;span class=&#34;na&#34;&gt;content&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;默认&amp;#34;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;&amp;gt;&lt;/span&gt;}}
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;{{&lt;span class=&#34;p&#34;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&#34;nt&#34;&gt;badge&lt;/span&gt; &lt;span class=&#34;na&#34;&gt;content&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;信息&amp;#34;&lt;/span&gt; &lt;span class=&#34;na&#34;&gt;type&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;info&amp;#34;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;&amp;gt;&lt;/span&gt;}}
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;{{&lt;span class=&#34;p&#34;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&#34;nt&#34;&gt;badge&lt;/span&gt; &lt;span class=&#34;na&#34;&gt;content&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;警告&amp;#34;&lt;/span&gt; &lt;span class=&#34;na&#34;&gt;type&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;warning&amp;#34;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;&amp;gt;&lt;/span&gt;}}
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;{{&lt;span class=&#34;p&#34;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&#34;nt&#34;&gt;badge&lt;/span&gt; &lt;span class=&#34;na&#34;&gt;content&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;错误&amp;#34;&lt;/span&gt; &lt;span class=&#34;na&#34;&gt;type&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;error&amp;#34;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;&amp;gt;&lt;/span&gt;}}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;hextra-code-copy-btn-container hx-opacity-0 hx-transition group-hover/code:hx-opacity-100 hx-flex hx-gap-1 hx-absolute hx-m-[11px] hx-right-0 hx-top-0&#34;&gt;
  &lt;button
    class=&#34;hextra-code-copy-btn hx-group/copybtn hx-transition-all active:hx-opacity-50 hx-bg-primary-700/5 hx-border hx-border-black/5 hx-text-gray-600 hover:hx-text-gray-900 hx-rounded-md hx-p-1.5 dark:hx-bg-primary-300/10 dark:hx-border-white/10 dark:hx-text-gray-400 dark:hover:hx-text-gray-50&#34;
    title=&#34;Copy code&#34;
  &gt;
    &lt;div class=&#34;copy-icon group-[.copied]/copybtn:hx-hidden hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
    &lt;div class=&#34;success-icon hx-hidden group-[.copied]/copybtn:hx-block hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
  &lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;带链接和图标：&lt;/p&gt;
&lt;a href=&#34;https://github.com&#34; title=&#34;GitHub&#34; target=&#34;_blank&#34;&gt;&lt;div class=&#34;hextra-badge &#34;&gt;
  &lt;div class=&#34;hx-inline-flex hx-gap-1 hx-items-center hx-rounded-full hx-px-2.5 hx-leading-6 hx-text-[.65rem] hx-border hx-text-gray-600 hx-bg-gray-100 dark:hx-bg-neutral-800 dark:hx-text-neutral-200 hx-border-gray-200 dark:hx-border-neutral-700&#34;&gt;&lt;svg height=12 fill=&#34;currentColor&#34; viewBox=&#34;3 3 18 18&#34;&gt;
  &lt;path d=&#34;M12 3C7.0275 3 3 7.12937 3 12.2276C3 16.3109 5.57625 19.7597 9.15374 20.9824C9.60374 21.0631 9.77249 20.7863 9.77249 20.5441C9.77249 20.3249 9.76125 19.5982 9.76125 18.8254C7.5 19.2522 6.915 18.2602 6.735 17.7412C6.63375 17.4759 6.19499 16.6569 5.8125 16.4378C5.4975 16.2647 5.0475 15.838 5.80124 15.8264C6.51 15.8149 7.01625 16.4954 7.18499 16.7723C7.99499 18.1679 9.28875 17.7758 9.80625 17.5335C9.885 16.9337 10.1212 16.53 10.38 16.2993C8.3775 16.0687 6.285 15.2728 6.285 11.7432C6.285 10.7397 6.63375 9.9092 7.20749 9.26326C7.1175 9.03257 6.8025 8.08674 7.2975 6.81794C7.2975 6.81794 8.05125 6.57571 9.77249 7.76377C10.4925 7.55615 11.2575 7.45234 12.0225 7.45234C12.7875 7.45234 13.5525 7.55615 14.2725 7.76377C15.9937 6.56418 16.7475 6.81794 16.7475 6.81794C17.2424 8.08674 16.9275 9.03257 16.8375 9.26326C17.4113 9.9092 17.76 10.7281 17.76 11.7432C17.76 15.2843 15.6563 16.0687 13.6537 16.2993C13.98 16.5877 14.2613 17.1414 14.2613 18.0065C14.2613 19.2407 14.25 20.2326 14.25 20.5441C14.25 20.7863 14.4188 21.0746 14.8688 20.9824C16.6554 20.364 18.2079 19.1866 19.3078 17.6162C20.4077 16.0457 20.9995 14.1611 21 12.2276C21 7.12937 16.9725 3 12 3Z&#34;&gt;&lt;/path&gt;
&lt;/svg&gt;
GitHub&lt;/div&gt;
&lt;/div&gt;&lt;/a&gt;
&lt;div class=&#34;hextra-code-block hx-relative hx-mt-6 first:hx-mt-0 hx-group/code&#34;&gt;

&lt;div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-markdown&#34; data-lang=&#34;markdown&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;{{&lt;span class=&#34;p&#34;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&#34;nt&#34;&gt;badge&lt;/span&gt; &lt;span class=&#34;na&#34;&gt;content&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;GitHub&amp;#34;&lt;/span&gt; &lt;span class=&#34;na&#34;&gt;link&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;https://github.com&amp;#34;&lt;/span&gt; &lt;span class=&#34;na&#34;&gt;icon&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;github&amp;#34;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;&amp;gt;&lt;/span&gt;}}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;hextra-code-copy-btn-container hx-opacity-0 hx-transition group-hover/code:hx-opacity-100 hx-flex hx-gap-1 hx-absolute hx-m-[11px] hx-right-0 hx-top-0&#34;&gt;
  &lt;button
    class=&#34;hextra-code-copy-btn hx-group/copybtn hx-transition-all active:hx-opacity-50 hx-bg-primary-700/5 hx-border hx-border-black/5 hx-text-gray-600 hover:hx-text-gray-900 hx-rounded-md hx-p-1.5 dark:hx-bg-primary-300/10 dark:hx-border-white/10 dark:hx-text-gray-400 dark:hover:hx-text-gray-50&#34;
    title=&#34;Copy code&#34;
  &gt;
    &lt;div class=&#34;copy-icon group-[.copied]/copybtn:hx-hidden hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
    &lt;div class=&#34;success-icon hx-hidden group-[.copied]/copybtn:hx-block hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
  &lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;hr&gt;
&lt;h2&gt;行内图标 (icon)&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;行内图标-icon&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#%e8%a1%8c%e5%86%85%e5%9b%be%e6%a0%87-icon&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;在文字中插入 Heroicons 图标。&lt;/p&gt;
&lt;p&gt;&lt;span class=&#34;hx-inline-block hx-align-text-bottom icon&#34;&gt;&lt;svg height=1em fill=&#34;currentColor&#34; viewBox=&#34;3 3 18 18&#34;&gt;
  &lt;path d=&#34;M12 3C7.0275 3 3 7.12937 3 12.2276C3 16.3109 5.57625 19.7597 9.15374 20.9824C9.60374 21.0631 9.77249 20.7863 9.77249 20.5441C9.77249 20.3249 9.76125 19.5982 9.76125 18.8254C7.5 19.2522 6.915 18.2602 6.735 17.7412C6.63375 17.4759 6.19499 16.6569 5.8125 16.4378C5.4975 16.2647 5.0475 15.838 5.80124 15.8264C6.51 15.8149 7.01625 16.4954 7.18499 16.7723C7.99499 18.1679 9.28875 17.7758 9.80625 17.5335C9.885 16.9337 10.1212 16.53 10.38 16.2993C8.3775 16.0687 6.285 15.2728 6.285 11.7432C6.285 10.7397 6.63375 9.9092 7.20749 9.26326C7.1175 9.03257 6.8025 8.08674 7.2975 6.81794C7.2975 6.81794 8.05125 6.57571 9.77249 7.76377C10.4925 7.55615 11.2575 7.45234 12.0225 7.45234C12.7875 7.45234 13.5525 7.55615 14.2725 7.76377C15.9937 6.56418 16.7475 6.81794 16.7475 6.81794C17.2424 8.08674 16.9275 9.03257 16.8375 9.26326C17.4113 9.9092 17.76 10.7281 17.76 11.7432C17.76 15.2843 15.6563 16.0687 13.6537 16.2993C13.98 16.5877 14.2613 17.1414 14.2613 18.0065C14.2613 19.2407 14.25 20.2326 14.25 20.5441C14.25 20.7863 14.4188 21.0746 14.8688 20.9824C16.6554 20.364 18.2079 19.1866 19.3078 17.6162C20.4077 16.0457 20.9995 14.1611 21 12.2276C21 7.12937 16.9725 3 12 3Z&#34;&gt;&lt;/path&gt;
&lt;/svg&gt;
&lt;/span&gt;
 GitHub、&lt;span class=&#34;hx-inline-block hx-align-text-bottom icon&#34;&gt;&lt;svg height=1em xmlns=&#34;http://www.w3.org/2000/svg&#34; fill=&#34;none&#34; viewBox=&#34;0 0 24 24&#34; stroke-width=&#34;2&#34; stroke=&#34;currentColor&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;M12 14l9-5-9-5-9 5 9 5z&#34;/&gt;&lt;path d=&#34;M12 14l6.16-3.422a12.083 12.083 0 01.665 6.479A11.952 11.952 0 0012 20.055a11.952 11.952 0 00-6.824-2.998 12.078 12.078 0 01.665-6.479L12 14z&#34;/&gt;&lt;path stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34; d=&#34;M12 14l9-5-9-5-9 5 9 5zm0 0l6.16-3.422a12.083 12.083 0 01.665 6.479A11.952 11.952 0 0012 20.055a11.952 11.952 0 00-6.824-2.998 12.078 12.078 0 01.665-6.479L12 14zm-4 6v-7.5l4-2.222&#34;/&gt;&lt;/svg&gt;&lt;/span&gt;
 学术、&lt;span class=&#34;hx-inline-block hx-align-text-bottom icon&#34;&gt;&lt;svg height=1em xmlns=&#34;http://www.w3.org/2000/svg&#34; fill=&#34;none&#34; viewBox=&#34;0 0 24 24&#34; stroke-width=&#34;2&#34; stroke=&#34;currentColor&#34; aria-hidden=&#34;true&#34;&gt;&lt;path stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34; d=&#34;M15.232 5.232l3.536 3.536m-2.036-5.036a2.5 2.5 0 113.536 3.536L6.5 21.036H3v-3.572L16.732 3.732z&#34;/&gt;&lt;/svg&gt;&lt;/span&gt;
 编辑&lt;/p&gt;
&lt;div class=&#34;hextra-code-block hx-relative hx-mt-6 first:hx-mt-0 hx-group/code&#34;&gt;

&lt;div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-markdown&#34; data-lang=&#34;markdown&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;{{&lt;span class=&#34;p&#34;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&#34;nt&#34;&gt;icon&lt;/span&gt; &lt;span class=&#34;err&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;na&#34;&gt;github&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;&amp;#34;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;&amp;gt;&lt;/span&gt;}} GitHub、{{&lt;span class=&#34;p&#34;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&#34;nt&#34;&gt;icon&lt;/span&gt; &lt;span class=&#34;err&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;na&#34;&gt;academic-cap&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;&amp;#34;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;&amp;gt;&lt;/span&gt;}} 学术&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;hextra-code-copy-btn-container hx-opacity-0 hx-transition group-hover/code:hx-opacity-100 hx-flex hx-gap-1 hx-absolute hx-m-[11px] hx-right-0 hx-top-0&#34;&gt;
  &lt;button
    class=&#34;hextra-code-copy-btn hx-group/copybtn hx-transition-all active:hx-opacity-50 hx-bg-primary-700/5 hx-border hx-border-black/5 hx-text-gray-600 hover:hx-text-gray-900 hx-rounded-md hx-p-1.5 dark:hx-bg-primary-300/10 dark:hx-border-white/10 dark:hx-text-gray-400 dark:hover:hx-text-gray-50&#34;
    title=&#34;Copy code&#34;
  &gt;
    &lt;div class=&#34;copy-icon group-[.copied]/copybtn:hx-hidden hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
    &lt;div class=&#34;success-icon hx-hidden group-[.copied]/copybtn:hx-block hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
  &lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;hx-overflow-x-auto hx-mt-6 hx-flex hx-flex-col hx-rounded-lg hx-border hx-py-4 hx-px-4 contrast-more:hx-border-current contrast-more:dark:hx-border-current hx-border-blue-200 hx-bg-blue-100 hx-text-blue-900 dark:hx-border-blue-200/30 dark:hx-bg-blue-900/30 dark:hx-text-blue-200&#34;&gt;
  &lt;p class=&#34;hx-flex hx-items-center hx-font-medium&#34;&gt;&lt;svg height=16px class=&#34;hx-inline-block hx-align-middle hx-mr-2&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34; fill=&#34;none&#34; viewBox=&#34;0 0 24 24&#34; stroke-width=&#34;2&#34; stroke=&#34;currentColor&#34; aria-hidden=&#34;true&#34;&gt;&lt;path stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34; d=&#34;M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z&#34;/&gt;&lt;/svg&gt;Note&lt;/p&gt;

  &lt;div class=&#34;hx-w-full hx-min-w-0 hx-leading-7&#34;&gt;
    &lt;div class=&#34;hx-mt-6 hx-leading-7 first:hx-mt-0&#34;&gt;&lt;p&gt;需在站点配置中启用 &lt;code&gt;enableInlineShortcodes: true&lt;/code&gt;。&lt;/p&gt;
&lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;hr&gt;
&lt;h2&gt;PDF 嵌入&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;pdf-嵌入&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#pdf-%e5%b5%8c%e5%85%a5&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;以 iframe 形式嵌入 PDF 阅读器。&lt;/p&gt;
&lt;div class=&#34;hextra-code-block hx-relative hx-mt-6 first:hx-mt-0 hx-group/code&#34;&gt;

&lt;div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-markdown&#34; data-lang=&#34;markdown&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;{{&lt;span class=&#34;p&#34;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&#34;nt&#34;&gt;pdf&lt;/span&gt; &lt;span class=&#34;err&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;na&#34;&gt;path&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;na&#34;&gt;to&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;na&#34;&gt;file&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;na&#34;&gt;pdf&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;&amp;#34;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;&amp;gt;&lt;/span&gt;}}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;hextra-code-copy-btn-container hx-opacity-0 hx-transition group-hover/code:hx-opacity-100 hx-flex hx-gap-1 hx-absolute hx-m-[11px] hx-right-0 hx-top-0&#34;&gt;
  &lt;button
    class=&#34;hextra-code-copy-btn hx-group/copybtn hx-transition-all active:hx-opacity-50 hx-bg-primary-700/5 hx-border hx-border-black/5 hx-text-gray-600 hover:hx-text-gray-900 hx-rounded-md hx-p-1.5 dark:hx-bg-primary-300/10 dark:hx-border-white/10 dark:hx-text-gray-400 dark:hover:hx-text-gray-50&#34;
    title=&#34;Copy code&#34;
  &gt;
    &lt;div class=&#34;copy-icon group-[.copied]/copybtn:hx-hidden hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
    &lt;div class=&#34;success-icon hx-hidden group-[.copied]/copybtn:hx-block hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
  &lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;支持远程 URL 和本地文件路径（放在 page bundle 中）。&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;Jupyter Notebook&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;jupyter-notebook&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#jupyter-notebook&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;直接渲染 &lt;code&gt;.ipynb&lt;/code&gt; 文件，支持代码单元格（带语法高亮）、Markdown 单元格和图片输出。&lt;/p&gt;
&lt;div class=&#34;hextra-code-block hx-relative hx-mt-6 first:hx-mt-0 hx-group/code&#34;&gt;

&lt;div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-markdown&#34; data-lang=&#34;markdown&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;{{% jupyter &amp;#34;notebook.ipynb&amp;#34; %}}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;hextra-code-copy-btn-container hx-opacity-0 hx-transition group-hover/code:hx-opacity-100 hx-flex hx-gap-1 hx-absolute hx-m-[11px] hx-right-0 hx-top-0&#34;&gt;
  &lt;button
    class=&#34;hextra-code-copy-btn hx-group/copybtn hx-transition-all active:hx-opacity-50 hx-bg-primary-700/5 hx-border hx-border-black/5 hx-text-gray-600 hover:hx-text-gray-900 hx-rounded-md hx-p-1.5 dark:hx-bg-primary-300/10 dark:hx-border-white/10 dark:hx-text-gray-400 dark:hover:hx-text-gray-50&#34;
    title=&#34;Copy code&#34;
  &gt;
    &lt;div class=&#34;copy-icon group-[.copied]/copybtn:hx-hidden hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
    &lt;div class=&#34;success-icon hx-hidden group-[.copied]/copybtn:hx-block hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
  &lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;使用 &lt;code&gt;{{% %}}&lt;/code&gt; 分隔符，支持远程 URL。&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;快速对照表&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;快速对照表&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#%e5%bf%ab%e9%80%9f%e5%af%b9%e7%85%a7%e8%a1%a8&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;需求&lt;/th&gt;
          &lt;th&gt;Shortcode&lt;/th&gt;
          &lt;th&gt;分隔符&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;可折叠文本&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;details&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;{{% %}}&lt;/code&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;提示框&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;callout&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;{{&amp;lt; &amp;gt;}}&lt;/code&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;标签页&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;tabs&lt;/code&gt; + &lt;code&gt;tab&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;{{&amp;lt; &amp;gt;}}&lt;/code&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;步骤流程&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;steps&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;{{% %}}&lt;/code&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;卡片网格&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;cards&lt;/code&gt; + &lt;code&gt;card&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;{{&amp;lt; &amp;gt;}}&lt;/code&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;文件目录树&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;filetree/*&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;{{&amp;lt; &amp;gt;}}&lt;/code&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;嵌入 PDF&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;pdf&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;{{&amp;lt; &amp;gt;}}&lt;/code&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;嵌入 Notebook&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;jupyter&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;{{% %}}&lt;/code&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;行内图标&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;icon&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;{{&amp;lt; &amp;gt;}}&lt;/code&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;徽章标签&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;badge&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;{{&amp;lt; &amp;gt;}}&lt;/code&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;流程图/图表&lt;/td&gt;
          &lt;td&gt;Mermaid&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;```mermaid&lt;/code&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;带文件名代码&lt;/td&gt;
          &lt;td&gt;代码块属性&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;```lang {filename=&amp;quot;...&amp;quot;}&lt;/code&gt;&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;hr&gt;
&lt;p&gt;完整参数文档可参考 &lt;a href=&#34;https://imfing.github.io/hextra/docs/guide/shortcodes/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Hextra 官方 Shortcodes 文档&lt;/a&gt;。&lt;/p&gt;
&lt;div class=&#34;hx-overflow-x-auto hx-mt-6 hx-flex hx-rounded-lg hx-border hx-py-2 ltr:hx-pr-4 rtl:hx-pl-4 contrast-more:hx-border-current contrast-more:dark:hx-border-current hx-border-blue-200 hx-bg-blue-100 hx-text-blue-900 dark:hx-border-blue-200/30 dark:hx-bg-blue-900/30 dark:hx-text-blue-200&#34;&gt;
  &lt;div class=&#34;ltr:hx-pl-3 ltr:hx-pr-2 rtl:hx-pr-3 rtl:hx-pl-2&#34;&gt;&lt;div class=&#34;hx-select-none hx-text-xl&#34; style=&#34;font-family: &#39;Apple Color Emoji&#39;, &#39;Segoe UI Emoji&#39;, &#39;Segoe UI Symbol&#39;;&#34;&gt;🤖&lt;/div&gt;&lt;/div&gt;

  &lt;div class=&#34;hx-w-full hx-min-w-0 hx-leading-7&#34;&gt;
    &lt;div class=&#34;hx-mt-6 hx-leading-7 first:hx-mt-0&#34;&gt;&lt;strong&gt;AI 使用声明&lt;/strong&gt;：本文由作者撰写，AI 工具（Claude）辅助完成初稿起草、中英互译与格式整理。作者已审校全部内容，并对准确性承担最终责任。&lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;
      </description>
    </item>
    
    <item>
      <title>Claude Code 接入 MIMO 模型：通过 PreToolUse Hook 解决多媒体识别问题</title>
      <link>https://www.songxue-j.com/zh-cn/blog/mimo-multimedia-hook/</link>
      <pubDate>Wed, 03 Jun 2026 00:00:00 +0000</pubDate>
      
      <guid>https://www.songxue-j.com/zh-cn/blog/mimo-multimedia-hook/</guid>
      <description>
        
        
        &lt;div class=&#34;hx-overflow-x-auto hx-mt-6 hx-flex hx-rounded-lg hx-border hx-py-2 ltr:hx-pr-4 rtl:hx-pl-4 contrast-more:hx-border-current contrast-more:dark:hx-border-current hx-border-orange-100 hx-bg-orange-50 hx-text-orange-800 dark:hx-border-orange-400/30 dark:hx-bg-orange-400/20 dark:hx-text-orange-300&#34;&gt;
  &lt;div class=&#34;ltr:hx-pl-3 ltr:hx-pr-2 rtl:hx-pr-3 rtl:hx-pl-2&#34;&gt;&lt;div class=&#34;hx-select-none hx-text-xl&#34; style=&#34;font-family: &#39;Apple Color Emoji&#39;, &#39;Segoe UI Emoji&#39;, &#39;Segoe UI Symbol&#39;;&#34;&gt;🙏&lt;/div&gt;&lt;/div&gt;

  &lt;div class=&#34;hx-w-full hx-min-w-0 hx-leading-7&#34;&gt;
    &lt;div class=&#34;hx-mt-6 hx-leading-7 first:hx-mt-0&#34;&gt;&lt;p&gt;&lt;strong&gt;致谢&lt;/strong&gt;：本教程基于 &lt;a href=&#34;https://github.com/congxxx&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;congxxx&lt;/a&gt; 开发的 &lt;strong&gt;mimo-media-recognition-mcp&lt;/strong&gt; 项目。&lt;a href=&#34;https://www.cnblogs.com/congxinxue/p/20086413&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;原作者的文章&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;原项目地址：&lt;a href=&#34;https://github.com/congxxx/mimo-media-recognition-mcp&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;https://github.com/congxxx/mimo-media-recognition-mcp&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;本文在原方案基础上，补充了 &lt;strong&gt;PreToolUse Hook 机制&lt;/strong&gt;，解决了 Agent 在长任务推理中直接读取多媒体文件导致报错的问题。&lt;/p&gt;
&lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;h2&gt;一、 问题背景&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;一-问题背景&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#%e4%b8%80-%e9%97%ae%e9%a2%98%e8%83%8c%e6%99%af&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;h3&gt;1. 核心矛盾&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;1-核心矛盾&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#1-%e6%a0%b8%e5%bf%83%e7%9f%9b%e7%9b%be&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;书接上文&lt;a href=&#34;https://www.songxue-j.com/zh-cn/blog/claude-code-deepseek-setup/&#34; &gt;Claude Code 配置教程&lt;/a&gt;，在将 DeepSeek 接入 Claude Code 后，出现了一个新的问题：DeepSeek V4pro 并不是多模态模型，这意味着其无法原生支持多媒体内容——比如图片、音频或视频的读取。&lt;/p&gt;
&lt;h3&gt;2. 原作者的解决方案&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;2-原作者的解决方案&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#2-%e5%8e%9f%e4%bd%9c%e8%80%85%e7%9a%84%e8%a7%a3%e5%86%b3%e6%96%b9%e6%a1%88&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;通过联网搜索，我看到&lt;a href=&#34;https://github.com/congxxx&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;congxxx&lt;/a&gt; 提出了一个优雅的架构：&lt;/p&gt;
&lt;div class=&#34;hextra-code-block hx-relative hx-mt-6 first:hx-mt-0 hx-group/code&#34;&gt;

&lt;pre&gt;&lt;code&gt;Claude Code (mimo-v2.5-pro)       ← 主对话，推理能力强
    ↓ 发现需要识图/音频/视频
    ↓ 调用 MCP
MIMO Media Recognition MCP        ← 专职多媒体识别
    ↓ 调用 MIMO API (mimo-v2-omni)
    ↓ 返回识别结果（文本）
Claude Code 继续对话               ← 上下文不中断&lt;/code&gt;&lt;/pre&gt;&lt;div class=&#34;hextra-code-copy-btn-container hx-opacity-0 hx-transition group-hover/code:hx-opacity-100 hx-flex hx-gap-1 hx-absolute hx-m-[11px] hx-right-0 hx-top-0&#34;&gt;
  &lt;button
    class=&#34;hextra-code-copy-btn hx-group/copybtn hx-transition-all active:hx-opacity-50 hx-bg-primary-700/5 hx-border hx-border-black/5 hx-text-gray-600 hover:hx-text-gray-900 hx-rounded-md hx-p-1.5 dark:hx-bg-primary-300/10 dark:hx-border-white/10 dark:hx-text-gray-400 dark:hover:hx-text-gray-50&#34;
    title=&#34;Copy code&#34;
  &gt;
    &lt;div class=&#34;copy-icon group-[.copied]/copybtn:hx-hidden hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
    &lt;div class=&#34;success-icon hx-hidden group-[.copied]/copybtn:hx-block hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
  &lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;通过 MCP 协议，主模型（原方案中是小米的 mimo-v2.5-pro）保持 pro 版本的推理能力，多媒体识别交给 omni 模型，两者各司其职。
听上去很棒，我因地制宜做了一些改动后，将其部署在本地。&lt;/p&gt;
&lt;p&gt;在显式指定调用 MCP 来理解图片时，这套方案的表现很好。比如，我让 Agent 查看 MIMO 官网的这张模型优势概览图：&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://www.songxue-j.com/blog/mimo-multimedia-hook/ref_image.png&#34; alt=&#34;MIMO Model Advantages&#34; loading=&#34;lazy&#34; /&gt;&lt;/p&gt;
&lt;p&gt;Agent 调用了 &lt;code&gt;mcp__mimo-media__understand_image&lt;/code&gt;，返回了详细的文字描述：页面结构（含导航栏和标题）、四张优势卡片的内容（原生全模态感知、1M 上下文、全模态代理能力、性能效率兼具）、以及右侧 8 个性能基准柱状图的具体数值（Image Understanding、Multimodal Agent、Video Understanding 三个维度，MiMo-V2.5 与竞品的对比数据）。&lt;/p&gt;
&lt;p&gt;整个过程无需我手动截图说明，Agent 直接基于 MCP 返回的文本完成了后续推理。&lt;/p&gt;
&lt;h3&gt;3. 遗留问题：Agent 的&amp;quot;自作主张&amp;quot;&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;3-遗留问题agent-的自作主张&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#3-%e9%81%97%e7%95%99%e9%97%ae%e9%a2%98agent-%e7%9a%84%e8%87%aa%e4%bd%9c%e4%b8%bb%e5%bc%a0&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;但在实际的长任务推理中，出现了一个棘手的问题：&lt;/p&gt;
&lt;div class=&#34;hx-overflow-x-auto hx-mt-6 hx-flex hx-rounded-lg hx-border hx-py-2 ltr:hx-pr-4 rtl:hx-pl-4 contrast-more:hx-border-current contrast-more:dark:hx-border-current hx-border-yellow-100 hx-bg-yellow-50 hx-text-yellow-900 dark:hx-border-yellow-200/30 dark:hx-bg-yellow-700/30 dark:hx-text-yellow-200&#34;&gt;
  &lt;div class=&#34;ltr:hx-pl-3 ltr:hx-pr-2 rtl:hx-pr-3 rtl:hx-pl-2&#34;&gt;&lt;div class=&#34;hx-select-none hx-text-xl&#34; style=&#34;font-family: &#39;Apple Color Emoji&#39;, &#39;Segoe UI Emoji&#39;, &#39;Segoe UI Symbol&#39;;&#34;&gt;⚠️&lt;/div&gt;&lt;/div&gt;

  &lt;div class=&#34;hx-w-full hx-min-w-0 hx-leading-7&#34;&gt;
    &lt;div class=&#34;hx-mt-6 hx-leading-7 first:hx-mt-0&#34;&gt;&lt;p&gt;&lt;strong&gt;Agent 会&amp;quot;自作主张&amp;quot;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;当 Agent 在多步骤任务中遇到图片/音频/视频文件时，它倾向于直接使用 &lt;code&gt;Read&lt;/code&gt; 工具读取文件内容——而不是调用 MCP 工具。&lt;/p&gt;
&lt;p&gt;由于主模型是纯文本模型，&lt;code&gt;Read&lt;/code&gt; 返回的二进制数据无法被理解，导致：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;报错：模型无法处理图片输入&lt;/li&gt;
&lt;li&gt;信息丢失：Agent 跳过多媒体内容继续推理&lt;/li&gt;
&lt;li&gt;结果不完整：关键的视觉/音频信息被忽略&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;问题根源：&lt;strong&gt;Claude Code 的 Agent 默认会尝试用内置的 &lt;code&gt;Read&lt;/code&gt; 工具处理所有文件&lt;/strong&gt;，它并不&amp;quot;知道&amp;quot;当前模型不支持多媒体输入。&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;二、 解决思路：双层防御&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;二-解决思路双层防御&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#%e4%ba%8c-%e8%a7%a3%e5%86%b3%e6%80%9d%e8%b7%af%e5%8f%8c%e5%b1%82%e9%98%b2%e5%be%a1&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;h3&gt;第一层：CLAUDE.md 软指令&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;第一层claudemd-软指令&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#%e7%ac%ac%e4%b8%80%e5%b1%82claudemd-%e8%bd%af%e6%8c%87%e4%bb%a4&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;在全局指令文件中明确告诉模型：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;遇到哪些文件类型必须用 MCP&lt;/li&gt;
&lt;li&gt;禁止用 Read 打开多媒体文件&lt;/li&gt;
&lt;li&gt;给出正确的调用示例&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;局限&lt;/strong&gt;：依赖模型&amp;quot;记住&amp;quot;指令，在复杂推理链中可能被忽略。&lt;/p&gt;
&lt;h3&gt;第二层：PreToolUse Hook 硬拦截&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;第二层pretooluse-hook-硬拦截&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#%e7%ac%ac%e4%ba%8c%e5%b1%82pretooluse-hook-%e7%a1%ac%e6%8b%a6%e6%88%aa&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;在 &lt;code&gt;settings.json&lt;/code&gt; 中配置 Hook：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;拦截所有 &lt;code&gt;Read&lt;/code&gt; 工具调用&lt;/li&gt;
&lt;li&gt;检查目标文件是否为多媒体格式&lt;/li&gt;
&lt;li&gt;如果是 → 阻止调用（exit 2）并返回错误信息&lt;/li&gt;
&lt;li&gt;错误信息中包含正确的 MCP 工具名称&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;优势&lt;/strong&gt;：系统级拦截，不依赖模型的&amp;quot;自觉性&amp;quot;。&lt;/p&gt;
&lt;h3&gt;工作流程图&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;工作流程图&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#%e5%b7%a5%e4%bd%9c%e6%b5%81%e7%a8%8b%e5%9b%be&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;div class=&#34;hextra-code-block hx-relative hx-mt-6 first:hx-mt-0 hx-group/code&#34;&gt;

&lt;pre&gt;&lt;code&gt;Agent 遇到图片路径 &amp;#34;screenshot.png&amp;#34;
    │
    ├─ 第一层：CLAUDE.md 指令引导
    │   &amp;#34;应该用 mcp__mimo-media__understand_image&amp;#34;
    │
    ├─ 如果 Agent 仍然尝试 Read(&amp;#34;screenshot.png&amp;#34;)
    │
    └─ 第二层：PreToolUse Hook 拦截
        │
        ├── 检测到 .png 扩展名
        ├── exit 2（阻止调用）
        └── stderr: &amp;#34;BLOCKED: Use mcp__mimo-media__understand_image&amp;#34;
                │
                └── Agent 看到反馈 → 改用 MCP 工具
                    │
                    └── MCP 返回文本描述 → 继续推理&lt;/code&gt;&lt;/pre&gt;&lt;div class=&#34;hextra-code-copy-btn-container hx-opacity-0 hx-transition group-hover/code:hx-opacity-100 hx-flex hx-gap-1 hx-absolute hx-m-[11px] hx-right-0 hx-top-0&#34;&gt;
  &lt;button
    class=&#34;hextra-code-copy-btn hx-group/copybtn hx-transition-all active:hx-opacity-50 hx-bg-primary-700/5 hx-border hx-border-black/5 hx-text-gray-600 hover:hx-text-gray-900 hx-rounded-md hx-p-1.5 dark:hx-bg-primary-300/10 dark:hx-border-white/10 dark:hx-text-gray-400 dark:hover:hx-text-gray-50&#34;
    title=&#34;Copy code&#34;
  &gt;
    &lt;div class=&#34;copy-icon group-[.copied]/copybtn:hx-hidden hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
    &lt;div class=&#34;success-icon hx-hidden group-[.copied]/copybtn:hx-block hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
  &lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;hr&gt;
&lt;h2&gt;三、 完整配置步骤&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;三-完整配置步骤&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#%e4%b8%89-%e5%ae%8c%e6%95%b4%e9%85%8d%e7%bd%ae%e6%ad%a5%e9%aa%a4&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;h3&gt;1. 前置条件&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;1-前置条件&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#1-%e5%89%8d%e7%bd%ae%e6%9d%a1%e4%bb%b6&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;div class=&#34;hextra-code-block hx-relative hx-mt-6 first:hx-mt-0 hx-group/code&#34;&gt;

&lt;div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 检查 Claude Code&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;claude --version
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 检查 Python&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;python --version
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 检查 Git&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git --version&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;hextra-code-copy-btn-container hx-opacity-0 hx-transition group-hover/code:hx-opacity-100 hx-flex hx-gap-1 hx-absolute hx-m-[11px] hx-right-0 hx-top-0&#34;&gt;
  &lt;button
    class=&#34;hextra-code-copy-btn hx-group/copybtn hx-transition-all active:hx-opacity-50 hx-bg-primary-700/5 hx-border hx-border-black/5 hx-text-gray-600 hover:hx-text-gray-900 hx-rounded-md hx-p-1.5 dark:hx-bg-primary-300/10 dark:hx-border-white/10 dark:hx-text-gray-400 dark:hover:hx-text-gray-50&#34;
    title=&#34;Copy code&#34;
  &gt;
    &lt;div class=&#34;copy-icon group-[.copied]/copybtn:hx-hidden hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
    &lt;div class=&#34;success-icon hx-hidden group-[.copied]/copybtn:hx-block hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
  &lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h3&gt;2. 安装 MCP Server（同原方案）&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;2-安装-mcp-server同原方案&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#2-%e5%ae%89%e8%a3%85-mcp-server%e5%90%8c%e5%8e%9f%e6%96%b9%e6%a1%88&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;div class=&#34;hextra-code-block hx-relative hx-mt-6 first:hx-mt-0 hx-group/code&#34;&gt;

&lt;div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 1. 克隆项目&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git clone https://github.com/congxxx/mimo-media-recognition-mcp.git
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;cd&lt;/span&gt; mimo-media-recognition-mcp
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 2. 安装依赖&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pip install uv
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;uv venv .venv
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;uv pip install -e .&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;hextra-code-copy-btn-container hx-opacity-0 hx-transition group-hover/code:hx-opacity-100 hx-flex hx-gap-1 hx-absolute hx-m-[11px] hx-right-0 hx-top-0&#34;&gt;
  &lt;button
    class=&#34;hextra-code-copy-btn hx-group/copybtn hx-transition-all active:hx-opacity-50 hx-bg-primary-700/5 hx-border hx-border-black/5 hx-text-gray-600 hover:hx-text-gray-900 hx-rounded-md hx-p-1.5 dark:hx-bg-primary-300/10 dark:hx-border-white/10 dark:hx-text-gray-400 dark:hover:hx-text-gray-50&#34;
    title=&#34;Copy code&#34;
  &gt;
    &lt;div class=&#34;copy-icon group-[.copied]/copybtn:hx-hidden hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
    &lt;div class=&#34;success-icon hx-hidden group-[.copied]/copybtn:hx-block hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
  &lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h3&gt;3. 注册 MCP Server&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;3-注册-mcp-server&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#3-%e6%b3%a8%e5%86%8c-mcp-server&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;div class=&#34;hextra-code-block hx-relative hx-mt-6 first:hx-mt-0 hx-group/code&#34;&gt;

&lt;div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;claude mcp add mimo-media &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;se&#34;&gt;&lt;/span&gt;  --scope user &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;se&#34;&gt;&lt;/span&gt;  --env &lt;span class=&#34;nv&#34;&gt;MIMO_API_KEY&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;你的API密钥&amp;#34;&lt;/span&gt; &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;se&#34;&gt;&lt;/span&gt;  --env &lt;span class=&#34;nv&#34;&gt;MIMO_API_BASE&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;https://token-plan-cn.xiaomimimo.com/v1&amp;#34;&lt;/span&gt; &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;se&#34;&gt;&lt;/span&gt;  --env &lt;span class=&#34;nv&#34;&gt;MIMO_MODEL&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;mimo-v2.5&amp;#34;&lt;/span&gt; &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;se&#34;&gt;&lt;/span&gt;  -- &lt;span class=&#34;s2&#34;&gt;&amp;#34;你的python解释器路径&amp;#34;&lt;/span&gt; &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;se&#34;&gt;&lt;/span&gt;  -m mimo_media_recognition_mcp.server
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 可选：如需对短音频使用专用 ASR 模型（实时转写），添加以下环境变量：&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# --env MIMO_ASR_MODEL=&amp;#34;mimo-v2.5-asr&amp;#34; \&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# --env MIMO_ASR_LANGUAGE=&amp;#34;zh&amp;#34;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;hextra-code-copy-btn-container hx-opacity-0 hx-transition group-hover/code:hx-opacity-100 hx-flex hx-gap-1 hx-absolute hx-m-[11px] hx-right-0 hx-top-0&#34;&gt;
  &lt;button
    class=&#34;hextra-code-copy-btn hx-group/copybtn hx-transition-all active:hx-opacity-50 hx-bg-primary-700/5 hx-border hx-border-black/5 hx-text-gray-600 hover:hx-text-gray-900 hx-rounded-md hx-p-1.5 dark:hx-bg-primary-300/10 dark:hx-border-white/10 dark:hx-text-gray-400 dark:hover:hx-text-gray-50&#34;
    title=&#34;Copy code&#34;
  &gt;
    &lt;div class=&#34;copy-icon group-[.copied]/copybtn:hx-hidden hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
    &lt;div class=&#34;success-icon hx-hidden group-[.copied]/copybtn:hx-block hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
  &lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;hx-overflow-x-auto hx-mt-6 hx-flex hx-rounded-lg hx-border hx-py-2 ltr:hx-pr-4 rtl:hx-pl-4 contrast-more:hx-border-current contrast-more:dark:hx-border-current hx-border-orange-100 hx-bg-orange-50 hx-text-orange-800 dark:hx-border-orange-400/30 dark:hx-bg-orange-400/20 dark:hx-text-orange-300&#34;&gt;
  &lt;div class=&#34;ltr:hx-pl-3 ltr:hx-pr-2 rtl:hx-pr-3 rtl:hx-pl-2&#34;&gt;&lt;div class=&#34;hx-select-none hx-text-xl&#34; style=&#34;font-family: &#39;Apple Color Emoji&#39;, &#39;Segoe UI Emoji&#39;, &#39;Segoe UI Symbol&#39;;&#34;&gt;💡&lt;/div&gt;&lt;/div&gt;

  &lt;div class=&#34;hx-w-full hx-min-w-0 hx-leading-7&#34;&gt;
    &lt;div class=&#34;hx-mt-6 hx-leading-7 first:hx-mt-0&#34;&gt;&lt;p&gt;&lt;strong&gt;模型选择说明&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;MIMO_MODEL&lt;/code&gt; 设为 &lt;code&gt;mimo-v2.5&lt;/code&gt;（通用多模态理解，&lt;strong&gt;默认用于音频转写&lt;/strong&gt;）&lt;/li&gt;
&lt;li&gt;&lt;code&gt;mimo-v2.5&lt;/code&gt; 通过思维链推理产生高质量完整转写，适合长录音、会议记录等场景&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;不建议默认开启 ASR 模式&lt;/strong&gt;：&lt;code&gt;mimo-v2.5-asr&lt;/code&gt; 在长音频（&amp;gt;2 分钟）上容易产生重复循环&lt;/li&gt;
&lt;li&gt;仅在需要短音频实时转写时，才配置 &lt;code&gt;MIMO_ASR_MODEL&lt;/code&gt; 和 &lt;code&gt;MIMO_ASR_LANGUAGE&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;验证安装：&lt;/p&gt;
&lt;div class=&#34;hextra-code-block hx-relative hx-mt-6 first:hx-mt-0 hx-group/code&#34;&gt;

&lt;div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;claude mcp get mimo-media
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 应显示：Status: ✓ Connected&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;hextra-code-copy-btn-container hx-opacity-0 hx-transition group-hover/code:hx-opacity-100 hx-flex hx-gap-1 hx-absolute hx-m-[11px] hx-right-0 hx-top-0&#34;&gt;
  &lt;button
    class=&#34;hextra-code-copy-btn hx-group/copybtn hx-transition-all active:hx-opacity-50 hx-bg-primary-700/5 hx-border hx-border-black/5 hx-text-gray-600 hover:hx-text-gray-900 hx-rounded-md hx-p-1.5 dark:hx-bg-primary-300/10 dark:hx-border-white/10 dark:hx-text-gray-400 dark:hover:hx-text-gray-50&#34;
    title=&#34;Copy code&#34;
  &gt;
    &lt;div class=&#34;copy-icon group-[.copied]/copybtn:hx-hidden hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
    &lt;div class=&#34;success-icon hx-hidden group-[.copied]/copybtn:hx-block hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
  &lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h3&gt;4. 创建 PreToolUse Hook（本方案新增）&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;4-创建-pretooluse-hook本方案新增&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#4-%e5%88%9b%e5%bb%ba-pretooluse-hook%e6%9c%ac%e6%96%b9%e6%a1%88%e6%96%b0%e5%a2%9e&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;3.4.1 创建 Hook 脚本&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;在 &lt;code&gt;~/.claude/hooks/&lt;/code&gt; 目录下创建 &lt;code&gt;block_media_read.py&lt;/code&gt;：&lt;/p&gt;
&lt;div class=&#34;hextra-code-block hx-relative hx-mt-6 first:hx-mt-0 hx-group/code&#34;&gt;

&lt;div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&amp;#34;&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s2&#34;&gt;PreToolUse hook: Block Read tool on multimedia files.
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s2&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s2&#34;&gt;When the agent tries to Read an image/audio/video file, this hook
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s2&#34;&gt;blocks the call (exit 2) and instructs the model to use the
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s2&#34;&gt;mimo-media MCP tools instead.
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&amp;#34;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kn&#34;&gt;import&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;sys&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;json&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;MEDIA_MAP&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;s2&#34;&gt;&amp;#34;.png&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;image&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;understand_image&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;),&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;s2&#34;&gt;&amp;#34;.jpg&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;image&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;understand_image&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;),&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;s2&#34;&gt;&amp;#34;.jpeg&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;image&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;understand_image&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;),&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;s2&#34;&gt;&amp;#34;.gif&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;image&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;understand_image&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;),&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;s2&#34;&gt;&amp;#34;.bmp&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;image&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;understand_image&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;),&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;s2&#34;&gt;&amp;#34;.webp&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;image&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;understand_image&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;),&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;s2&#34;&gt;&amp;#34;.svg&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;image&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;understand_image&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;),&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;s2&#34;&gt;&amp;#34;.mp3&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;audio&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;understand_audio&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;),&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;s2&#34;&gt;&amp;#34;.wav&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;audio&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;understand_audio&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;),&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;s2&#34;&gt;&amp;#34;.m4a&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;audio&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;understand_audio&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;),&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;s2&#34;&gt;&amp;#34;.ogg&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;audio&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;understand_audio&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;),&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;s2&#34;&gt;&amp;#34;.flac&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;audio&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;understand_audio&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;),&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;s2&#34;&gt;&amp;#34;.aac&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;audio&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;understand_audio&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;),&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;s2&#34;&gt;&amp;#34;.mp4&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;video&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;understand_video&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;),&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;s2&#34;&gt;&amp;#34;.mov&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;video&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;understand_video&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;),&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;s2&#34;&gt;&amp;#34;.avi&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;video&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;understand_video&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;),&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;s2&#34;&gt;&amp;#34;.mkv&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;video&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;understand_video&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;),&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;s2&#34;&gt;&amp;#34;.webm&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;video&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;understand_video&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;),&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;s2&#34;&gt;&amp;#34;.flv&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;video&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;understand_video&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;),&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;try&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;data&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;json&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;load&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;sys&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;stdin&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;except&lt;/span&gt; &lt;span class=&#34;ne&#34;&gt;Exception&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;sys&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;exit&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;tool_input&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;data&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;get&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;tool_input&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{})&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;file_path&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;tool_input&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;get&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;file_path&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;or&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;tool_input&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;get&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;path&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;not&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;file_path&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;sys&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;exit&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;ext&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;.&amp;#34;&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;file_path&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;ext&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;.&amp;#34;&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;+&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;file_path&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;rsplit&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;.&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)[&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;lower&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;ext&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;MEDIA_MAP&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;media_type&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;mcp_tool&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;MEDIA_MAP&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;ext&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nb&#34;&gt;print&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;sa&#34;&gt;f&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;BLOCKED: The Read tool cannot process &lt;/span&gt;&lt;span class=&#34;si&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;media_type&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt; files. &amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;sa&#34;&gt;f&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;Use the MCP tool `mcp__mimo-media__&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;mcp_tool&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;` instead. &amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;sa&#34;&gt;f&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;Example: call mcp__mimo-media__&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;mcp_tool&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt; with &amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;sa&#34;&gt;f&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;&lt;/span&gt;&lt;span class=&#34;se&#34;&gt;{{&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#34;prompt&amp;#34;: &amp;#34;describe this &lt;/span&gt;&lt;span class=&#34;si&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;media_type&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#34;, &amp;#34;&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;media_type&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;_path&amp;#34;: &amp;#34;&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;file_path&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;se&#34;&gt;}}&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;file&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;sys&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;stderr&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;sys&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;exit&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;sys&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;exit&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;hextra-code-copy-btn-container hx-opacity-0 hx-transition group-hover/code:hx-opacity-100 hx-flex hx-gap-1 hx-absolute hx-m-[11px] hx-right-0 hx-top-0&#34;&gt;
  &lt;button
    class=&#34;hextra-code-copy-btn hx-group/copybtn hx-transition-all active:hx-opacity-50 hx-bg-primary-700/5 hx-border hx-border-black/5 hx-text-gray-600 hover:hx-text-gray-900 hx-rounded-md hx-p-1.5 dark:hx-bg-primary-300/10 dark:hx-border-white/10 dark:hx-text-gray-400 dark:hover:hx-text-gray-50&#34;
    title=&#34;Copy code&#34;
  &gt;
    &lt;div class=&#34;copy-icon group-[.copied]/copybtn:hx-hidden hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
    &lt;div class=&#34;success-icon hx-hidden group-[.copied]/copybtn:hx-block hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
  &lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;3.4.2 注册 Hook&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;编辑 &lt;code&gt;~/.claude/settings.json&lt;/code&gt;，添加 &lt;code&gt;hooks&lt;/code&gt; 字段：&lt;/p&gt;
&lt;div class=&#34;hextra-code-block hx-relative hx-mt-6 first:hx-mt-0 hx-group/code&#34;&gt;

&lt;div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-json&#34; data-lang=&#34;json&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nt&#34;&gt;&amp;#34;hooks&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nt&#34;&gt;&amp;#34;PreToolUse&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nt&#34;&gt;&amp;#34;matcher&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;Read&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nt&#34;&gt;&amp;#34;hooks&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;nt&#34;&gt;&amp;#34;type&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;command&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;nt&#34;&gt;&amp;#34;command&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;python ~/.claude/hooks/block_media_read.py&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;nt&#34;&gt;&amp;#34;timeout&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;5&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;hextra-code-copy-btn-container hx-opacity-0 hx-transition group-hover/code:hx-opacity-100 hx-flex hx-gap-1 hx-absolute hx-m-[11px] hx-right-0 hx-top-0&#34;&gt;
  &lt;button
    class=&#34;hextra-code-copy-btn hx-group/copybtn hx-transition-all active:hx-opacity-50 hx-bg-primary-700/5 hx-border hx-border-black/5 hx-text-gray-600 hover:hx-text-gray-900 hx-rounded-md hx-p-1.5 dark:hx-bg-primary-300/10 dark:hx-border-white/10 dark:hx-text-gray-400 dark:hover:hx-text-gray-50&#34;
    title=&#34;Copy code&#34;
  &gt;
    &lt;div class=&#34;copy-icon group-[.copied]/copybtn:hx-hidden hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
    &lt;div class=&#34;success-icon hx-hidden group-[.copied]/copybtn:hx-block hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
  &lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;hx-overflow-x-auto hx-mt-6 hx-flex hx-rounded-lg hx-border hx-py-2 ltr:hx-pr-4 rtl:hx-pl-4 contrast-more:hx-border-current contrast-more:dark:hx-border-current hx-border-orange-100 hx-bg-orange-50 hx-text-orange-800 dark:hx-border-orange-400/30 dark:hx-bg-orange-400/20 dark:hx-text-orange-300&#34;&gt;
  &lt;div class=&#34;ltr:hx-pl-3 ltr:hx-pr-2 rtl:hx-pr-3 rtl:hx-pl-2&#34;&gt;&lt;div class=&#34;hx-select-none hx-text-xl&#34; style=&#34;font-family: &#39;Apple Color Emoji&#39;, &#39;Segoe UI Emoji&#39;, &#39;Segoe UI Symbol&#39;;&#34;&gt;💡&lt;/div&gt;&lt;/div&gt;

  &lt;div class=&#34;hx-w-full hx-min-w-0 hx-leading-7&#34;&gt;
    &lt;div class=&#34;hx-mt-6 hx-leading-7 first:hx-mt-0&#34;&gt;&lt;p&gt;&lt;strong&gt;Hook 工作原理&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;matcher: &amp;quot;Read&amp;quot;&lt;/code&gt; — 匹配所有 &lt;code&gt;Read&lt;/code&gt; 工具的调用&lt;/li&gt;
&lt;li&gt;Hook 脚本通过 stdin 接收工具输入的 JSON&lt;/li&gt;
&lt;li&gt;检查 &lt;code&gt;file_path&lt;/code&gt; 的扩展名是否命中多媒体格式&lt;/li&gt;
&lt;li&gt;命中 → &lt;code&gt;exit 2&lt;/code&gt;（阻止调用）+ stderr 输出引导信息&lt;/li&gt;
&lt;li&gt;未命中 → &lt;code&gt;exit 0&lt;/code&gt;（正常放行）&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;当 Hook 返回 &lt;code&gt;exit 2&lt;/code&gt; 时，Agent 会看到：&lt;/p&gt;
&lt;blockquote&gt;
  &lt;p&gt;BLOCKED: The Read tool cannot process image files. Use the MCP tool &lt;code&gt;mcp__mimo-media__understand_image&lt;/code&gt; instead.&lt;/p&gt;

&lt;/blockquote&gt;
&lt;p&gt;Agent 收到这个反馈后，会自动改用正确的 MCP 工具。&lt;/p&gt;
&lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;h3&gt;5. 更新 CLAUDE.md 指令（本方案新增）&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;5-更新-claudemd-指令本方案新增&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#5-%e6%9b%b4%e6%96%b0-claudemd-%e6%8c%87%e4%bb%a4%e6%9c%ac%e6%96%b9%e6%a1%88%e6%96%b0%e5%a2%9e&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;在全局 &lt;code&gt;~/.claude/CLAUDE.md&lt;/code&gt; 末尾添加多媒体处理规则：&lt;/p&gt;
&lt;div class=&#34;hextra-code-block hx-relative hx-mt-6 first:hx-mt-0 hx-group/code&#34;&gt;

&lt;div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-markdown&#34; data-lang=&#34;markdown&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;gu&#34;&gt;## 多媒体文件处理（强制）
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;gu&#34;&gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;当前推理模型是纯文本模型，**无法直接理解图片、音频、视频**。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;gu&#34;&gt;### 铁律：遇到多媒体文件必须调用 MCP
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;gu&#34;&gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; **图片** (.png, .jpg, .jpeg, .gif, .bmp, .webp, .svg) → 使用 &lt;span class=&#34;sb&#34;&gt;`mcp__mimo-media__understand_image`&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; **音频** (.mp3, .wav, .m4a, .ogg, .flac, .aac) → 使用 &lt;span class=&#34;sb&#34;&gt;`mcp__mimo-media__understand_audio`&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; **视频** (.mp4, .mov, .avi, .mkv, .webm, .flv) → 使用 &lt;span class=&#34;sb&#34;&gt;`mcp__mimo-media__understand_video`&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;gu&#34;&gt;### 禁止行为
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;gu&#34;&gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; **禁止**用 &lt;span class=&#34;sb&#34;&gt;`Read`&lt;/span&gt; 工具打开上述格式的文件（会被 hook 拦截）
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; **禁止**尝试自行&amp;#34;解读&amp;#34;二进制多媒体内容
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; **禁止**假设图片/音频/视频的内容
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;gu&#34;&gt;### 正确流程
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;gu&#34;&gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;1.&lt;/span&gt; 识别到多媒体文件路径
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;2.&lt;/span&gt; 根据扩展名选择对应的 MCP 工具
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;3.&lt;/span&gt; 调用 MCP 工具获取理解结果
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;4.&lt;/span&gt; 基于 MCP 返回的文本结果继续推理
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;gu&#34;&gt;### 示例
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;gu&#34;&gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;```bash
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;&lt;/span&gt;&lt;span class=&#34;c1&#34;&gt;# 错误 ❌&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Read&lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;screenshot.png&amp;#34;&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 正确 ✅&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;mcp__mimo-media__understand_image&lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;prompt&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;描述这张图片&amp;#34;&lt;/span&gt;, &lt;span class=&#34;nv&#34;&gt;image_path&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;screenshot.png&amp;#34;&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;```&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;hextra-code-copy-btn-container hx-opacity-0 hx-transition group-hover/code:hx-opacity-100 hx-flex hx-gap-1 hx-absolute hx-m-[11px] hx-right-0 hx-top-0&#34;&gt;
  &lt;button
    class=&#34;hextra-code-copy-btn hx-group/copybtn hx-transition-all active:hx-opacity-50 hx-bg-primary-700/5 hx-border hx-border-black/5 hx-text-gray-600 hover:hx-text-gray-900 hx-rounded-md hx-p-1.5 dark:hx-bg-primary-300/10 dark:hx-border-white/10 dark:hx-text-gray-400 dark:hover:hx-text-gray-50&#34;
    title=&#34;Copy code&#34;
  &gt;
    &lt;div class=&#34;copy-icon group-[.copied]/copybtn:hx-hidden hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
    &lt;div class=&#34;success-icon hx-hidden group-[.copied]/copybtn:hx-block hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
  &lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h3&gt;6. 验证配置&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;6-验证配置&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#6-%e9%aa%8c%e8%af%81%e9%85%8d%e7%bd%ae&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;div class=&#34;hextra-code-block hx-relative hx-mt-6 first:hx-mt-0 hx-group/code&#34;&gt;

&lt;div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 验证 MCP 连接&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;claude mcp get mimo-media
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 测试 Hook 脚本&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;echo&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;{&amp;#34;tool_name&amp;#34;: &amp;#34;Read&amp;#34;, &amp;#34;tool_input&amp;#34;: {&amp;#34;file_path&amp;#34;: &amp;#34;test.png&amp;#34;}}&amp;#39;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;se&#34;&gt;&lt;/span&gt;  python ~/.claude/hooks/block_media_read.py 2&amp;gt;&lt;span class=&#34;p&#34;&gt;&amp;amp;&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 预期输出：BLOCKED: The Read tool cannot process image files...&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 预期退出码：2&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 测试普通文件不受影响&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;echo&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;{&amp;#34;tool_name&amp;#34;: &amp;#34;Read&amp;#34;, &amp;#34;tool_input&amp;#34;: {&amp;#34;file_path&amp;#34;: &amp;#34;readme.md&amp;#34;}}&amp;#39;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;se&#34;&gt;&lt;/span&gt;  python ~/.claude/hooks/block_media_read.py 2&amp;gt;&lt;span class=&#34;p&#34;&gt;&amp;amp;&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 预期输出：（空）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 预期退出码：0&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;hextra-code-copy-btn-container hx-opacity-0 hx-transition group-hover/code:hx-opacity-100 hx-flex hx-gap-1 hx-absolute hx-m-[11px] hx-right-0 hx-top-0&#34;&gt;
  &lt;button
    class=&#34;hextra-code-copy-btn hx-group/copybtn hx-transition-all active:hx-opacity-50 hx-bg-primary-700/5 hx-border hx-border-black/5 hx-text-gray-600 hover:hx-text-gray-900 hx-rounded-md hx-p-1.5 dark:hx-bg-primary-300/10 dark:hx-border-white/10 dark:hx-text-gray-400 dark:hover:hx-text-gray-50&#34;
    title=&#34;Copy code&#34;
  &gt;
    &lt;div class=&#34;copy-icon group-[.copied]/copybtn:hx-hidden hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
    &lt;div class=&#34;success-icon hx-hidden group-[.copied]/copybtn:hx-block hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
  &lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;hr&gt;
&lt;h2&gt;四、 与原方案的对比&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;四-与原方案的对比&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#%e5%9b%9b-%e4%b8%8e%e5%8e%9f%e6%96%b9%e6%a1%88%e7%9a%84%e5%af%b9%e6%af%94&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;维度&lt;/th&gt;
          &lt;th&gt;原方案（congxxx）&lt;/th&gt;
          &lt;th&gt;本方案（补充 Hook）&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;MCP Server&lt;/td&gt;
          &lt;td&gt;✅ 已配置&lt;/td&gt;
          &lt;td&gt;✅ 已配置（同原方案）&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;显式调用 MCP&lt;/td&gt;
          &lt;td&gt;✅ 正常工作&lt;/td&gt;
          &lt;td&gt;✅ 正常工作&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;CLAUDE.md 指令&lt;/td&gt;
          &lt;td&gt;—&lt;/td&gt;
          &lt;td&gt;✅ 新增，引导 Agent 主动选择 MCP&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;PreToolUse Hook&lt;/td&gt;
          &lt;td&gt;—&lt;/td&gt;
          &lt;td&gt;✅ 新增，系统级拦截错误的 Read 调用&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;长任务中的多媒体处理&lt;/td&gt;
          &lt;td&gt;⚠️ Agent 可能绕过 MCP&lt;/td&gt;
          &lt;td&gt;✅ 双层防御，确保走 MCP&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;配置复杂度&lt;/td&gt;
          &lt;td&gt;低&lt;/td&gt;
          &lt;td&gt;中（多一个 Hook 脚本 + CLAUDE.md 配置）&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;hr&gt;
&lt;h2&gt;五、 踩坑记录&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;五-踩坑记录&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#%e4%ba%94-%e8%b8%a9%e5%9d%91%e8%ae%b0%e5%bd%95&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;h3&gt;1. Hook 脚本中的路径问题&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;1-hook-脚本中的路径问题&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#1-hook-%e8%84%9a%e6%9c%ac%e4%b8%ad%e7%9a%84%e8%b7%af%e5%be%84%e9%97%ae%e9%a2%98&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;现象&lt;/strong&gt;：Hook 脚本在 Windows 上运行时，路径分隔符不一致&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;原因&lt;/strong&gt;：Claude Code 在 Windows 上通过 Git Bash 执行 Hook，路径可能是 &lt;code&gt;/c/Users/...&lt;/code&gt; 格式&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;解决&lt;/strong&gt;：Hook 脚本中只检查文件扩展名，不依赖路径格式，因此不受影响&lt;/p&gt;
&lt;h3&gt;2. Hook 不生效&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;2-hook-不生效&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#2-hook-%e4%b8%8d%e7%94%9f%e6%95%88&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;现象&lt;/strong&gt;：配置了 Hook 但 Agent 仍然直接 Read 图片&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;排查步骤&lt;/strong&gt;：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;确认 &lt;code&gt;settings.json&lt;/code&gt; 中 &lt;code&gt;hooks&lt;/code&gt; 字段格式正确&lt;/li&gt;
&lt;li&gt;确认 Hook 脚本路径可被 Python 访问&lt;/li&gt;
&lt;li&gt;重启 Claude Code 会话（Hook 配置需要重新加载）&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;3. Audio 转写返回无关内容（2026-07-06 更新）&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;3-audio-转写返回无关内容2026-07-06-更新&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#3-audio-%e8%bd%ac%e5%86%99%e8%bf%94%e5%9b%9e%e6%97%a0%e5%85%b3%e5%86%85%e5%ae%b92026-07-06-%e6%9b%b4%e6%96%b0&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;现象&lt;/strong&gt;：调用 &lt;code&gt;understand_audio&lt;/code&gt; 转写中文录音，每次都返回无意义的英文回复（如&amp;quot;咖啡店点单对话&amp;quot;、&amp;ldquo;我无法处理音频&amp;quot;等），与实际录音内容完全无关。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;排查过程&lt;/strong&gt;：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;确认文件存在且格式正确（2.1MB，MP3，约 9 分钟通话录音）&lt;/li&gt;
&lt;li&gt;通过 MCP 配置资源 &lt;code&gt;mimo://config&lt;/code&gt; 确认 API 连通性正常&lt;/li&gt;
&lt;li&gt;直接阅读 MCP Server 源码（&lt;code&gt;server.py&lt;/code&gt;），发现 &lt;strong&gt;两个关键问题&lt;/strong&gt;：&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;根因 A：&lt;code&gt;[:80]&lt;/code&gt; 截断 bug&lt;/strong&gt;&lt;/p&gt;
&lt;div class=&#34;hextra-code-block hx-relative hx-mt-6 first:hx-mt-0 hx-group/code&#34;&gt;

&lt;div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# server.py 第 165 行（修复前）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;content_blocks&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;append&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;({&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;s2&#34;&gt;&amp;#34;type&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;text&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;s2&#34;&gt;&amp;#34;text&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;sa&#34;&gt;f&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;[Audio file: &lt;/span&gt;&lt;span class=&#34;si&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;media_url&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[:&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;80&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;...]&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;  &lt;span class=&#34;c1&#34;&gt;# ← 只取了前 80 字符！&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;})&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;hextra-code-copy-btn-container hx-opacity-0 hx-transition group-hover/code:hx-opacity-100 hx-flex hx-gap-1 hx-absolute hx-m-[11px] hx-right-0 hx-top-0&#34;&gt;
  &lt;button
    class=&#34;hextra-code-copy-btn hx-group/copybtn hx-transition-all active:hx-opacity-50 hx-bg-primary-700/5 hx-border hx-border-black/5 hx-text-gray-600 hover:hx-text-gray-900 hx-rounded-md hx-p-1.5 dark:hx-bg-primary-300/10 dark:hx-border-white/10 dark:hx-text-gray-400 dark:hover:hx-text-gray-50&#34;
    title=&#34;Copy code&#34;
  &gt;
    &lt;div class=&#34;copy-icon group-[.copied]/copybtn:hx-hidden hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
    &lt;div class=&#34;success-icon hx-hidden group-[.copied]/copybtn:hx-block hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
  &lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;2.1MB MP3 → base64 编码后约 3MB，但 &lt;code&gt;[:80]&lt;/code&gt; 只发送了 80 字符的 data URL 前缀：
&lt;code&gt;data:audio/mpeg;base64,//uQxAAA...&lt;/code&gt; — 模型收到的只有一个文本标记，没有真正的音频数据。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;根因 B：API 格式错误&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;查阅 &lt;a href=&#34;https://mimo.mi.com/docs/zh-CN/quick-start/usage-guide/multimodal-understanding/audio-understanding&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;MIMO 官方文档&lt;/a&gt; 后发现，MIMO 的 Anthropic API（&lt;code&gt;/anthropic/v1/messages&lt;/code&gt;）&lt;strong&gt;只支持 text 和 image 两种 content block&lt;/strong&gt;，不直接支持音频输入。&lt;/p&gt;
&lt;p&gt;正确做法是使用 OpenAI 兼容端点（&lt;code&gt;/v1/chat/completions&lt;/code&gt;）的 &lt;code&gt;input_audio&lt;/code&gt; content block：&lt;/p&gt;
&lt;div class=&#34;hextra-code-block hx-relative hx-mt-6 first:hx-mt-0 hx-group/code&#34;&gt;

&lt;div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-json&#34; data-lang=&#34;json&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;// ❌ MCP Server 旧格式（text 包装，走 Anthropic endpoint）
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;&amp;#34;type&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;text&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nt&#34;&gt;&amp;#34;text&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;[Audio file: data:audio/mpeg;base64,&amp;lt;截断&amp;gt;]&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;// API 返回：模型无法理解音频
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;// ✅ MIMO 官方格式（input_audio，走 OpenAI endpoint）
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;&amp;#34;type&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;input_audio&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nt&#34;&gt;&amp;#34;input_audio&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;&amp;#34;data&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;data:audio/mpeg;base64,&amp;lt;完整base64&amp;gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;}}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;err&#34;&gt;//&lt;/span&gt; &lt;span class=&#34;err&#34;&gt;API&lt;/span&gt; &lt;span class=&#34;err&#34;&gt;返回：正确的转写文字&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;hextra-code-copy-btn-container hx-opacity-0 hx-transition group-hover/code:hx-opacity-100 hx-flex hx-gap-1 hx-absolute hx-m-[11px] hx-right-0 hx-top-0&#34;&gt;
  &lt;button
    class=&#34;hextra-code-copy-btn hx-group/copybtn hx-transition-all active:hx-opacity-50 hx-bg-primary-700/5 hx-border hx-border-black/5 hx-text-gray-600 hover:hx-text-gray-900 hx-rounded-md hx-p-1.5 dark:hx-bg-primary-300/10 dark:hx-border-white/10 dark:hx-text-gray-400 dark:hover:hx-text-gray-50&#34;
    title=&#34;Copy code&#34;
  &gt;
    &lt;div class=&#34;copy-icon group-[.copied]/copybtn:hx-hidden hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
    &lt;div class=&#34;success-icon hx-hidden group-[.copied]/copybtn:hx-block hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
  &lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;修复&lt;/strong&gt;：&lt;/p&gt;
&lt;p&gt;对 &lt;code&gt;server.py&lt;/code&gt; 进行了架构级重写：&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;组件&lt;/th&gt;
          &lt;th&gt;修复前&lt;/th&gt;
          &lt;th&gt;修复后&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;图片&lt;/td&gt;
          &lt;td&gt;Anthropic endpoint（正常）&lt;/td&gt;
          &lt;td&gt;不变&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;音频/视频&lt;/td&gt;
          &lt;td&gt;Anthropic endpoint + &lt;code&gt;type: &amp;quot;text&amp;quot;&lt;/code&gt; + &lt;code&gt;[:80]&lt;/code&gt; 截断&lt;/td&gt;
          &lt;td&gt;&lt;strong&gt;OpenAI endpoint&lt;/strong&gt; + &lt;code&gt;type: &amp;quot;input_audio&amp;quot;/&amp;quot;input_video&amp;quot;&lt;/code&gt; + 完整 base64&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;ASR 支持&lt;/td&gt;
          &lt;td&gt;无&lt;/td&gt;
          &lt;td&gt;通过 &lt;code&gt;MIMO_ASR_MODEL&lt;/code&gt; 和 &lt;code&gt;MIMO_ASR_LANGUAGE&lt;/code&gt; 环境变量控制&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;超时&lt;/td&gt;
          &lt;td&gt;120s&lt;/td&gt;
          &lt;td&gt;300s（大音频文件需要更长时间）&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h4&gt;附：ASR 模型的适用场景&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;附asr-模型的适用场景&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#%e9%99%84asr-%e6%a8%a1%e5%9e%8b%e7%9a%84%e9%80%82%e7%94%a8%e5%9c%ba%e6%99%af&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h4&gt;&lt;p&gt;经过实测对比，&lt;code&gt;mimo-v2.5-asr&lt;/code&gt; 和 &lt;code&gt;mimo-v2.5&lt;/code&gt; 在转写任务上的表现差异显著：&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;维度&lt;/th&gt;
          &lt;th&gt;&lt;code&gt;mimo-v2.5-asr&lt;/code&gt;&lt;/th&gt;
          &lt;th&gt;&lt;code&gt;mimo-v2.5&lt;/code&gt;&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;长音频（&amp;gt;2min）&lt;/td&gt;
          &lt;td&gt;❌ 严重重复循环&lt;/td&gt;
          &lt;td&gt;✅ 完整准确&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;短音频（&amp;lt;2min）&lt;/td&gt;
          &lt;td&gt;✅ 快速实时&lt;/td&gt;
          &lt;td&gt;✅ 效果相当&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;转写方式&lt;/td&gt;
          &lt;td&gt;端到端序列解码&lt;/td&gt;
          &lt;td&gt;思维链推理辅助&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;输出控制&lt;/td&gt;
          &lt;td&gt;弱（无 prompt 约束）&lt;/td&gt;
          &lt;td&gt;强（prompt 可控）&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;建议&lt;/strong&gt;：默认关闭 &lt;code&gt;MIMO_ASR_MODEL&lt;/code&gt;，让 &lt;code&gt;understand_audio&lt;/code&gt; 使用 &lt;code&gt;mimo-v2.5&lt;/code&gt; 的思维链转写。仅在对短音频有实时性需求时才开启 ASR 模式。&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;六、 配置文件速查&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;六-配置文件速查&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#%e5%85%ad-%e9%85%8d%e7%bd%ae%e6%96%87%e4%bb%b6%e9%80%9f%e6%9f%a5&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;h3&gt;文件清单&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;文件清单&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#%e6%96%87%e4%bb%b6%e6%b8%85%e5%8d%95&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;文件&lt;/th&gt;
          &lt;th&gt;作用&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;~/.claude/settings.json&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Hook 注册 + 全局设置&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;~/.claude/CLAUDE.md&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;全局指令（含多媒体规则）&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;~/.claude/hooks/block_media_read.py&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Hook 脚本&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;MCP Server 项目目录&lt;/td&gt;
          &lt;td&gt;mimo-media-recognition-mcp&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;hr&gt;
&lt;h2&gt;七、 总结&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;七-总结&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#%e4%b8%83-%e6%80%bb%e7%bb%93&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;div class=&#34;hx-overflow-x-auto hx-mt-6 hx-flex hx-rounded-lg hx-border hx-py-2 ltr:hx-pr-4 rtl:hx-pl-4 contrast-more:hx-border-current contrast-more:dark:hx-border-current hx-border-orange-100 hx-bg-orange-50 hx-text-orange-800 dark:hx-border-orange-400/30 dark:hx-bg-orange-400/20 dark:hx-text-orange-300&#34;&gt;
  &lt;div class=&#34;ltr:hx-pl-3 ltr:hx-pr-2 rtl:hx-pr-3 rtl:hx-pl-2&#34;&gt;&lt;div class=&#34;hx-select-none hx-text-xl&#34; style=&#34;font-family: &#39;Apple Color Emoji&#39;, &#39;Segoe UI Emoji&#39;, &#39;Segoe UI Symbol&#39;;&#34;&gt;🎯&lt;/div&gt;&lt;/div&gt;

  &lt;div class=&#34;hx-w-full hx-min-w-0 hx-leading-7&#34;&gt;
    &lt;div class=&#34;hx-mt-6 hx-leading-7 first:hx-mt-0&#34;&gt;&lt;p&gt;&lt;strong&gt;核心思路&lt;/strong&gt;：将多媒体识别能力从&amp;quot;模型内置&amp;quot;转变为&amp;quot;工具调用&amp;quot;，通过 MCP 协议实现能力解耦。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;关键创新&lt;/strong&gt;：在原作者 MCP 方案的基础上，增加 PreToolUse Hook 作为系统级的安全网，确保 Agent 在任何场景下都不会绕过 MCP 直接处理多媒体文件。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;两层防御&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;软指令&lt;/strong&gt;（CLAUDE.md）— 引导 Agent 主动选择正确工具&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;硬拦截&lt;/strong&gt;（PreToolUse Hook）— 兜底，阻止错误的工具调用&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这种&amp;quot;软引导 + 硬拦截&amp;quot;的模式，不仅适用于多媒体场景，也可以推广到其他需要强制工具路由的场景。&lt;/p&gt;
&lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;hr&gt;
&lt;div class=&#34;hx-overflow-x-auto hx-mt-6 hx-flex hx-rounded-lg hx-border hx-py-2 ltr:hx-pr-4 rtl:hx-pl-4 contrast-more:hx-border-current contrast-more:dark:hx-border-current hx-border-blue-200 hx-bg-blue-100 hx-text-blue-900 dark:hx-border-blue-200/30 dark:hx-bg-blue-900/30 dark:hx-text-blue-200&#34;&gt;
  &lt;div class=&#34;ltr:hx-pl-3 ltr:hx-pr-2 rtl:hx-pr-3 rtl:hx-pl-2&#34;&gt;&lt;div class=&#34;hx-select-none hx-text-xl&#34; style=&#34;font-family: &#39;Apple Color Emoji&#39;, &#39;Segoe UI Emoji&#39;, &#39;Segoe UI Symbol&#39;;&#34;&gt;🤖&lt;/div&gt;&lt;/div&gt;

  &lt;div class=&#34;hx-w-full hx-min-w-0 hx-leading-7&#34;&gt;
    &lt;div class=&#34;hx-mt-6 hx-leading-7 first:hx-mt-0&#34;&gt;&lt;strong&gt;AI 使用声明&lt;/strong&gt;：本文由作者撰写，AI 工具（Claude）辅助完成初稿起草、中英互译与格式整理。作者已审校全部内容，并对准确性承担最终责任。&lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;h2&gt;参考链接&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;参考链接&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#%e5%8f%82%e8%80%83%e9%93%be%e6%8e%a5&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;🔗 &lt;strong&gt;GitHub（原 MCP Server）&lt;/strong&gt;：&lt;a href=&#34;https://github.com/congxxx/mimo-media-recognition-mcp&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;https://github.com/congxxx/mimo-media-recognition-mcp&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;🔗 &lt;strong&gt;GitHub（本方案 Hook）&lt;/strong&gt;：&lt;a href=&#34;https://github.com/SongXue-J/claude-code-multimedia-hook&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;https://github.com/SongXue-J/claude-code-multimedia-hook&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;📝 &lt;strong&gt;原作者博客&lt;/strong&gt;：&lt;a href=&#34;https://www.cnblogs.com/congxinxue/p/20086413&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;解决 Claude Code 接入 MIMO 模型后无法识别图片、音频、视频的问题&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;📖 &lt;strong&gt;MCP 官方文档&lt;/strong&gt;：&lt;a href=&#34;https://modelcontextprotocol.io&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;https://modelcontextprotocol.io&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;📖 &lt;strong&gt;Claude Code Hooks 文档&lt;/strong&gt;：&lt;a href=&#34;https://docs.anthropic.com/en/docs/claude-code/hooks&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;https://docs.anthropic.com/en/docs/claude-code/hooks&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

      </description>
    </item>
    
    <item>
      <title>Claude Code &#43; CC Switch &#43; DeepSeek AI Agent 全流程配置教程</title>
      <link>https://www.songxue-j.com/zh-cn/blog/claude-code-deepseek-setup/</link>
      <pubDate>Tue, 26 May 2026 00:00:00 +0000</pubDate>
      
      <guid>https://www.songxue-j.com/zh-cn/blog/claude-code-deepseek-setup/</guid>
      <description>
        
        
        &lt;h2&gt;一、 概述：为什么需要这套方案？&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;一-概述为什么需要这套方案&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#%e4%b8%80-%e6%a6%82%e8%bf%b0%e4%b8%ba%e4%bb%80%e4%b9%88%e9%9c%80%e8%a6%81%e8%bf%99%e5%a5%97%e6%96%b9%e6%a1%88&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;首先是因为 Anthropic 对中国大陆账号愈发严格的禁用管控，其次是因为高昂的订阅费用（尽管由于繁琐的订阅流程，我并没有实际订阅过）。&lt;/p&gt;
&lt;p&gt;在这份教程中，通过 CC Switch + DeepSeek 的组合，可以得到便宜、稳定且功能相近的 AI Agent，我认为这对于刚刚接触这部分工作流的新手（包括曾经的我）来说，这会是有帮助的。&lt;/p&gt;
&lt;div class=&#34;hx-overflow-x-auto hx-mt-6 hx-flex hx-rounded-lg hx-border hx-py-2 ltr:hx-pr-4 rtl:hx-pl-4 contrast-more:hx-border-current contrast-more:dark:hx-border-current hx-border-orange-100 hx-bg-orange-50 hx-text-orange-800 dark:hx-border-orange-400/30 dark:hx-bg-orange-400/20 dark:hx-text-orange-300&#34;&gt;
  &lt;div class=&#34;ltr:hx-pl-3 ltr:hx-pr-2 rtl:hx-pr-3 rtl:hx-pl-2&#34;&gt;&lt;div class=&#34;hx-select-none hx-text-xl&#34; style=&#34;font-family: &#39;Apple Color Emoji&#39;, &#39;Segoe UI Emoji&#39;, &#39;Segoe UI Symbol&#39;;&#34;&gt;💡&lt;/div&gt;&lt;/div&gt;

  &lt;div class=&#34;hx-w-full hx-min-w-0 hx-leading-7&#34;&gt;
    &lt;div class=&#34;hx-mt-6 hx-leading-7 first:hx-mt-0&#34;&gt;&lt;strong&gt;核心架构&lt;/strong&gt;：Positron IDE → Claude Code CLI → CC Switch 代理 → DeepSeek API（Anthropic 兼容端点）&lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;组件&lt;/th&gt;
          &lt;th&gt;角色&lt;/th&gt;
          &lt;th&gt;费用&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;Positron IDE&lt;/td&gt;
          &lt;td&gt;IDE 前端，运行 Claude Code 终端 &amp;amp; VS Code 扩展&lt;/td&gt;
          &lt;td&gt;免费开源&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Claude Code CLI&lt;/td&gt;
          &lt;td&gt;Anthropic 官方 AI 编程助手&lt;/td&gt;
          &lt;td&gt;免费（API 按量计费）&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;CC Switch&lt;/td&gt;
          &lt;td&gt;供应商切换 GUI 工具，将 API 调用路由到第三方模型&lt;/td&gt;
          &lt;td&gt;免费开源&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;DeepSeek API&lt;/td&gt;
          &lt;td&gt;第三方大模型 API，提供 Anthropic 兼容端点&lt;/td&gt;
          &lt;td&gt;~¥2/百万 token（缓存命中）&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;details class=&#34;last-of-type:hx-mb-0 hx-rounded-lg hx-bg-neutral-50 dark:hx-bg-neutral-800 hx-p-2 hx-mt-4 hx-group&#34; &gt;
  &lt;summary class=&#34;hx-flex hx-items-center hx-cursor-pointer hx-select-none hx-list-none hx-p-1 hx-rounded hx-transition-colors hover:hx-bg-gray-100 dark:hover:hx-bg-neutral-800 before:hx-mr-1 before:hx-inline-block before:hx-transition-transform before:hx-content-[&#39;&#39;] dark:before:hx-invert rtl:before:hx-rotate-180 group-open:before:hx-rotate-90&#34;&gt;
    &lt;strong class=&#34;hx-text-lg&#34;&gt;&lt;strong&gt;为什么选择 Positron&lt;/strong&gt;&lt;/strong&gt;
  &lt;/summary&gt;
  &lt;div class=&#34;hx-p-2 hx-overflow-hidden&#34;&gt;
    &lt;p&gt;我此前接触的主要是基于 R Studio 的 R 语言工作环境，但其对 AI Agent 的插件支持并不成熟。尽管有类似 &lt;a href=&#34;https://yulab-smu.top/aisdk/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;aisdk&lt;/a&gt; 等支持在 R Studio 中调用大模型的 R 包，其社区生态与 Claude Code 相比还并不完善。&lt;/p&gt;
&lt;p&gt;这时，Positron 带着原生对 R/Python 的支持和 Claude Code 插件来到了我的面前。尽管其 GUI 和部分快捷键操作与我习惯的 R Studio 并不相同，但考虑到能够在工作流中丝滑接入 Claude，这种代价是完全可以接受的。&lt;/p&gt;
  &lt;/div&gt;
&lt;/details&gt;
&lt;hr&gt;
&lt;h2&gt;二、 架构总览&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;二-架构总览&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#%e4%ba%8c-%e6%9e%b6%e6%9e%84%e6%80%bb%e8%a7%88&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;div class=&#34;hextra-code-block hx-relative hx-mt-6 first:hx-mt-0 hx-group/code&#34;&gt;

&lt;pre&gt;&lt;code&gt;┌──────────────────────────────────────────────────┐
│              Positron IDE (VS Code Fork)          │
│  ┌─────────────┐  ┌──────────────────────────┐   │
│  │ VS Code 扩展 │  │  内置终端 (claude 命令)  │   │
│  └──────┬──────┘  └───────────┬──────────────┘   │
└─────────┼─────────────────────┼──────────────────┘
          │                     │
          ▼                     ▼
┌──────────────────────────────────────────────────┐
│        Claude Code CLI (@anthropic-ai/claude-code)│
│        读取 ~/.claude/settings.json 中的 env 配置  │
│        ANTHROPIC_BASE_URL → 路由到 DeepSeek       │
└──────────────────────┬───────────────────────────┘
                       │
                       ▼
┌──────────────────────────────────────────────────┐
│            CC Switch Desktop App (v3.14&amp;#43;)         │
│   • 管理多个供应商配置（DeepSeek/GLM/小米等）      │
│   • 自动写入 ~/.claude/settings.json              │
│   • 余额查询、模型切换、本地路由代理                │
└──────────────────────┬───────────────────────────┘
                       │
                       ▼
┌──────────────────────────────────────────────────┐
│     DeepSeek API (api.deepseek.com/anthropic)     │
│   • Anthropic Messages API 兼容端点               │
│   • 模型：deepseek-v4-pro (1M上下文)              │
│   • 模型：deepseek-v4-flash (快速响应)             │
└──────────────────────────────────────────────────┘&lt;/code&gt;&lt;/pre&gt;&lt;div class=&#34;hextra-code-copy-btn-container hx-opacity-0 hx-transition group-hover/code:hx-opacity-100 hx-flex hx-gap-1 hx-absolute hx-m-[11px] hx-right-0 hx-top-0&#34;&gt;
  &lt;button
    class=&#34;hextra-code-copy-btn hx-group/copybtn hx-transition-all active:hx-opacity-50 hx-bg-primary-700/5 hx-border hx-border-black/5 hx-text-gray-600 hover:hx-text-gray-900 hx-rounded-md hx-p-1.5 dark:hx-bg-primary-300/10 dark:hx-border-white/10 dark:hx-text-gray-400 dark:hover:hx-text-gray-50&#34;
    title=&#34;Copy code&#34;
  &gt;
    &lt;div class=&#34;copy-icon group-[.copied]/copybtn:hx-hidden hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
    &lt;div class=&#34;success-icon hx-hidden group-[.copied]/copybtn:hx-block hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
  &lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h3&gt;数据流说明&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;数据流说明&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#%e6%95%b0%e6%8d%ae%e6%b5%81%e8%af%b4%e6%98%8e&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;在 Positron 终端的 Claude Code 插件对话界面中输入 &lt;code&gt;/&lt;/code&gt; 命令或自然语言指令&lt;/li&gt;
&lt;li&gt;Claude Code CLI 读取 &lt;code&gt;~/.claude/settings.json&lt;/code&gt; 中的环境变量，将 API 请求发往 &lt;code&gt;ANTHROPIC_BASE_URL&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;请求到达 DeepSeek 的 Anthropic 兼容端点，按 Anthropic Messages API 格式处理&lt;/li&gt;
&lt;li&gt;DeepSeek 模型推理后，返回符合 Anthropic 格式的响应&lt;/li&gt;
&lt;li&gt;Claude Code CLI 解析响应，在终端/IDE 中渲染输出&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;h2&gt;三、 准备工作&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;三-准备工作&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#%e4%b8%89-%e5%87%86%e5%a4%87%e5%b7%a5%e4%bd%9c&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;h3&gt;1. 系统要求&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;1-系统要求&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#1-%e7%b3%bb%e7%bb%9f%e8%a6%81%e6%b1%82&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;项目&lt;/th&gt;
          &lt;th&gt;要求&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;操作系统&lt;/td&gt;
          &lt;td&gt;Windows 10+ / macOS 12+ / Linux&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Node.js&lt;/td&gt;
          &lt;td&gt;v18.0.0 及以上（推荐 LTS 版本）&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;磁盘空间&lt;/td&gt;
          &lt;td&gt;约 1GB（Node.js + Claude Code + CC Switch）&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;网络&lt;/td&gt;
          &lt;td&gt;可访问 api.deepseek.com（国内网络直接连接）&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3&gt;2. 注册 DeepSeek 并获取 API Key&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;2-注册-deepseek-并获取-api-key&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#2-%e6%b3%a8%e5%86%8c-deepseek-%e5%b9%b6%e8%8e%b7%e5%8f%96-api-key&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;打开浏览器访问 &lt;a href=&#34;https://platform.deepseek.com&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;platform.deepseek.com&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;注册账号并登录&lt;/li&gt;
&lt;li&gt;进入「API Keys」页面，点击「创建 API Key」&lt;/li&gt;
&lt;li&gt;复制生成的 &lt;code&gt;sk-&lt;/code&gt; 开头的密钥（&lt;strong&gt;仅显示一次，务必保存&lt;/strong&gt;）&lt;/li&gt;
&lt;/ol&gt;
&lt;div class=&#34;hx-overflow-x-auto hx-mt-6 hx-flex hx-rounded-lg hx-border hx-py-2 ltr:hx-pr-4 rtl:hx-pl-4 contrast-more:hx-border-current contrast-more:dark:hx-border-current hx-border-yellow-100 hx-bg-yellow-50 hx-text-yellow-900 dark:hx-border-yellow-200/30 dark:hx-bg-yellow-700/30 dark:hx-text-yellow-200&#34;&gt;
  &lt;div class=&#34;ltr:hx-pl-3 ltr:hx-pr-2 rtl:hx-pr-3 rtl:hx-pl-2&#34;&gt;&lt;div class=&#34;hx-select-none hx-text-xl&#34; style=&#34;font-family: &#39;Apple Color Emoji&#39;, &#39;Segoe UI Emoji&#39;, &#39;Segoe UI Symbol&#39;;&#34;&gt;⚠️&lt;/div&gt;&lt;/div&gt;

  &lt;div class=&#34;hx-w-full hx-min-w-0 hx-leading-7&#34;&gt;
    &lt;div class=&#34;hx-mt-6 hx-leading-7 first:hx-mt-0&#34;&gt;需要先充值才能使用 API。建议首次充值 ¥10-20 测试。DeepSeek 按量计费，余额不足时 API 请求会返回 401 错误。&lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;hr&gt;
&lt;h2&gt;四、 正式安装&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;四-正式安装&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#%e5%9b%9b-%e6%ad%a3%e5%bc%8f%e5%ae%89%e8%a3%85&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;h3&gt;1. 安装 Claude Code&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;1-安装-claude-code&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#1-%e5%ae%89%e8%a3%85-claude-code&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;菜鸟教程有一份很详细清晰的文档&lt;a href=&#34;https://www.runoob.com/claude-code/claude-code-install.html&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;在这里&lt;/a&gt;，分别对官方脚本安装（推荐）和 npm 安装两种途径进行的描述。&lt;/p&gt;
&lt;p&gt;以下内容记录了我此前用 npm 安装的流程，可以参考。&lt;/p&gt;
&lt;h4&gt;1.1 安装 Node.js&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;11-安装-nodejs&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#11-%e5%ae%89%e8%a3%85-nodejs&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h4&gt;&lt;p&gt;Node.js 是 Claude Code CLI 的运行环境。&lt;/p&gt;
&lt;h4&gt;Windows&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;windows&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#windows&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h4&gt;&lt;ol&gt;
&lt;li&gt;访问 &lt;a href=&#34;https://nodejs.org&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;nodejs.org&lt;/a&gt;，下载 LTS 版本安装包（.msi）&lt;/li&gt;
&lt;li&gt;运行安装程序，全部默认选项即可&lt;/li&gt;
&lt;li&gt;安装完成后&lt;strong&gt;重启终端&lt;/strong&gt;验证：&lt;/li&gt;
&lt;/ol&gt;
&lt;div class=&#34;hextra-code-block hx-relative hx-mt-6 first:hx-mt-0 hx-group/code&#34;&gt;

&lt;div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;node -v   &lt;span class=&#34;c1&#34;&gt;# 应显示 v18.x.x 或 v20.x.x 或 v22.x.x&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;npm -v    &lt;span class=&#34;c1&#34;&gt;# 应显示 9.x.x 或 10.x.x&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;hextra-code-copy-btn-container hx-opacity-0 hx-transition group-hover/code:hx-opacity-100 hx-flex hx-gap-1 hx-absolute hx-m-[11px] hx-right-0 hx-top-0&#34;&gt;
  &lt;button
    class=&#34;hextra-code-copy-btn hx-group/copybtn hx-transition-all active:hx-opacity-50 hx-bg-primary-700/5 hx-border hx-border-black/5 hx-text-gray-600 hover:hx-text-gray-900 hx-rounded-md hx-p-1.5 dark:hx-bg-primary-300/10 dark:hx-border-white/10 dark:hx-text-gray-400 dark:hover:hx-text-gray-50&#34;
    title=&#34;Copy code&#34;
  &gt;
    &lt;div class=&#34;copy-icon group-[.copied]/copybtn:hx-hidden hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
    &lt;div class=&#34;success-icon hx-hidden group-[.copied]/copybtn:hx-block hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
  &lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h4&gt;macOS&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;macos&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#macos&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h4&gt;&lt;div class=&#34;hextra-code-block hx-relative hx-mt-6 first:hx-mt-0 hx-group/code&#34;&gt;

&lt;div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 推荐使用 Homebrew&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;brew install node@22
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 或从 nodejs.org 下载 .pkg 安装包&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;hextra-code-copy-btn-container hx-opacity-0 hx-transition group-hover/code:hx-opacity-100 hx-flex hx-gap-1 hx-absolute hx-m-[11px] hx-right-0 hx-top-0&#34;&gt;
  &lt;button
    class=&#34;hextra-code-copy-btn hx-group/copybtn hx-transition-all active:hx-opacity-50 hx-bg-primary-700/5 hx-border hx-border-black/5 hx-text-gray-600 hover:hx-text-gray-900 hx-rounded-md hx-p-1.5 dark:hx-bg-primary-300/10 dark:hx-border-white/10 dark:hx-text-gray-400 dark:hover:hx-text-gray-50&#34;
    title=&#34;Copy code&#34;
  &gt;
    &lt;div class=&#34;copy-icon group-[.copied]/copybtn:hx-hidden hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
    &lt;div class=&#34;success-icon hx-hidden group-[.copied]/copybtn:hx-block hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
  &lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h4&gt;常见问题：PowerShell 执行策略&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;常见问题powershell-执行策略&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#%e5%b8%b8%e8%a7%81%e9%97%ae%e9%a2%98powershell-%e6%89%a7%e8%a1%8c%e7%ad%96%e7%95%a5&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h4&gt;&lt;p&gt;如果 Windows PowerShell 运行脚本报错：&lt;code&gt;无法加载文件，因为在此系统上禁止运行脚本&lt;/code&gt;&lt;/p&gt;
&lt;div class=&#34;hextra-code-block hx-relative hx-mt-6 first:hx-mt-0 hx-group/code&#34;&gt;

&lt;div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-powershell&#34; data-lang=&#34;powershell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;Set-ExecutionPolicy&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-Scope&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;CurrentUser&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;RemoteSigned&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;hextra-code-copy-btn-container hx-opacity-0 hx-transition group-hover/code:hx-opacity-100 hx-flex hx-gap-1 hx-absolute hx-m-[11px] hx-right-0 hx-top-0&#34;&gt;
  &lt;button
    class=&#34;hextra-code-copy-btn hx-group/copybtn hx-transition-all active:hx-opacity-50 hx-bg-primary-700/5 hx-border hx-border-black/5 hx-text-gray-600 hover:hx-text-gray-900 hx-rounded-md hx-p-1.5 dark:hx-bg-primary-300/10 dark:hx-border-white/10 dark:hx-text-gray-400 dark:hover:hx-text-gray-50&#34;
    title=&#34;Copy code&#34;
  &gt;
    &lt;div class=&#34;copy-icon group-[.copied]/copybtn:hx-hidden hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
    &lt;div class=&#34;success-icon hx-hidden group-[.copied]/copybtn:hx-block hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
  &lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h4&gt;1.2 安装 Claude Code CLI&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;12-安装-claude-code-cli&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#12-%e5%ae%89%e8%a3%85-claude-code-cli&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h4&gt;&lt;div class=&#34;hextra-code-block hx-relative hx-mt-6 first:hx-mt-0 hx-group/code&#34;&gt;

&lt;div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;npm install -g @anthropic-ai/claude-code&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;hextra-code-copy-btn-container hx-opacity-0 hx-transition group-hover/code:hx-opacity-100 hx-flex hx-gap-1 hx-absolute hx-m-[11px] hx-right-0 hx-top-0&#34;&gt;
  &lt;button
    class=&#34;hextra-code-copy-btn hx-group/copybtn hx-transition-all active:hx-opacity-50 hx-bg-primary-700/5 hx-border hx-border-black/5 hx-text-gray-600 hover:hx-text-gray-900 hx-rounded-md hx-p-1.5 dark:hx-bg-primary-300/10 dark:hx-border-white/10 dark:hx-text-gray-400 dark:hover:hx-text-gray-50&#34;
    title=&#34;Copy code&#34;
  &gt;
    &lt;div class=&#34;copy-icon group-[.copied]/copybtn:hx-hidden hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
    &lt;div class=&#34;success-icon hx-hidden group-[.copied]/copybtn:hx-block hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
  &lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;验证：&lt;/p&gt;
&lt;div class=&#34;hextra-code-block hx-relative hx-mt-6 first:hx-mt-0 hx-group/code&#34;&gt;

&lt;div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;claude -v   &lt;span class=&#34;c1&#34;&gt;# 显示版本号&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;hextra-code-copy-btn-container hx-opacity-0 hx-transition group-hover/code:hx-opacity-100 hx-flex hx-gap-1 hx-absolute hx-m-[11px] hx-right-0 hx-top-0&#34;&gt;
  &lt;button
    class=&#34;hextra-code-copy-btn hx-group/copybtn hx-transition-all active:hx-opacity-50 hx-bg-primary-700/5 hx-border hx-border-black/5 hx-text-gray-600 hover:hx-text-gray-900 hx-rounded-md hx-p-1.5 dark:hx-bg-primary-300/10 dark:hx-border-white/10 dark:hx-text-gray-400 dark:hover:hx-text-gray-50&#34;
    title=&#34;Copy code&#34;
  &gt;
    &lt;div class=&#34;copy-icon group-[.copied]/copybtn:hx-hidden hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
    &lt;div class=&#34;success-icon hx-hidden group-[.copied]/copybtn:hx-block hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
  &lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;安装后，Claude Code 的全局配置目录位于：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Windows&lt;/strong&gt;: &lt;code&gt;C:\Users\&amp;lt;用户名&amp;gt;\.claude\&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;macOS/Linux&lt;/strong&gt;: &lt;code&gt;~/.claude/&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;关键配置文件：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;settings.json&lt;/code&gt; — 主配置文件（环境变量、权限等）&lt;/li&gt;
&lt;li&gt;&lt;code&gt;settings.local.json&lt;/code&gt; — 本地覆盖（不会被同步）&lt;/li&gt;
&lt;li&gt;&lt;code&gt;CLAUDE.md&lt;/code&gt; — 项目或全局编码准则&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h3&gt;2. 下载安装 CC Switch&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;2-下载安装-cc-switch&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#2-%e4%b8%8b%e8%bd%bd%e5%ae%89%e8%a3%85-cc-switch&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;h4&gt;2.1 下载&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;21-下载&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#21-%e4%b8%8b%e8%bd%bd&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h4&gt;&lt;p&gt;CC Switch 是开源桌面应用（GitHub: &lt;a href=&#34;https://github.com/farion1231/cc-switch&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;farion1231/cc-switch&lt;/a&gt;），用于给 Claude Code 一键切换模型供应商。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;发布页面&lt;/strong&gt;：&lt;a href=&#34;https://github.com/farion1231/cc-switch/releases&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;github.com/farion1231/cc-switch/releases&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;平台&lt;/th&gt;
          &lt;th&gt;下载文件&lt;/th&gt;
          &lt;th&gt;安装方式&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;Windows&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;.msi&lt;/code&gt; 安装版 或 &lt;code&gt;.zip&lt;/code&gt; 便携版&lt;/td&gt;
          &lt;td&gt;双击 .msi 安装&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;macOS&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;.dmg&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;拖入 Applications&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Linux&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;.AppImage&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;chmod +x *.AppImage &amp;amp;&amp;amp; ./*.AppImage&lt;/code&gt;&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h4&gt;2.2 配置 DeepSeek 供应商&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;22-配置-deepseek-供应商&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#22-%e9%85%8d%e7%bd%ae-deepseek-%e4%be%9b%e5%ba%94%e5%95%86&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h4&gt;&lt;ol&gt;
&lt;li&gt;打开 CC Switch，点击右上角 &lt;strong&gt;「+」&lt;/strong&gt; 按钮添加供应商&lt;/li&gt;
&lt;li&gt;在预设列表中选择 &lt;strong&gt;DeepSeek&lt;/strong&gt;，或手动填写以下参数：&lt;/li&gt;
&lt;/ol&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;配置项&lt;/th&gt;
          &lt;th&gt;值&lt;/th&gt;
          &lt;th&gt;说明&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;Base URL&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;https://api.deepseek.com/anthropic&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;必须包含 /anthropic 路径&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;认证类型&lt;/td&gt;
          &lt;td&gt;ANTHROPIC_AUTH_TOKEN&lt;/td&gt;
          &lt;td&gt;使用 token 认证&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;API Key&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;sk-xxxxxxxx&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;你的 DeepSeek 密钥&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;API 格式&lt;/td&gt;
          &lt;td&gt;Anthropic Messages&lt;/td&gt;
          &lt;td&gt;Anthropic 兼容格式&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;默认模型&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;deepseek-v4-pro[1m]&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;主力模型，支持 1M 上下文&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Haiku 模型&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;deepseek-v4-flash&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;快速轻量模型&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Sonnet 模型&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;deepseek-v4-pro&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;中等任务&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Opus 模型&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;deepseek-v4-pro&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;复杂任务&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;ol start=&#34;3&#34;&gt;
&lt;li&gt;勾选 &lt;strong&gt;「写入通用配置」&lt;/strong&gt;，点击 &lt;strong&gt;「添加」&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;回到主界面，选择刚添加的 DeepSeek，点击 &lt;strong&gt;「启用 (Enable)」&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;div class=&#34;hx-overflow-x-auto hx-mt-6 hx-flex hx-rounded-lg hx-border hx-py-2 ltr:hx-pr-4 rtl:hx-pl-4 contrast-more:hx-border-current contrast-more:dark:hx-border-current hx-border-orange-100 hx-bg-orange-50 hx-text-orange-800 dark:hx-border-orange-400/30 dark:hx-bg-orange-400/20 dark:hx-text-orange-300&#34;&gt;
  &lt;div class=&#34;ltr:hx-pl-3 ltr:hx-pr-2 rtl:hx-pr-3 rtl:hx-pl-2&#34;&gt;&lt;div class=&#34;hx-select-none hx-text-xl&#34; style=&#34;font-family: &#39;Apple Color Emoji&#39;, &#39;Segoe UI Emoji&#39;, &#39;Segoe UI Symbol&#39;;&#34;&gt;💡&lt;/div&gt;&lt;/div&gt;

  &lt;div class=&#34;hx-w-full hx-min-w-0 hx-leading-7&#34;&gt;
    &lt;div class=&#34;hx-mt-6 hx-leading-7 first:hx-mt-0&#34;&gt;&lt;strong&gt;CC Switch 做了什么&lt;/strong&gt;：它将上述配置自动写入 &lt;code&gt;~/.claude/settings.json&lt;/code&gt; 的 &lt;code&gt;env&lt;/code&gt; 字段，Claude Code 启动时会读取这些环境变量。&lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;hr&gt;
&lt;details class=&#34;last-of-type:hx-mb-0 hx-rounded-lg hx-bg-neutral-50 dark:hx-bg-neutral-800 hx-p-2 hx-mt-4 hx-group&#34; &gt;
  &lt;summary class=&#34;hx-flex hx-items-center hx-cursor-pointer hx-select-none hx-list-none hx-p-1 hx-rounded hx-transition-colors hover:hx-bg-gray-100 dark:hover:hx-bg-neutral-800 before:hx-mr-1 before:hx-inline-block before:hx-transition-transform before:hx-content-[&#39;&#39;] dark:before:hx-invert rtl:before:hx-rotate-180 group-open:before:hx-rotate-90&#34;&gt;
    &lt;strong class=&#34;hx-text-lg&#34;&gt;手动配置 settings.json（可选替代方案）&lt;/strong&gt;
  &lt;/summary&gt;
  &lt;div class=&#34;hx-p-2 hx-overflow-hidden&#34;&gt;
    &lt;p&gt;如果你不想用 CC Switch GUI，也可以直接手动编辑配置文件。在 &lt;code&gt;~/.claude/settings.json&lt;/code&gt; 中添加：&lt;/p&gt;
&lt;div class=&#34;hextra-code-block hx-relative hx-mt-6 first:hx-mt-0 hx-group/code&#34;&gt;
&lt;div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-json&#34; data-lang=&#34;json&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nt&#34;&gt;&amp;#34;env&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nt&#34;&gt;&amp;#34;ANTHROPIC_AUTH_TOKEN&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;sk-你的DeepSeek密钥&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nt&#34;&gt;&amp;#34;ANTHROPIC_BASE_URL&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;https://api.deepseek.com/anthropic&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nt&#34;&gt;&amp;#34;ANTHROPIC_MODEL&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;deepseek-v4-pro[1m]&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nt&#34;&gt;&amp;#34;ANTHROPIC_DEFAULT_HAIKU_MODEL&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;deepseek-v4-flash&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nt&#34;&gt;&amp;#34;ANTHROPIC_DEFAULT_SONNET_MODEL&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;deepseek-v4-pro[1m]&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nt&#34;&gt;&amp;#34;ANTHROPIC_DEFAULT_OPUS_MODEL&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;deepseek-v4-pro[1m]&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nt&#34;&gt;&amp;#34;ANTHROPIC_REASONING_MODEL&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;deepseek-v4-pro&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;hextra-code-copy-btn-container hx-opacity-0 hx-transition group-hover/code:hx-opacity-100 hx-flex hx-gap-1 hx-absolute hx-m-[11px] hx-right-0 hx-top-0&#34;&gt;
  &lt;button
    class=&#34;hextra-code-copy-btn hx-group/copybtn hx-transition-all active:hx-opacity-50 hx-bg-primary-700/5 hx-border hx-border-black/5 hx-text-gray-600 hover:hx-text-gray-900 hx-rounded-md hx-p-1.5 dark:hx-bg-primary-300/10 dark:hx-border-white/10 dark:hx-text-gray-400 dark:hover:hx-text-gray-50&#34;
    title=&#34;Copy code&#34;
  &gt;
    &lt;div class=&#34;copy-icon group-[.copied]/copybtn:hx-hidden hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
    &lt;div class=&#34;success-icon hx-hidden group-[.copied]/copybtn:hx-block hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
  &lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
  &lt;/div&gt;
&lt;/details&gt;
&lt;hr&gt;
&lt;h3&gt;3. 安装 Positron IDE&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;3-安装-positron-ide&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#3-%e5%ae%89%e8%a3%85-positron-ide&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;h4&gt;3.1 安装步骤&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;31-安装步骤&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#31-%e5%ae%89%e8%a3%85%e6%ad%a5%e9%aa%a4&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h4&gt;&lt;ol&gt;
&lt;li&gt;访问 &lt;a href=&#34;https://positron.posit.co&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;positron.posit.co&lt;/a&gt; 下载对应系统的安装包&lt;/li&gt;
&lt;li&gt;安装后启动 Positron&lt;/li&gt;
&lt;li&gt;在侧边栏的插件页面选择 &lt;strong&gt;Claude Code for VS Code&lt;/strong&gt; 插件进行安装，注意核对开发者为 Anthropic。&lt;/li&gt;
&lt;/ol&gt;
&lt;h4&gt;3.2 在 Positron 中使用 Claude Code&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;32-在-positron-中使用-claude-code&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#32-%e5%9c%a8-positron-%e4%b8%ad%e4%bd%bf%e7%94%a8-claude-code&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h4&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;方式&lt;/th&gt;
          &lt;th&gt;说明&lt;/th&gt;
          &lt;th&gt;适用场景&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;strong&gt;A. 终端模式&lt;/strong&gt;&lt;/td&gt;
          &lt;td&gt;在终端中直接输入 &lt;code&gt;claude&lt;/code&gt; 启动交互会话&lt;/td&gt;
          &lt;td&gt;日常编码辅助、文件操作、项目搜索&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;strong&gt;B. VS Code 扩展模式&lt;/strong&gt;&lt;/td&gt;
          &lt;td&gt;安装 Claude Code for VS Code 扩展，侧边栏使用&lt;/td&gt;
          &lt;td&gt;嵌入 IDE 工作流、与编辑器面板联动&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h4&gt;A. 终端模式（推荐）&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;a-终端模式推荐&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#a-%e7%bb%88%e7%ab%af%e6%a8%a1%e5%bc%8f%e6%8e%a8%e8%8d%90&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h4&gt;&lt;div class=&#34;hextra-code-block hx-relative hx-mt-6 first:hx-mt-0 hx-group/code&#34;&gt;

&lt;div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;claude&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;hextra-code-copy-btn-container hx-opacity-0 hx-transition group-hover/code:hx-opacity-100 hx-flex hx-gap-1 hx-absolute hx-m-[11px] hx-right-0 hx-top-0&#34;&gt;
  &lt;button
    class=&#34;hextra-code-copy-btn hx-group/copybtn hx-transition-all active:hx-opacity-50 hx-bg-primary-700/5 hx-border hx-border-black/5 hx-text-gray-600 hover:hx-text-gray-900 hx-rounded-md hx-p-1.5 dark:hx-bg-primary-300/10 dark:hx-border-white/10 dark:hx-text-gray-400 dark:hover:hx-text-gray-50&#34;
    title=&#34;Copy code&#34;
  &gt;
    &lt;div class=&#34;copy-icon group-[.copied]/copybtn:hx-hidden hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
    &lt;div class=&#34;success-icon hx-hidden group-[.copied]/copybtn:hx-block hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
  &lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;启动后即可进行交互式对话：&lt;/p&gt;
&lt;div class=&#34;hextra-code-block hx-relative hx-mt-6 first:hx-mt-0 hx-group/code&#34;&gt;

&lt;pre&gt;&lt;code&gt;&amp;gt; 帮我重构 src/utils.ts 中的 validateInput 函数，提高可读性
&amp;gt; /memory    # 查看和管理记忆
&amp;gt; /model     # 查看当前使用的模型
&amp;gt; /help      # 查看所有命令&lt;/code&gt;&lt;/pre&gt;&lt;div class=&#34;hextra-code-copy-btn-container hx-opacity-0 hx-transition group-hover/code:hx-opacity-100 hx-flex hx-gap-1 hx-absolute hx-m-[11px] hx-right-0 hx-top-0&#34;&gt;
  &lt;button
    class=&#34;hextra-code-copy-btn hx-group/copybtn hx-transition-all active:hx-opacity-50 hx-bg-primary-700/5 hx-border hx-border-black/5 hx-text-gray-600 hover:hx-text-gray-900 hx-rounded-md hx-p-1.5 dark:hx-bg-primary-300/10 dark:hx-border-white/10 dark:hx-text-gray-400 dark:hover:hx-text-gray-50&#34;
    title=&#34;Copy code&#34;
  &gt;
    &lt;div class=&#34;copy-icon group-[.copied]/copybtn:hx-hidden hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
    &lt;div class=&#34;success-icon hx-hidden group-[.copied]/copybtn:hx-block hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
  &lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;hr&gt;
&lt;h2&gt;五、 验证配置&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;五-验证配置&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#%e4%ba%94-%e9%aa%8c%e8%af%81%e9%85%8d%e7%bd%ae&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;h3&gt;1. 验证 CLI 启动&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;1-验证-cli-启动&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#1-%e9%aa%8c%e8%af%81-cli-%e5%90%af%e5%8a%a8&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;div class=&#34;hextra-code-block hx-relative hx-mt-6 first:hx-mt-0 hx-group/code&#34;&gt;

&lt;div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;claude&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;hextra-code-copy-btn-container hx-opacity-0 hx-transition group-hover/code:hx-opacity-100 hx-flex hx-gap-1 hx-absolute hx-m-[11px] hx-right-0 hx-top-0&#34;&gt;
  &lt;button
    class=&#34;hextra-code-copy-btn hx-group/copybtn hx-transition-all active:hx-opacity-50 hx-bg-primary-700/5 hx-border hx-border-black/5 hx-text-gray-600 hover:hx-text-gray-900 hx-rounded-md hx-p-1.5 dark:hx-bg-primary-300/10 dark:hx-border-white/10 dark:hx-text-gray-400 dark:hover:hx-text-gray-50&#34;
    title=&#34;Copy code&#34;
  &gt;
    &lt;div class=&#34;copy-icon group-[.copied]/copybtn:hx-hidden hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
    &lt;div class=&#34;success-icon hx-hidden group-[.copied]/copybtn:hx-block hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
  &lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;进入交互会话后，询问：&lt;/p&gt;
&lt;div class=&#34;hextra-code-block hx-relative hx-mt-6 first:hx-mt-0 hx-group/code&#34;&gt;

&lt;pre&gt;&lt;code&gt;&amp;gt; 你当前使用的是什么模型？&lt;/code&gt;&lt;/pre&gt;&lt;div class=&#34;hextra-code-copy-btn-container hx-opacity-0 hx-transition group-hover/code:hx-opacity-100 hx-flex hx-gap-1 hx-absolute hx-m-[11px] hx-right-0 hx-top-0&#34;&gt;
  &lt;button
    class=&#34;hextra-code-copy-btn hx-group/copybtn hx-transition-all active:hx-opacity-50 hx-bg-primary-700/5 hx-border hx-border-black/5 hx-text-gray-600 hover:hx-text-gray-900 hx-rounded-md hx-p-1.5 dark:hx-bg-primary-300/10 dark:hx-border-white/10 dark:hx-text-gray-400 dark:hover:hx-text-gray-50&#34;
    title=&#34;Copy code&#34;
  &gt;
    &lt;div class=&#34;copy-icon group-[.copied]/copybtn:hx-hidden hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
    &lt;div class=&#34;success-icon hx-hidden group-[.copied]/copybtn:hx-block hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
  &lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;hx-overflow-x-auto hx-mt-6 hx-flex hx-rounded-lg hx-border hx-py-2 ltr:hx-pr-4 rtl:hx-pl-4 contrast-more:hx-border-current contrast-more:dark:hx-border-current hx-border-orange-100 hx-bg-orange-50 hx-text-orange-800 dark:hx-border-orange-400/30 dark:hx-bg-orange-400/20 dark:hx-text-orange-300&#34;&gt;
  &lt;div class=&#34;ltr:hx-pl-3 ltr:hx-pr-2 rtl:hx-pr-3 rtl:hx-pl-2&#34;&gt;&lt;div class=&#34;hx-select-none hx-text-xl&#34; style=&#34;font-family: &#39;Apple Color Emoji&#39;, &#39;Segoe UI Emoji&#39;, &#39;Segoe UI Symbol&#39;;&#34;&gt;✅&lt;/div&gt;&lt;/div&gt;

  &lt;div class=&#34;hx-w-full hx-min-w-0 hx-leading-7&#34;&gt;
    &lt;div class=&#34;hx-mt-6 hx-leading-7 first:hx-mt-0&#34;&gt;&lt;strong&gt;预期响应&lt;/strong&gt;：模型为 &lt;code&gt;deepseek-v4-pro&lt;/code&gt;，上下文窗口 &lt;strong&gt;1,048,576 tokens (1M)&lt;/strong&gt;，由 DeepSeek 提供。&lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;h3&gt;2. 验证 API 连通性&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;2-验证-api-连通性&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#2-%e9%aa%8c%e8%af%81-api-%e8%bf%9e%e9%80%9a%e6%80%a7&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;div class=&#34;hextra-code-block hx-relative hx-mt-6 first:hx-mt-0 hx-group/code&#34;&gt;

&lt;pre&gt;&lt;code&gt;&amp;gt; 用 Python 写一个计算斐波那契数列的函数，并打印前 20 项&lt;/code&gt;&lt;/pre&gt;&lt;div class=&#34;hextra-code-copy-btn-container hx-opacity-0 hx-transition group-hover/code:hx-opacity-100 hx-flex hx-gap-1 hx-absolute hx-m-[11px] hx-right-0 hx-top-0&#34;&gt;
  &lt;button
    class=&#34;hextra-code-copy-btn hx-group/copybtn hx-transition-all active:hx-opacity-50 hx-bg-primary-700/5 hx-border hx-border-black/5 hx-text-gray-600 hover:hx-text-gray-900 hx-rounded-md hx-p-1.5 dark:hx-bg-primary-300/10 dark:hx-border-white/10 dark:hx-text-gray-400 dark:hover:hx-text-gray-50&#34;
    title=&#34;Copy code&#34;
  &gt;
    &lt;div class=&#34;copy-icon group-[.copied]/copybtn:hx-hidden hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
    &lt;div class=&#34;success-icon hx-hidden group-[.copied]/copybtn:hx-block hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
  &lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;如果返回正确的代码和结果，说明 API 连接正常。&lt;/p&gt;
&lt;h3&gt;3. 模型选择策略&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;3-模型选择策略&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#3-%e6%a8%a1%e5%9e%8b%e9%80%89%e6%8b%a9%e7%ad%96%e7%95%a5&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;场景&lt;/th&gt;
          &lt;th&gt;推荐模型&lt;/th&gt;
          &lt;th&gt;原因&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;单文件脚本修复、日志分析&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;deepseek-v4-flash&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;响应快 (&amp;lt;800ms)，成本极低&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;多文件重构、架构设计&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;deepseek-v4-pro[1m]&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;1M 上下文，可理解 50+ 文件&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;复杂算法、深度技术分析&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;deepseek-v4-pro[thinking]&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;激活动态推理链&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;超长文档精读 + 推理&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;deepseek-v4-pro[1m][thinking]&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;最大上下文 + 深度推理&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;我在使用时发现，在侧边栏界面中用 /model 切换模型并不靠谱，在 CC Switch 中编辑模型名称/更改供应商是更有效的选择。一般在调整设置并保存后等 1-2 分钟后即可继续使用。&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;六、其他功能&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;六其他功能&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#%e5%85%ad%e5%85%b6%e4%bb%96%e5%8a%9f%e8%83%bd&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;h3&gt;1. 多供应商管理&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;1-多供应商管理&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#1-%e5%a4%9a%e4%be%9b%e5%ba%94%e5%95%86%e7%ae%a1%e7%90%86&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;CC Switch 支持同时配置多个供应商：&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;供应商&lt;/th&gt;
          &lt;th&gt;端点&lt;/th&gt;
          &lt;th&gt;特点&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;DeepSeek&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;api.deepseek.com/anthropic&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;性价比最高，V4-Pro 1M 上下文&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;智谱 GLM&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;open.bigmodel.cn/api/anthropic&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;国产模型，GLM-5 综合能力强&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;小米 MiMo&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;api.xiaomimimo.com/anthropic&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;MiMo-V2.5-Pro，编码版本价格更低&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;在 CC Switch 中添加多个供应商后，可以随时一键切换。&lt;/p&gt;
&lt;h3&gt;2. Skills 和插件&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;2-skills-和插件&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#2-skills-%e5%92%8c%e6%8f%92%e4%bb%b6&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;Claude Code 支持安装 Skills（技能集）来扩展功能。关于 Skills 的使用和构建，我后续或许也会发布一篇单独的文章。&lt;/p&gt;
&lt;p&gt;有许多使用者会发布自己编写的 Skills，但出于安全性和使用便利性的考虑，我强烈建议在下载安装 Skills 前仔细阅读其文档和大致结构。&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;七、 常见问题排查&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;七-常见问题排查&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#%e4%b8%83-%e5%b8%b8%e8%a7%81%e9%97%ae%e9%a2%98%e6%8e%92%e6%9f%a5&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;h3&gt;问题 1：&lt;code&gt;claude&lt;/code&gt; 命令找不到&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;问题-1claude-命令找不到&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#%e9%97%ae%e9%a2%98-1claude-%e5%91%bd%e4%bb%a4%e6%89%be%e4%b8%8d%e5%88%b0&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;div class=&#34;hextra-code-block hx-relative hx-mt-6 first:hx-mt-0 hx-group/code&#34;&gt;

&lt;div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;npm list -g --depth&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;npm bin -g  &lt;span class=&#34;c1&#34;&gt;# 将此路径加入 PATH&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;hextra-code-copy-btn-container hx-opacity-0 hx-transition group-hover/code:hx-opacity-100 hx-flex hx-gap-1 hx-absolute hx-m-[11px] hx-right-0 hx-top-0&#34;&gt;
  &lt;button
    class=&#34;hextra-code-copy-btn hx-group/copybtn hx-transition-all active:hx-opacity-50 hx-bg-primary-700/5 hx-border hx-border-black/5 hx-text-gray-600 hover:hx-text-gray-900 hx-rounded-md hx-p-1.5 dark:hx-bg-primary-300/10 dark:hx-border-white/10 dark:hx-text-gray-400 dark:hover:hx-text-gray-50&#34;
    title=&#34;Copy code&#34;
  &gt;
    &lt;div class=&#34;copy-icon group-[.copied]/copybtn:hx-hidden hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
    &lt;div class=&#34;success-icon hx-hidden group-[.copied]/copybtn:hx-block hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
  &lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h3&gt;问题 2：&lt;code&gt;401 Unauthorized&lt;/code&gt;&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;问题-2401-unauthorized&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#%e9%97%ae%e9%a2%98-2401-unauthorized&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;原因：API Key 无效或余额不足。登录 &lt;a href=&#34;https://platform.deepseek.com&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;platform.deepseek.com&lt;/a&gt; 检查。&lt;/p&gt;
&lt;h3&gt;问题 3：&lt;code&gt;Connection refused&lt;/code&gt; 或 &lt;code&gt;model not found&lt;/code&gt;&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;问题-3connection-refused-或-model-not-found&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#%e9%97%ae%e9%a2%98-3connection-refused-%e6%88%96-model-not-found&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Base URL 缺少 &lt;code&gt;/anthropic&lt;/code&gt; 路径&lt;/strong&gt; — 确保是 &lt;code&gt;https://api.deepseek.com/anthropic&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;模型名称拼写错误&lt;/strong&gt; — 确认是 &lt;code&gt;deepseek-v4-pro&lt;/code&gt;、&lt;code&gt;deepseek-v4-flash&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;问题 4：PowerShell 运行脚本报错&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;问题-4powershell-运行脚本报错&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#%e9%97%ae%e9%a2%98-4powershell-%e8%bf%90%e8%a1%8c%e8%84%9a%e6%9c%ac%e6%8a%a5%e9%94%99&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;div class=&#34;hextra-code-block hx-relative hx-mt-6 first:hx-mt-0 hx-group/code&#34;&gt;

&lt;div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-powershell&#34; data-lang=&#34;powershell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;Set-ExecutionPolicy&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-Scope&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;CurrentUser&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;RemoteSigned&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;hextra-code-copy-btn-container hx-opacity-0 hx-transition group-hover/code:hx-opacity-100 hx-flex hx-gap-1 hx-absolute hx-m-[11px] hx-right-0 hx-top-0&#34;&gt;
  &lt;button
    class=&#34;hextra-code-copy-btn hx-group/copybtn hx-transition-all active:hx-opacity-50 hx-bg-primary-700/5 hx-border hx-border-black/5 hx-text-gray-600 hover:hx-text-gray-900 hx-rounded-md hx-p-1.5 dark:hx-bg-primary-300/10 dark:hx-border-white/10 dark:hx-text-gray-400 dark:hover:hx-text-gray-50&#34;
    title=&#34;Copy code&#34;
  &gt;
    &lt;div class=&#34;copy-icon group-[.copied]/copybtn:hx-hidden hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
    &lt;div class=&#34;success-icon hx-hidden group-[.copied]/copybtn:hx-block hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
  &lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;hr&gt;
&lt;h2&gt;八、 安全建议&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;八-安全建议&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#%e5%85%ab-%e5%ae%89%e5%85%a8%e5%bb%ba%e8%ae%ae&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;div class=&#34;hx-overflow-x-auto hx-mt-6 hx-flex hx-rounded-lg hx-border hx-py-2 ltr:hx-pr-4 rtl:hx-pl-4 contrast-more:hx-border-current contrast-more:dark:hx-border-current hx-border-yellow-100 hx-bg-yellow-50 hx-text-yellow-900 dark:hx-border-yellow-200/30 dark:hx-bg-yellow-700/30 dark:hx-text-yellow-200&#34;&gt;
  &lt;div class=&#34;ltr:hx-pl-3 ltr:hx-pr-2 rtl:hx-pr-3 rtl:hx-pl-2&#34;&gt;&lt;div class=&#34;hx-select-none hx-text-xl&#34; style=&#34;font-family: &#39;Apple Color Emoji&#39;, &#39;Segoe UI Emoji&#39;, &#39;Segoe UI Symbol&#39;;&#34;&gt;⚠️&lt;/div&gt;&lt;/div&gt;

  &lt;div class=&#34;hx-w-full hx-min-w-0 hx-leading-7&#34;&gt;
    &lt;div class=&#34;hx-mt-6 hx-leading-7 first:hx-mt-0&#34;&gt;&lt;ul&gt;
&lt;li&gt;API Key 存储在 &lt;code&gt;~/.claude/settings.json&lt;/code&gt; 中，&lt;strong&gt;切勿分享或上传到公开仓库&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;建议将密钥配置在 &lt;code&gt;settings.local.json&lt;/code&gt; 而非 &lt;code&gt;settings.json&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;定期轮换 API Key&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;hr&gt;
&lt;h2&gt;附录：核心配置文件参考&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;附录核心配置文件参考&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#%e9%99%84%e5%bd%95%e6%a0%b8%e5%bf%83%e9%85%8d%e7%bd%ae%e6%96%87%e4%bb%b6%e5%8f%82%e8%80%83&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;h3&gt;&lt;code&gt;~/.claude/settings.json&lt;/code&gt;&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;claudesettingsjson&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#claudesettingsjson&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;div class=&#34;hextra-code-block hx-relative hx-mt-6 first:hx-mt-0 hx-group/code&#34;&gt;

&lt;div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-json&#34; data-lang=&#34;json&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nt&#34;&gt;&amp;#34;env&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nt&#34;&gt;&amp;#34;ANTHROPIC_AUTH_TOKEN&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;sk-your-deepseek-api-key&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nt&#34;&gt;&amp;#34;ANTHROPIC_BASE_URL&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;https://api.deepseek.com/anthropic&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nt&#34;&gt;&amp;#34;ANTHROPIC_MODEL&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;deepseek-v4-pro[1m]&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nt&#34;&gt;&amp;#34;ANTHROPIC_DEFAULT_HAIKU_MODEL&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;deepseek-v4-flash&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nt&#34;&gt;&amp;#34;ANTHROPIC_DEFAULT_SONNET_MODEL&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;deepseek-v4-pro[1m]&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nt&#34;&gt;&amp;#34;ANTHROPIC_DEFAULT_OPUS_MODEL&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;deepseek-v4-pro[1m]&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nt&#34;&gt;&amp;#34;ANTHROPIC_REASONING_MODEL&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;deepseek-v4-pro&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;hextra-code-copy-btn-container hx-opacity-0 hx-transition group-hover/code:hx-opacity-100 hx-flex hx-gap-1 hx-absolute hx-m-[11px] hx-right-0 hx-top-0&#34;&gt;
  &lt;button
    class=&#34;hextra-code-copy-btn hx-group/copybtn hx-transition-all active:hx-opacity-50 hx-bg-primary-700/5 hx-border hx-border-black/5 hx-text-gray-600 hover:hx-text-gray-900 hx-rounded-md hx-p-1.5 dark:hx-bg-primary-300/10 dark:hx-border-white/10 dark:hx-text-gray-400 dark:hover:hx-text-gray-50&#34;
    title=&#34;Copy code&#34;
  &gt;
    &lt;div class=&#34;copy-icon group-[.copied]/copybtn:hx-hidden hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
    &lt;div class=&#34;success-icon hx-hidden group-[.copied]/copybtn:hx-block hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
  &lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;hr&gt;
&lt;div class=&#34;hx-overflow-x-auto hx-mt-6 hx-flex hx-rounded-lg hx-border hx-py-2 ltr:hx-pr-4 rtl:hx-pl-4 contrast-more:hx-border-current contrast-more:dark:hx-border-current hx-border-blue-200 hx-bg-blue-100 hx-text-blue-900 dark:hx-border-blue-200/30 dark:hx-bg-blue-900/30 dark:hx-text-blue-200&#34;&gt;
  &lt;div class=&#34;ltr:hx-pl-3 ltr:hx-pr-2 rtl:hx-pr-3 rtl:hx-pl-2&#34;&gt;&lt;div class=&#34;hx-select-none hx-text-xl&#34; style=&#34;font-family: &#39;Apple Color Emoji&#39;, &#39;Segoe UI Emoji&#39;, &#39;Segoe UI Symbol&#39;;&#34;&gt;🤖&lt;/div&gt;&lt;/div&gt;

  &lt;div class=&#34;hx-w-full hx-min-w-0 hx-leading-7&#34;&gt;
    &lt;div class=&#34;hx-mt-6 hx-leading-7 first:hx-mt-0&#34;&gt;&lt;strong&gt;AI 使用声明&lt;/strong&gt;：本文由作者撰写，AI 工具（Claude）辅助完成初稿起草、中英互译与格式整理。作者已审校全部内容，并对准确性承担最终责任。&lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;h2&gt;资源链接&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;资源链接&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#%e8%b5%84%e6%ba%90%e9%93%be%e6%8e%a5&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;资源&lt;/th&gt;
          &lt;th&gt;链接&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;Claude Code 官方文档&lt;/td&gt;
          &lt;td&gt;&lt;a href=&#34;https://docs.anthropic.com/en/docs/claude-code&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;docs.anthropic.com/en/docs/claude-code&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;CC Switch GitHub&lt;/td&gt;
          &lt;td&gt;&lt;a href=&#34;https://github.com/farion1231/cc-switch&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;github.com/farion1231/cc-switch&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;DeepSeek 平台&lt;/td&gt;
          &lt;td&gt;&lt;a href=&#34;https://platform.deepseek.com&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;platform.deepseek.com&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Positron IDE&lt;/td&gt;
          &lt;td&gt;&lt;a href=&#34;https://positron.posit.co&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;positron.posit.co&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Node.js 下载&lt;/td&gt;
          &lt;td&gt;&lt;a href=&#34;https://nodejs.org&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;nodejs.org&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;

      </description>
    </item>
    
    <item>
      <title>利用pheatmap制作热图</title>
      <link>https://www.songxue-j.com/zh-cn/blog/ade_heatmap/heatmap/</link>
      <pubDate>Wed, 26 Feb 2025 00:00:00 +0000</pubDate>
      
      <guid>https://www.songxue-j.com/zh-cn/blog/ade_heatmap/heatmap/</guid>
      <description>
        
        
        &lt;p&gt;这篇文章描述了如何合并来自不同实验的多个值以创建热图的方法。&lt;/p&gt;
&lt;p&gt;以下步骤展示了如何从 Excel 文件中读取数据，将其合并并用于制作美观的热图。&lt;/p&gt;
&lt;h2&gt;准备 R 包&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;准备-r-包&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#%e5%87%86%e5%a4%87-r-%e5%8c%85&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;需要以下 R 包：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;readxl&lt;/strong&gt; 和 &lt;strong&gt;writexl&lt;/strong&gt; 用于输入/输出数据&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;dplyr&lt;/strong&gt; 和 &lt;strong&gt;scales&lt;/strong&gt; 用于处理数据&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;pheatmap&lt;/strong&gt;、&lt;strong&gt;ggplot2&lt;/strong&gt; 和 &lt;strong&gt;tidyverse&lt;/strong&gt; 用于绘图&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&#34;hextra-code-block hx-relative hx-mt-6 first:hx-mt-0 hx-group/code&#34;&gt;

&lt;div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nf&#34;&gt;library&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;readxl&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nf&#34;&gt;library&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;writexl&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nf&#34;&gt;library&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;scales&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nf&#34;&gt;library&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;pheatmap&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nf&#34;&gt;library&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;ggplot2&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nf&#34;&gt;library&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;tidyverse&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;hextra-code-copy-btn-container hx-opacity-0 hx-transition group-hover/code:hx-opacity-100 hx-flex hx-gap-1 hx-absolute hx-m-[11px] hx-right-0 hx-top-0&#34;&gt;
  &lt;button
    class=&#34;hextra-code-copy-btn hx-group/copybtn hx-transition-all active:hx-opacity-50 hx-bg-primary-700/5 hx-border hx-border-black/5 hx-text-gray-600 hover:hx-text-gray-900 hx-rounded-md hx-p-1.5 dark:hx-bg-primary-300/10 dark:hx-border-white/10 dark:hx-text-gray-400 dark:hover:hx-text-gray-50&#34;
    title=&#34;Copy code&#34;
  &gt;
    &lt;div class=&#34;copy-icon group-[.copied]/copybtn:hx-hidden hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
    &lt;div class=&#34;success-icon hx-hidden group-[.copied]/copybtn:hx-block hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
  &lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h2&gt;数据处理&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;数据处理&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#%e6%95%b0%e6%8d%ae%e5%a4%84%e7%90%86&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;h3&gt;设置输入文件或文件夹路径&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;设置输入文件或文件夹路径&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#%e8%ae%be%e7%bd%ae%e8%be%93%e5%85%a5%e6%96%87%e4%bb%b6%e6%88%96%e6%96%87%e4%bb%b6%e5%a4%b9%e8%b7%af%e5%be%84&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;div class=&#34;hextra-code-block hx-relative hx-mt-6 first:hx-mt-0 hx-group/code&#34;&gt;

&lt;div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;input_file_path&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;&amp;#34;./serum_dataset/vaccine serum samples-wt delta omi.xlsx&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;input_folder_path&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;&amp;#34;./serum_dataset&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 替换为您的文件或文件夹路径&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;hextra-code-copy-btn-container hx-opacity-0 hx-transition group-hover/code:hx-opacity-100 hx-flex hx-gap-1 hx-absolute hx-m-[11px] hx-right-0 hx-top-0&#34;&gt;
  &lt;button
    class=&#34;hextra-code-copy-btn hx-group/copybtn hx-transition-all active:hx-opacity-50 hx-bg-primary-700/5 hx-border hx-border-black/5 hx-text-gray-600 hover:hx-text-gray-900 hx-rounded-md hx-p-1.5 dark:hx-bg-primary-300/10 dark:hx-border-white/10 dark:hx-text-gray-400 dark:hover:hx-text-gray-50&#34;
    title=&#34;Copy code&#34;
  &gt;
    &lt;div class=&#34;copy-icon group-[.copied]/copybtn:hx-hidden hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
    &lt;div class=&#34;success-icon hx-hidden group-[.copied]/copybtn:hx-block hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
  &lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;通常，我会将图表导出到与输入文件相同的文件夹中：&lt;/p&gt;
&lt;div class=&#34;hextra-code-block hx-relative hx-mt-6 first:hx-mt-0 hx-group/code&#34;&gt;

&lt;div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;outputpath&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;paste0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;dirname&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;input_file_path&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;),&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;\\heatmap.pdf&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;hextra-code-copy-btn-container hx-opacity-0 hx-transition group-hover/code:hx-opacity-100 hx-flex hx-gap-1 hx-absolute hx-m-[11px] hx-right-0 hx-top-0&#34;&gt;
  &lt;button
    class=&#34;hextra-code-copy-btn hx-group/copybtn hx-transition-all active:hx-opacity-50 hx-bg-primary-700/5 hx-border hx-border-black/5 hx-text-gray-600 hover:hx-text-gray-900 hx-rounded-md hx-p-1.5 dark:hx-bg-primary-300/10 dark:hx-border-white/10 dark:hx-text-gray-400 dark:hover:hx-text-gray-50&#34;
    title=&#34;Copy code&#34;
  &gt;
    &lt;div class=&#34;copy-icon group-[.copied]/copybtn:hx-hidden hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
    &lt;div class=&#34;success-icon hx-hidden group-[.copied]/copybtn:hx-block hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
  &lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;此 &lt;code&gt;outputpath&lt;/code&gt; 将命名为 &lt;strong&gt;&amp;ldquo;heatmap.pdf&amp;rdquo;&lt;/strong&gt;，并保存在与输入文件相同的文件夹中：&lt;/p&gt;
&lt;div class=&#34;hextra-code-block hx-relative hx-mt-6 first:hx-mt-0 hx-group/code&#34;&gt;

&lt;pre&gt;&lt;code&gt;[1] &amp;#34;./serum_dataset\\heatmap.pdf&amp;#34;&lt;/code&gt;&lt;/pre&gt;&lt;div class=&#34;hextra-code-copy-btn-container hx-opacity-0 hx-transition group-hover/code:hx-opacity-100 hx-flex hx-gap-1 hx-absolute hx-m-[11px] hx-right-0 hx-top-0&#34;&gt;
  &lt;button
    class=&#34;hextra-code-copy-btn hx-group/copybtn hx-transition-all active:hx-opacity-50 hx-bg-primary-700/5 hx-border hx-border-black/5 hx-text-gray-600 hover:hx-text-gray-900 hx-rounded-md hx-p-1.5 dark:hx-bg-primary-300/10 dark:hx-border-white/10 dark:hx-text-gray-400 dark:hover:hx-text-gray-50&#34;
    title=&#34;Copy code&#34;
  &gt;
    &lt;div class=&#34;copy-icon group-[.copied]/copybtn:hx-hidden hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
    &lt;div class=&#34;success-icon hx-hidden group-[.copied]/copybtn:hx-block hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
  &lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;如果选择文件夹路径作为输入，则 &lt;code&gt;outputpath&lt;/code&gt; 应与 &lt;code&gt;input_folder_path&lt;/code&gt; 相同：&lt;/p&gt;
&lt;div class=&#34;hextra-code-block hx-relative hx-mt-6 first:hx-mt-0 hx-group/code&#34;&gt;

&lt;div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;outputpath&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;input_folder_path&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;outputpath&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;hextra-code-copy-btn-container hx-opacity-0 hx-transition group-hover/code:hx-opacity-100 hx-flex hx-gap-1 hx-absolute hx-m-[11px] hx-right-0 hx-top-0&#34;&gt;
  &lt;button
    class=&#34;hextra-code-copy-btn hx-group/copybtn hx-transition-all active:hx-opacity-50 hx-bg-primary-700/5 hx-border hx-border-black/5 hx-text-gray-600 hover:hx-text-gray-900 hx-rounded-md hx-p-1.5 dark:hx-bg-primary-300/10 dark:hx-border-white/10 dark:hx-text-gray-400 dark:hover:hx-text-gray-50&#34;
    title=&#34;Copy code&#34;
  &gt;
    &lt;div class=&#34;copy-icon group-[.copied]/copybtn:hx-hidden hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
    &lt;div class=&#34;success-icon hx-hidden group-[.copied]/copybtn:hx-block hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
  &lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h3&gt;读取数据&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;读取数据&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#%e8%af%bb%e5%8f%96%e6%95%b0%e6%8d%ae&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;确保您的 Excel 文件中的数据格式如下所示：&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th style=&#34;text-align: center&#34;&gt;sample&lt;/th&gt;
          &lt;th style=&#34;text-align: center&#34;&gt;WT-1&lt;/th&gt;
          &lt;th style=&#34;text-align: center&#34;&gt;WT-2&lt;/th&gt;
          &lt;th style=&#34;text-align: center&#34;&gt;WT-3&lt;/th&gt;
          &lt;th style=&#34;text-align: center&#34;&gt;WT-4&lt;/th&gt;
          &lt;th style=&#34;text-align: center&#34;&gt;WT-5&lt;/th&gt;
          &lt;th style=&#34;text-align: center&#34;&gt;WT-6&lt;/th&gt;
          &lt;th style=&#34;text-align: center&#34;&gt;WT-7&lt;/th&gt;
          &lt;th style=&#34;text-align: center&#34;&gt;WT-8&lt;/th&gt;
          &lt;th style=&#34;text-align: center&#34;&gt;WT-9&lt;/th&gt;
          &lt;th style=&#34;text-align: center&#34;&gt;Delta-1&lt;/th&gt;
          &lt;th style=&#34;text-align: center&#34;&gt;Delta-2&lt;/th&gt;
          &lt;th style=&#34;text-align: center&#34;&gt;Delta-3&lt;/th&gt;
          &lt;th style=&#34;text-align: center&#34;&gt;Delta-4&lt;/th&gt;
          &lt;th style=&#34;text-align: center&#34;&gt;Delta-5&lt;/th&gt;
          &lt;th style=&#34;text-align: center&#34;&gt;Delta-6&lt;/th&gt;
          &lt;th style=&#34;text-align: center&#34;&gt;Delta-7&lt;/th&gt;
          &lt;th style=&#34;text-align: center&#34;&gt;Delta-8&lt;/th&gt;
          &lt;th style=&#34;text-align: center&#34;&gt;Delta-9&lt;/th&gt;
          &lt;th style=&#34;text-align: center&#34;&gt;Omicron-1&lt;/th&gt;
          &lt;th style=&#34;text-align: center&#34;&gt;Omicron-2&lt;/th&gt;
          &lt;th style=&#34;text-align: center&#34;&gt;Omicron-3&lt;/th&gt;
          &lt;th style=&#34;text-align: center&#34;&gt;Omicron-4&lt;/th&gt;
          &lt;th style=&#34;text-align: center&#34;&gt;Omicron-5&lt;/th&gt;
          &lt;th style=&#34;text-align: center&#34;&gt;Omicron-6&lt;/th&gt;
          &lt;th style=&#34;text-align: center&#34;&gt;Omicron-7&lt;/th&gt;
          &lt;th style=&#34;text-align: center&#34;&gt;Omicron-8&lt;/th&gt;
          &lt;th style=&#34;text-align: center&#34;&gt;Omicron-9&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;249&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;3490&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;3566&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;3701&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;3823&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;3796&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;3779&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;4106&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;6278&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;11691&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;2318&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;2265&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;2270&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;2361&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;2399&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;2625&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;4045&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;19085&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;42810&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;2688&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;2691&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;2608&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;2743&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;2742&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;2697&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;2756&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;3168&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;10036&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;NA&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;3236&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;3265&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;3310&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;3453&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;3100&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;2996&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;3179&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;10101&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;17397&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;2160&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;2154&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;2158&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;2899&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;2047&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;2424&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;6343&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;10983&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;41618&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;2550&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;2473&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;2521&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;2474&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;2317&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;2331&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;2356&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;3451&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;7322&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;230&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;2384&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;2528&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;2675&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;2620&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;2673&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;2764&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;4490&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;10318&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;18427&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;1879&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;2515&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;1857&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;1938&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;2726&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;4257&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;12521&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;23052&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;57013&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;2255&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;2264&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;2126&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;2276&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;2062&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;2187&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;2262&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;2363&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;5507&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;NA&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;2394&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;2296&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;2315&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;2243&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;2376&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;3073&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;5018&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;14496&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;18438&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;1852&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;1869&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;1849&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;1792&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;1907&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;4469&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;16023&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;23121&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;29738&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;2121&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;2088&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;2464&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;2183&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;2036&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;1983&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;1931&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;2320&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;4665&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;244&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;1958&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;1936&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;2026&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;2005&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;1976&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;2474&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;2137&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;4656&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;11394&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;1698&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;2007&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;1678&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;1796&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;1647&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;1795&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;3571&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;9030&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;30330&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;2038&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;1889&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;2044&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;1917&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;1911&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;2243&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;2243&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;2969&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;6628&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;NA&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;1832&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;1921&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;1920&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;1790&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;1854&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;1996&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;2062&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;3999&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;10572&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;1703&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;1662&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;1543&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;1523&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;1683&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;3228&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;3715&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;7058&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;20046&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;1858&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;1881&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;1799&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;1760&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;1749&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;1736&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;1984&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;2797&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;8719&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;Sample&lt;/strong&gt; 列将用作合并数据的关键列。&lt;br&gt;
如果您的数据格式与上述示例匹配，可以通过以下命令读取数据：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;如果您的数据存储在不同的 Excel 文件中，并且每个文件仅包含 &lt;strong&gt;一个&lt;/strong&gt; 工作表：&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&#34;hextra-code-block hx-relative hx-mt-6 first:hx-mt-0 hx-group/code&#34;&gt;

&lt;div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;file_names&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;lt;-&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;list.files&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;input_folder_path&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;pattern&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;&amp;#34;\\.xlsx$|\\.xls$&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;full.names&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;TRUE&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;merged.data&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;list&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kr&#34;&gt;for&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;i&lt;/span&gt; &lt;span class=&#34;kr&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;m&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;length&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;file_names&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;))&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;c1&#34;&gt;# 读取 Excel 文件中的数据&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;data&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;lt;-&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;read_excel&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;file_names[i]&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nf&#34;&gt;colnames&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;data&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;[1]&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;&amp;#34;sample&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;c1&#34;&gt;# 合并数据&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;merged.data[[i]]&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;data&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;merged_df&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;merged.data[[1]]&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;hextra-code-copy-btn-container hx-opacity-0 hx-transition group-hover/code:hx-opacity-100 hx-flex hx-gap-1 hx-absolute hx-m-[11px] hx-right-0 hx-top-0&#34;&gt;
  &lt;button
    class=&#34;hextra-code-copy-btn hx-group/copybtn hx-transition-all active:hx-opacity-50 hx-bg-primary-700/5 hx-border hx-border-black/5 hx-text-gray-600 hover:hx-text-gray-900 hx-rounded-md hx-p-1.5 dark:hx-bg-primary-300/10 dark:hx-border-white/10 dark:hx-text-gray-400 dark:hover:hx-text-gray-50&#34;
    title=&#34;Copy code&#34;
  &gt;
    &lt;div class=&#34;copy-icon group-[.copied]/copybtn:hx-hidden hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
    &lt;div class=&#34;success-icon hx-hidden group-[.copied]/copybtn:hx-block hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
  &lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;让我们看一下输出的 &lt;code&gt;merged_df&lt;/code&gt;：&lt;/p&gt;
&lt;p&gt;这是一个数据框：&lt;/p&gt;
&lt;div class=&#34;hextra-code-block hx-relative hx-mt-6 first:hx-mt-0 hx-group/code&#34;&gt;

&lt;div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nf&#34;&gt;class&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;merged_df&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;[1]&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;&amp;#34;tbl_df&amp;#34;&lt;/span&gt;     &lt;span class=&#34;s&#34;&gt;&amp;#34;tbl&amp;#34;&lt;/span&gt;        &lt;span class=&#34;s&#34;&gt;&amp;#34;data.frame&amp;#34;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;hextra-code-copy-btn-container hx-opacity-0 hx-transition group-hover/code:hx-opacity-100 hx-flex hx-gap-1 hx-absolute hx-m-[11px] hx-right-0 hx-top-0&#34;&gt;
  &lt;button
    class=&#34;hextra-code-copy-btn hx-group/copybtn hx-transition-all active:hx-opacity-50 hx-bg-primary-700/5 hx-border hx-border-black/5 hx-text-gray-600 hover:hx-text-gray-900 hx-rounded-md hx-p-1.5 dark:hx-bg-primary-300/10 dark:hx-border-white/10 dark:hx-text-gray-400 dark:hover:hx-text-gray-50&#34;
    title=&#34;Copy code&#34;
  &gt;
    &lt;div class=&#34;copy-icon group-[.copied]/copybtn:hx-hidden hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
    &lt;div class=&#34;success-icon hx-hidden group-[.copied]/copybtn:hx-block hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
  &lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h3&gt;数据处理&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;数据处理-1&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#%e6%95%b0%e6%8d%ae%e5%a4%84%e7%90%86-1&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;此 &lt;code&gt;merged_df&lt;/code&gt; 将作为输入进行进一步处理，包括 &lt;strong&gt;合并批次&lt;/strong&gt;、&lt;strong&gt;去除 &lt;code&gt;NA&lt;/code&gt; 值&lt;/strong&gt; 和 &lt;strong&gt;标准化&lt;/strong&gt;。&lt;/p&gt;
&lt;h4&gt;&lt;strong&gt;合并批次&lt;/strong&gt; 和 &lt;strong&gt;去除 &lt;code&gt;NA&lt;/code&gt; 值&lt;/strong&gt;&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;合并批次-和-去除-na-值&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#%e5%90%88%e5%b9%b6%e6%89%b9%e6%ac%a1-%e5%92%8c-%e5%8e%bb%e9%99%a4-na-%e5%80%bc&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h4&gt;&lt;div class=&#34;hextra-code-block hx-relative hx-mt-6 first:hx-mt-0 hx-group/code&#34;&gt;

&lt;pre&gt;&lt;code&gt; [1] &amp;#34;sample&amp;#34;    &amp;#34;WT-1&amp;#34;      &amp;#34;WT-2&amp;#34;      &amp;#34;WT-3&amp;#34;      &amp;#34;WT-4&amp;#34;      &amp;#34;WT-5&amp;#34;     
 [7] &amp;#34;WT-6&amp;#34;      &amp;#34;WT-7&amp;#34;      &amp;#34;WT-8&amp;#34;      &amp;#34;WT-9&amp;#34;      &amp;#34;Delta-1&amp;#34;   &amp;#34;Delta-2&amp;#34;  
[13] &amp;#34;Delta-3&amp;#34;   &amp;#34;Delta-4&amp;#34;   &amp;#34;Delta-5&amp;#34;   &amp;#34;Delta-6&amp;#34;   &amp;#34;Delta-7&amp;#34;   &amp;#34;Delta-8&amp;#34;  
[19] &amp;#34;Delta-9&amp;#34;   &amp;#34;Omicron-1&amp;#34; &amp;#34;Omicron-2&amp;#34; &amp;#34;Omicron-3&amp;#34; &amp;#34;Omicron-4&amp;#34; &amp;#34;Omicron-5&amp;#34;
[25] &amp;#34;Omicron-6&amp;#34; &amp;#34;Omicron-7&amp;#34; &amp;#34;Omicron-8&amp;#34; &amp;#34;Omicron-9&amp;#34;&lt;/code&gt;&lt;/pre&gt;&lt;div class=&#34;hextra-code-copy-btn-container hx-opacity-0 hx-transition group-hover/code:hx-opacity-100 hx-flex hx-gap-1 hx-absolute hx-m-[11px] hx-right-0 hx-top-0&#34;&gt;
  &lt;button
    class=&#34;hextra-code-copy-btn hx-group/copybtn hx-transition-all active:hx-opacity-50 hx-bg-primary-700/5 hx-border hx-border-black/5 hx-text-gray-600 hover:hx-text-gray-900 hx-rounded-md hx-p-1.5 dark:hx-bg-primary-300/10 dark:hx-border-white/10 dark:hx-text-gray-400 dark:hover:hx-text-gray-50&#34;
    title=&#34;Copy code&#34;
  &gt;
    &lt;div class=&#34;copy-icon group-[.copied]/copybtn:hx-hidden hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
    &lt;div class=&#34;success-icon hx-hidden group-[.copied]/copybtn:hx-block hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
  &lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h4&gt;使用 Z-score 进行标准化&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;使用-z-score-进行标准化&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#%e4%bd%bf%e7%94%a8-z-score-%e8%bf%9b%e8%a1%8c%e6%a0%87%e5%87%86%e5%8c%96&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h4&gt;&lt;p&gt;Z-score通常用于标准化。&lt;a href=&#34;https://zhuanlan.zhihu.com/p/69074703&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;这里&lt;/a&gt;是其定义的详细解释。简单来说，我们使用公式 &lt;strong&gt;(x-μ)/σ&lt;/strong&gt; 分别计算 &lt;strong&gt;Binding&lt;/strong&gt;、&lt;strong&gt;Neutralization&lt;/strong&gt;、&lt;strong&gt;ADE&lt;/strong&gt; 和 &lt;strong&gt;Competition ELISA&lt;/strong&gt; 实验的 Z-score。&lt;/p&gt;
&lt;div class=&#34;hextra-code-block hx-relative hx-mt-6 first:hx-mt-0 hx-group/code&#34;&gt;

&lt;div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;output.data&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;merged_df&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;%&amp;gt;%&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;na.omit&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nf&#34;&gt;rownames&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;output.data&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;output.data&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;$&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;sample&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;output.data&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;$&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;sample&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;NULL&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;hextra-code-copy-btn-container hx-opacity-0 hx-transition group-hover/code:hx-opacity-100 hx-flex hx-gap-1 hx-absolute hx-m-[11px] hx-right-0 hx-top-0&#34;&gt;
  &lt;button
    class=&#34;hextra-code-copy-btn hx-group/copybtn hx-transition-all active:hx-opacity-50 hx-bg-primary-700/5 hx-border hx-border-black/5 hx-text-gray-600 hover:hx-text-gray-900 hx-rounded-md hx-p-1.5 dark:hx-bg-primary-300/10 dark:hx-border-white/10 dark:hx-text-gray-400 dark:hover:hx-text-gray-50&#34;
    title=&#34;Copy code&#34;
  &gt;
    &lt;div class=&#34;copy-icon group-[.copied]/copybtn:hx-hidden hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
    &lt;div class=&#34;success-icon hx-hidden group-[.copied]/copybtn:hx-block hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
  &lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;查看 &lt;code&gt;output.data&lt;/code&gt;：&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th style=&#34;text-align: center&#34;&gt;WT-1&lt;/th&gt;
          &lt;th style=&#34;text-align: center&#34;&gt;WT-2&lt;/th&gt;
          &lt;th style=&#34;text-align: center&#34;&gt;WT-3&lt;/th&gt;
          &lt;th style=&#34;text-align: center&#34;&gt;WT-4&lt;/th&gt;
          &lt;th style=&#34;text-align: center&#34;&gt;WT-5&lt;/th&gt;
          &lt;th style=&#34;text-align: center&#34;&gt;WT-6&lt;/th&gt;
          &lt;th style=&#34;text-align: center&#34;&gt;WT-7&lt;/th&gt;
          &lt;th style=&#34;text-align: center&#34;&gt;WT-8&lt;/th&gt;
          &lt;th style=&#34;text-align: center&#34;&gt;WT-9&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;3490&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;3566&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;3701&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;3823&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;3796&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;3779&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;4106&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;6278&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;11691&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;2384&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;2528&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;2675&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;2620&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;2673&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;2764&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;4490&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;10318&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;18427&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;hr&gt;
&lt;h2&gt;创建热图&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;创建热图&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#%e5%88%9b%e5%bb%ba%e7%83%ad%e5%9b%be&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;现在您已经准备好数据来制作热图，但仍需完成一些设置。&lt;/p&gt;
&lt;h3&gt;注释列和行&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;注释列和行&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#%e6%b3%a8%e9%87%8a%e5%88%97%e5%92%8c%e8%a1%8c&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;注意，列注释必须与 &lt;code&gt;output.data&lt;/code&gt; 中的顺序匹配。&lt;br&gt;
因此，您可能需要仔细检查 &lt;code&gt;output.data&lt;/code&gt; 的排列方式：&lt;/p&gt;
&lt;div class=&#34;hextra-code-block hx-relative hx-mt-6 first:hx-mt-0 hx-group/code&#34;&gt;

&lt;div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nf&#34;&gt;colnames&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;output.data&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt; &lt;span class=&#34;n&#34;&gt;[1]&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;&amp;#34;WT-1&amp;#34;&lt;/span&gt;      &lt;span class=&#34;s&#34;&gt;&amp;#34;WT-2&amp;#34;&lt;/span&gt;      &lt;span class=&#34;s&#34;&gt;&amp;#34;WT-3&amp;#34;&lt;/span&gt;      &lt;span class=&#34;s&#34;&gt;&amp;#34;WT-4&amp;#34;&lt;/span&gt;      &lt;span class=&#34;s&#34;&gt;&amp;#34;WT-5&amp;#34;&lt;/span&gt;      &lt;span class=&#34;s&#34;&gt;&amp;#34;WT-6&amp;#34;&lt;/span&gt;     
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt; &lt;span class=&#34;n&#34;&gt;[7]&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;&amp;#34;WT-7&amp;#34;&lt;/span&gt;      &lt;span class=&#34;s&#34;&gt;&amp;#34;WT-8&amp;#34;&lt;/span&gt;      &lt;span class=&#34;s&#34;&gt;&amp;#34;WT-9&amp;#34;&lt;/span&gt;      &lt;span class=&#34;s&#34;&gt;&amp;#34;Delta-1&amp;#34;&lt;/span&gt;   &lt;span class=&#34;s&#34;&gt;&amp;#34;Delta-2&amp;#34;&lt;/span&gt;   &lt;span class=&#34;s&#34;&gt;&amp;#34;Delta-3&amp;#34;&lt;/span&gt;  
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;[13]&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;&amp;#34;Delta-4&amp;#34;&lt;/span&gt;   &lt;span class=&#34;s&#34;&gt;&amp;#34;Delta-5&amp;#34;&lt;/span&gt;   &lt;span class=&#34;s&#34;&gt;&amp;#34;Delta-6&amp;#34;&lt;/span&gt;   &lt;span class=&#34;s&#34;&gt;&amp;#34;Delta-7&amp;#34;&lt;/span&gt;   &lt;span class=&#34;s&#34;&gt;&amp;#34;Delta-8&amp;#34;&lt;/span&gt;   &lt;span class=&#34;s&#34;&gt;&amp;#34;Delta-9&amp;#34;&lt;/span&gt;  
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;[19]&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;&amp;#34;Omicron-1&amp;#34;&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;&amp;#34;Omicron-2&amp;#34;&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;&amp;#34;Omicron-3&amp;#34;&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;&amp;#34;Omicron-4&amp;#34;&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;&amp;#34;Omicron-5&amp;#34;&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;&amp;#34;Omicron-6&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;[25]&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;&amp;#34;Omicron-7&amp;#34;&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;&amp;#34;Omicron-8&amp;#34;&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;&amp;#34;Omicron-9&amp;#34;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;hextra-code-copy-btn-container hx-opacity-0 hx-transition group-hover/code:hx-opacity-100 hx-flex hx-gap-1 hx-absolute hx-m-[11px] hx-right-0 hx-top-0&#34;&gt;
  &lt;button
    class=&#34;hextra-code-copy-btn hx-group/copybtn hx-transition-all active:hx-opacity-50 hx-bg-primary-700/5 hx-border hx-border-black/5 hx-text-gray-600 hover:hx-text-gray-900 hx-rounded-md hx-p-1.5 dark:hx-bg-primary-300/10 dark:hx-border-white/10 dark:hx-text-gray-400 dark:hover:hx-text-gray-50&#34;
    title=&#34;Copy code&#34;
  &gt;
    &lt;div class=&#34;copy-icon group-[.copied]/copybtn:hx-hidden hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
    &lt;div class=&#34;success-icon hx-hidden group-[.copied]/copybtn:hx-block hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
  &lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;现在，您可以按照以下命令设置注释：&lt;/p&gt;
&lt;div class=&#34;hextra-code-block hx-relative hx-mt-6 first:hx-mt-0 hx-group/code&#34;&gt;

&lt;div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;n&#34;&gt;annotation_col&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;data.frame&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Datatype&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;factor&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;rep&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;c&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;WT&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;Delta&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;omi&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;),&lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;c&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;9&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;9&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;9&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;))))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nf&#34;&gt;rownames&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;annotation_col&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;colnames&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;output.data&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;n&#34;&gt;ann_colors&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;list&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Datatype&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;c&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;WT&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;#3567E5&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Delta&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;#B0E65E&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;omi&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;#91726B&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;))&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;hextra-code-copy-btn-container hx-opacity-0 hx-transition group-hover/code:hx-opacity-100 hx-flex hx-gap-1 hx-absolute hx-m-[11px] hx-right-0 hx-top-0&#34;&gt;
  &lt;button
    class=&#34;hextra-code-copy-btn hx-group/copybtn hx-transition-all active:hx-opacity-50 hx-bg-primary-700/5 hx-border hx-border-black/5 hx-text-gray-600 hover:hx-text-gray-900 hx-rounded-md hx-p-1.5 dark:hx-bg-primary-300/10 dark:hx-border-white/10 dark:hx-text-gray-400 dark:hover:hx-text-gray-50&#34;
    title=&#34;Copy code&#34;
  &gt;
    &lt;div class=&#34;copy-icon group-[.copied]/copybtn:hx-hidden hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
    &lt;div class=&#34;success-icon hx-hidden group-[.copied]/copybtn:hx-block hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
  &lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h3&gt;设置图例分段&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;设置图例分段&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#%e8%ae%be%e7%bd%ae%e5%9b%be%e4%be%8b%e5%88%86%e6%ae%b5&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;&lt;code&gt;break&lt;/code&gt; 参数对热图的输出格式非常重要，因为它决定了数据在特定范围内的代表颜色。这里我们使用一个 &lt;code&gt;bk&lt;/code&gt; 因子来设置它。&lt;/p&gt;
&lt;div class=&#34;hextra-code-block hx-relative hx-mt-6 first:hx-mt-0 hx-group/code&#34;&gt;

&lt;div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt; &lt;span class=&#34;n&#34;&gt;bk&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;seq&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;-2&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;5&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;by&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;m&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;hextra-code-copy-btn-container hx-opacity-0 hx-transition group-hover/code:hx-opacity-100 hx-flex hx-gap-1 hx-absolute hx-m-[11px] hx-right-0 hx-top-0&#34;&gt;
  &lt;button
    class=&#34;hextra-code-copy-btn hx-group/copybtn hx-transition-all active:hx-opacity-50 hx-bg-primary-700/5 hx-border hx-border-black/5 hx-text-gray-600 hover:hx-text-gray-900 hx-rounded-md hx-p-1.5 dark:hx-bg-primary-300/10 dark:hx-border-white/10 dark:hx-text-gray-400 dark:hover:hx-text-gray-50&#34;
    title=&#34;Copy code&#34;
  &gt;
    &lt;div class=&#34;copy-icon group-[.copied]/copybtn:hx-hidden hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
    &lt;div class=&#34;success-icon hx-hidden group-[.copied]/copybtn:hx-block hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
  &lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h3&gt;绘制热图&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;绘制热图&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#%e7%bb%98%e5%88%b6%e7%83%ad%e5%9b%be&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;最后，我们到达了这一步：&lt;/p&gt;
&lt;div class=&#34;hextra-code-block hx-relative hx-mt-6 first:hx-mt-0 hx-group/code&#34;&gt;

&lt;div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt; &lt;span class=&#34;c1&#34;&gt;# 热图&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;n&#34;&gt;p1&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;lt;-&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;pheatmap&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;output.data&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;  &lt;span class=&#34;c1&#34;&gt;# 您准备好的数据&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                 &lt;span class=&#34;n&#34;&gt;color&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;c&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;colorRampPalette&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;c&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#39;#C6DAF1&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#39;white&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#39;red&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;),&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;bias&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;m&#34;&gt;1.7&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)(&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;6&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)),&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                 &lt;span class=&#34;c1&#34;&gt;# 设置颜色，这里我在浅蓝色和红色之间设置了 6 种颜色&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                 &lt;span class=&#34;n&#34;&gt;border_color&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;&amp;#34;black&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;  &lt;span class=&#34;c1&#34;&gt;# 设置边框颜色，NA 表示无边框&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                 &lt;span class=&#34;n&#34;&gt;scale&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;&amp;#34;none&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                 &lt;span class=&#34;c1&#34;&gt;# &amp;#34;column&amp;#34; 表示对每列进行 Z-score 标准化，&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                 &lt;span class=&#34;c1&#34;&gt;# &amp;#34;row&amp;#34; 表示对每行进行 Z-score 标准化，&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                 &lt;span class=&#34;c1&#34;&gt;# &amp;#34;none&amp;#34; 表示不进行标准化，&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                 &lt;span class=&#34;c1&#34;&gt;# 我们选择 &amp;#34;none&amp;#34;，因为之前已经完成了标准化。&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                 &lt;span class=&#34;n&#34;&gt;cluster_rows&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;TRUE&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;c1&#34;&gt;# 是否按行聚类&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                 &lt;span class=&#34;n&#34;&gt;cluster_cols&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;FALSE&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;c1&#34;&gt;# 是否按列聚类&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                 &lt;span class=&#34;n&#34;&gt;legend&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;TRUE&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;c1&#34;&gt;# 是否显示图例&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                 &lt;span class=&#34;n&#34;&gt;breaks&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;bk&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;c1&#34;&gt;# 设置分段&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                 &lt;span class=&#34;n&#34;&gt;legend_breaks&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;c&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;-2&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;5&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;),&lt;/span&gt; &lt;span class=&#34;c1&#34;&gt;# 设置图例分段&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                 &lt;span class=&#34;n&#34;&gt;legend_labels&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;c&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;-2&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;5&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;),&lt;/span&gt; &lt;span class=&#34;c1&#34;&gt;# 设置图例分段的标签&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                 &lt;span class=&#34;n&#34;&gt;show_rownames&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;FALSE&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                 &lt;span class=&#34;n&#34;&gt;show_colnames&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;FALSE&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                 &lt;span class=&#34;n&#34;&gt;display_numbers&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;FALSE&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                 &lt;span class=&#34;n&#34;&gt;fontsize&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;m&#34;&gt;10&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;c1&#34;&gt;# 设置字体大小&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                 &lt;span class=&#34;n&#34;&gt;annotation_col&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;annotation_col&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                 &lt;span class=&#34;n&#34;&gt;annotation_colors&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;ann_colors&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                 &lt;span class=&#34;n&#34;&gt;angle_col&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;m&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                 &lt;span class=&#34;n&#34;&gt;cutree_rows&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;4&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;c1&#34;&gt;# 按聚类结果分割热图&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;hextra-code-copy-btn-container hx-opacity-0 hx-transition group-hover/code:hx-opacity-100 hx-flex hx-gap-1 hx-absolute hx-m-[11px] hx-right-0 hx-top-0&#34;&gt;
  &lt;button
    class=&#34;hextra-code-copy-btn hx-group/copybtn hx-transition-all active:hx-opacity-50 hx-bg-primary-700/5 hx-border hx-border-black/5 hx-text-gray-600 hover:hx-text-gray-900 hx-rounded-md hx-p-1.5 dark:hx-bg-primary-300/10 dark:hx-border-white/10 dark:hx-text-gray-400 dark:hover:hx-text-gray-50&#34;
    title=&#34;Copy code&#34;
  &gt;
    &lt;div class=&#34;copy-icon group-[.copied]/copybtn:hx-hidden hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
    &lt;div class=&#34;success-icon hx-hidden group-[.copied]/copybtn:hx-block hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
  &lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;img src=&#34;https://www.songxue-j.com/blog/ADE_heatmap/heatmap.zh-cn_files/figure-html/unnamed-chunk-15-1.png&#34; width=&#34;1920&#34; style=&#34;display: block; margin: auto;&#34; /&gt;
&lt;p&gt;我们完成了！现在享受您的热图吧！&lt;/p&gt;
&lt;hr&gt;
&lt;h3&gt;保存热图&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;保存热图&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#%e4%bf%9d%e5%ad%98%e7%83%ad%e5%9b%be&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;div class=&#34;hextra-code-block hx-relative hx-mt-6 first:hx-mt-0 hx-group/code&#34;&gt;

&lt;div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt; &lt;span class=&#34;nf&#34;&gt;ggsave&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;file&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;outputpath&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;plot&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;p1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;width&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;m&#34;&gt;11&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;height&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;m&#34;&gt;10&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;dpi&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;m&#34;&gt;300&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;hextra-code-copy-btn-container hx-opacity-0 hx-transition group-hover/code:hx-opacity-100 hx-flex hx-gap-1 hx-absolute hx-m-[11px] hx-right-0 hx-top-0&#34;&gt;
  &lt;button
    class=&#34;hextra-code-copy-btn hx-group/copybtn hx-transition-all active:hx-opacity-50 hx-bg-primary-700/5 hx-border hx-border-black/5 hx-text-gray-600 hover:hx-text-gray-900 hx-rounded-md hx-p-1.5 dark:hx-bg-primary-300/10 dark:hx-border-white/10 dark:hx-text-gray-400 dark:hover:hx-text-gray-50&#34;
    title=&#34;Copy code&#34;
  &gt;
    &lt;div class=&#34;copy-icon group-[.copied]/copybtn:hx-hidden hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
    &lt;div class=&#34;success-icon hx-hidden group-[.copied]/copybtn:hx-block hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
  &lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;hx-overflow-x-auto hx-mt-6 hx-flex hx-rounded-lg hx-border hx-py-2 ltr:hx-pr-4 rtl:hx-pl-4 contrast-more:hx-border-current contrast-more:dark:hx-border-current hx-border-blue-200 hx-bg-blue-100 hx-text-blue-900 dark:hx-border-blue-200/30 dark:hx-bg-blue-900/30 dark:hx-text-blue-200&#34;&gt;
  &lt;div class=&#34;ltr:hx-pl-3 ltr:hx-pr-2 rtl:hx-pr-3 rtl:hx-pl-2&#34;&gt;&lt;div class=&#34;hx-select-none hx-text-xl&#34; style=&#34;font-family: &#39;Apple Color Emoji&#39;, &#39;Segoe UI Emoji&#39;, &#39;Segoe UI Symbol&#39;;&#34;&gt;🤖&lt;/div&gt;&lt;/div&gt;

  &lt;div class=&#34;hx-w-full hx-min-w-0 hx-leading-7&#34;&gt;
    &lt;div class=&#34;hx-mt-6 hx-leading-7 first:hx-mt-0&#34;&gt;&lt;strong&gt;AI 使用声明&lt;/strong&gt;：本文由作者撰写，AI 工具（Claude）辅助完成初稿起草、中英互译与格式整理。作者已审校全部内容，并对准确性承担最终责任。&lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;
      </description>
    </item>
    
  </channel>
</rss>
