<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>测试 on 码工瑞瑞的博客</title><link>https://blog.137027.xyz/tags/%E6%B5%8B%E8%AF%95/</link><description>Recent content in 测试 on 码工瑞瑞的博客</description><generator>Hugo</generator><language>zh-cn</language><lastBuildDate>Thu, 27 Aug 2026 20:00:00 +0800</lastBuildDate><atom:link href="https://blog.137027.xyz/tags/%E6%B5%8B%E8%AF%95/index.xml" rel="self" type="application/rss+xml"/><item><title>零基础快速无脑搭建后台管理系统（第二期）：AI 帮你测试与修 Bug</title><link>https://blog.137027.xyz/posts/vibcoding-ruoyi-tutorial-2/</link><pubDate>Thu, 27 Aug 2026 20:00:00 +0800</pubDate><guid>https://blog.137027.xyz/posts/vibcoding-ruoyi-tutorial-2/</guid><description>零基础快速无脑搭建后台管理系统（第二期）：TraeCode / TraeWork 测试和 Bug 修复完整教程。</description><content:encoded><![CDATA[<h1 id="零基础快速无脑搭建后台管理系统-vibcoding_我帮你第二期">零基础快速无脑搭建后台管理系统 Vibcoding_我帮你第二期</h1>
<blockquote>
<p><strong>导读</strong>：上一篇博客教大家怎么样无脑快速搭建一个后台管理系统，这篇继续教大家怎么样使用 <strong>Trae</strong>（已更名为 <strong>TraeCode</strong>）或者 <strong>TraeWork</strong> 进行<strong>测试和 Bug 修复</strong>。全程不需要懂代码，让 AI 自己操作！</p></blockquote>
<hr>
<h2 id="一工具下载">一、工具下载</h2>
<h3 id="谷歌浏览器">谷歌浏览器</h3>
<p>网上的在线安装包都很慢，如果访问谷歌浏览器官网（https://www.google.cn/chrome）下载，安装需要等待很久。<strong>这里推荐使用离线版安装包</strong>，下载更快。</p>
<blockquote>
<p><strong>下载地址（光鸭云盘）</strong></p>
<ul>
<li>需要登录保存，无限速，登录送 2T</li>
<li>光鸭云盘用户给你分享了：「ChromeStanda…up64.exe」，点击链接或复制整段内容，打开「光鸭APP」即可获取。
链接：https://www.guangyapan.com/s/1939717744297246725_afdKmntd6DRoD0OP</li>
</ul></blockquote>
<h3 id="trae更名为-traecode和-traework-谷歌插件安装">Trae（更名为 TraeCode）和 TraeWork 谷歌插件安装</h3>
<h4 id="第一步开启外部浏览器控制">第一步：开启外部浏览器控制</h4>
<p><figure style="text-align: center; margin: 1.5rem 0">
  <img alt="开启AI控制外部浏览器设置" loading="lazy" src="/posts/vibcoding-ruoyi-tutorial-2/vibcoding%E5%8D%9A%E5%AE%A2%E6%95%99%E7%A8%8B%E7%AC%AC%E4%BA%8C%E6%9C%9F-images/chrome-extension-settings.png">
  <figcaption style="font-size: 0.85rem; color: #888; margin-top: 0.5rem">
    开启AI控制外部浏览器设置
  </figcaption>
</figure></p>
<p>点击 <strong>设置 -&gt; 左侧浏览器 -&gt; 右侧打开&quot;允许AI控制外部浏览器&quot;</strong>，然后点击 <strong>&ldquo;无法访问商店？尝试手动安装&rdquo;</strong>。</p>
<h4 id="第二步手动安装插件">第二步：手动安装插件</h4>
<p><figure style="text-align: center; margin: 1.5rem 0">
  <img alt="手动安装插件页面" loading="lazy" src="/posts/vibcoding-ruoyi-tutorial-2/vibcoding%E5%8D%9A%E5%AE%A2%E6%95%99%E7%A8%8B%E7%AC%AC%E4%BA%8C%E6%9C%9F-images/chrome-manual-install.png">
  <figcaption style="font-size: 0.85rem; color: #888; margin-top: 0.5rem">
    手动安装插件页面
  </figcaption>
</figure></p>
<p>点击<strong>下载</strong>，会马上下载完成，然后点击<strong>前往安装</strong>。在浏览器输入 <code>chrome://extensions/</code>，按照要求<strong>拖拽安装</strong>。</p>
<p><figure style="text-align: center; margin: 1.5rem 0">
  <img alt="插件拖拽安装过程" loading="lazy" src="/posts/vibcoding-ruoyi-tutorial-2/vibcoding%E5%8D%9A%E5%AE%A2%E6%95%99%E7%A8%8B%E7%AC%AC%E4%BA%8C%E6%9C%9F-images/chrome-drag-install.png">
  <figcaption style="font-size: 0.85rem; color: #888; margin-top: 0.5rem">
    插件拖拽安装过程
  </figcaption>
</figure></p>
<h4 id="第三步安装完成">第三步：安装完成</h4>
<p>安装好之后是这样，图中<strong>第一个</strong>就是 TraeCode 的插件。</p>
<p><figure style="text-align: center; margin: 1.5rem 0">
  <img alt="已安装的浏览器扩展列表" loading="lazy" src="/posts/vibcoding-ruoyi-tutorial-2/vibcoding%E5%8D%9A%E5%AE%A2%E6%95%99%E7%A8%8B%E7%AC%AC%E4%BA%8C%E6%9C%9F-images/chrome-extensions-installed.png">
  <figcaption style="font-size: 0.85rem; color: #888; margin-top: 0.5rem">
    已安装的浏览器扩展列表
  </figcaption>
</figure></p>
<blockquote>
<p><strong>提示：</strong> TraeWork 的插件安装方式与 TraeCode 完全一样，这里不再演示，搜索安装即可。</p></blockquote>
<hr>
<h2 id="二测试和-bug-修复">二、测试和 Bug 修复</h2>
<blockquote>
<p><strong>版本说明：</strong> 2026 年 8 月之后推荐使用 <strong>TraeWork</strong> 进行测试和 Bug 修复。</p></blockquote>
<h3 id="traecode-使用">TraeCode 使用</h3>
<h4 id="步骤-1配置完全访问权限">步骤 1：配置完全访问权限</h4>
<p>Trae 更新到最新版 TraeCode，点击 <strong>&ldquo;如何批准 agent 操作&quot;的设置，选择&quot;完全访问&rdquo;</strong>。</p>
<p><figure style="text-align: center; margin: 1.5rem 0">
  <img alt="TraeCode的agent操作设置" loading="lazy" src="/posts/vibcoding-ruoyi-tutorial-2/vibcoding%E5%8D%9A%E5%AE%A2%E6%95%99%E7%A8%8B%E7%AC%AC%E4%BA%8C%E6%9C%9F-images/trae-agent-settings.png">
  <figcaption style="font-size: 0.85rem; color: #888; margin-top: 0.5rem">
    TraeCode的agent操作设置
  </figcaption>
</figure></p>
<p><figure style="text-align: center; margin: 1.5rem 0">
  <img alt="选择完全访问权限" loading="lazy" src="/posts/vibcoding-ruoyi-tutorial-2/vibcoding%E5%8D%9A%E5%AE%A2%E6%95%99%E7%A8%8B%E7%AC%AC%E4%BA%8C%E6%9C%9F-images/trae-full-access.png">
  <figcaption style="font-size: 0.85rem; color: #888; margin-top: 0.5rem">
    选择完全访问权限
  </figcaption>
</figure></p>
<h4 id="步骤-2配置多模态模型">步骤 2：配置多模态模型</h4>
<p>一定要配置支持图片输入的模型，或者不配置直接选择 <strong>Auto Mode</strong>。这里配置了 <strong>Seed-Code</strong>，这个模型多模态在 Trae 里最实惠，可以使用很久。</p>
<p><figure style="text-align: center; margin: 1.5rem 0">
  <img alt="TraeCode模型配置" loading="lazy" src="/posts/vibcoding-ruoyi-tutorial-2/vibcoding%E5%8D%9A%E5%AE%A2%E6%95%99%E7%A8%8B%E7%AC%AC%E4%BA%8C%E6%9C%9F-images/trae-model-config.png">
  <figcaption style="font-size: 0.85rem; color: #888; margin-top: 0.5rem">
    TraeCode模型配置
  </figcaption>
</figure></p>
<h4 id="步骤-3输入测试提示词">步骤 3：输入测试提示词</h4>
<p>测试演示，直接输入这个提示词：</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-text" data-lang="text"><span style="display:flex;"><span>用户名称 admin  密码 admin123  登录地址 http://localhost  帮我对整个项目酒店客房管理进行一次测试，确保每一个按钮点击都有响应，使用浏览器</span></span></code></pre></div>
<p><figure style="text-align: center; margin: 1.5rem 0">
  <img alt="输入测试提示词" loading="lazy" src="/posts/vibcoding-ruoyi-tutorial-2/vibcoding%E5%8D%9A%E5%AE%A2%E6%95%99%E7%A8%8B%E7%AC%AC%E4%BA%8C%E6%9C%9F-images/trae-test-prompt.png">
  <figcaption style="font-size: 0.85rem; color: #888; margin-top: 0.5rem">
    输入测试提示词
  </figcaption>
</figure></p>
<h4 id="步骤-4修复-bug">步骤 4：修复 Bug</h4>
<p>Bug 修复同上：直接<strong>截图</strong>让 TraeCode 修复 bug 即可，修复完成之后让 Trae 使用浏览器测试，全程不需要懂代码，让 <strong>AI</strong> 自己操作。</p>
<h3 id="traework-使用">TraeWork 使用</h3>
<h4 id="步骤-1打开并选择项目">步骤 1：打开并选择项目</h4>
<p>打开软件登录后点击 <strong>Code</strong>，文件夹选择之前的 <strong>ry2</strong>（上一期项目文件夹），点击 <strong>&ldquo;如何批准 agent 操作&quot;的设置，选择&quot;完全访问&rdquo;</strong>。</p>
<p><figure style="text-align: center; margin: 1.5rem 0">
  <img alt="TraeWork登录后点击Code" loading="lazy" src="/posts/vibcoding-ruoyi-tutorial-2/vibcoding%E5%8D%9A%E5%AE%A2%E6%95%99%E7%A8%8B%E7%AC%AC%E4%BA%8C%E6%9C%9F-images/traework-login.png">
  <figcaption style="font-size: 0.85rem; color: #888; margin-top: 0.5rem">
    TraeWork登录后点击Code
  </figcaption>
</figure></p>
<p><figure style="text-align: center; margin: 1.5rem 0">
  <img alt="选择上一期项目文件夹" loading="lazy" src="/posts/vibcoding-ruoyi-tutorial-2/vibcoding%E5%8D%9A%E5%AE%A2%E6%95%99%E7%A8%8B%E7%AC%AC%E4%BA%8C%E6%9C%9F-images/traework-project-settings.png">
  <figcaption style="font-size: 0.85rem; color: #888; margin-top: 0.5rem">
    选择上一期项目文件夹
  </figcaption>
</figure></p>
<h4 id="步骤-2配置模型">步骤 2：配置模型</h4>
<p>模型配置 <strong>DeepSeek-V4-flash 正式版</strong>（最经济），思考强度选择<strong>极高</strong>，打开<strong>更大上下文 MAX</strong>。</p>
<p><figure style="text-align: center; margin: 1.5rem 0">
  <img alt="TraeWork模型配置" loading="lazy" src="/posts/vibcoding-ruoyi-tutorial-2/vibcoding%E5%8D%9A%E5%AE%A2%E6%95%99%E7%A8%8B%E7%AC%AC%E4%BA%8C%E6%9C%9F-images/traework-model-config.png">
  <figcaption style="font-size: 0.85rem; color: #888; margin-top: 0.5rem">
    TraeWork模型配置
  </figcaption>
</figure></p>
<h4 id="步骤-3让-ai-理解项目">步骤 3：让 AI 理解项目</h4>
<p>点击<strong>项目理解</strong>，然后发送，先让 TraeWork 了解整个项目。</p>
<p><figure style="text-align: center; margin: 1.5rem 0">
  <img alt="点击项目理解并发送" loading="lazy" src="/posts/vibcoding-ruoyi-tutorial-2/vibcoding%E5%8D%9A%E5%AE%A2%E6%95%99%E7%A8%8B%E7%AC%AC%E4%BA%8C%E6%9C%9F-images/traework-project-understanding.png">
  <figcaption style="font-size: 0.85rem; color: #888; margin-top: 0.5rem">
    点击项目理解并发送
  </figcaption>
</figure></p>
<h4 id="步骤-4查看测试结果">步骤 4：查看测试结果</h4>
<p>本次测试完成，任务耗时 <strong>3 分 43 秒</strong>。</p>
<p><figure style="text-align: center; margin: 1.5rem 0">
  <img alt="测试完成结果" loading="lazy" src="/posts/vibcoding-ruoyi-tutorial-2/vibcoding%E5%8D%9A%E5%AE%A2%E6%95%99%E7%A8%8B%E7%AC%AC%E4%BA%8C%E6%9C%9F-images/traework-test-complete.png">
  <figcaption style="font-size: 0.85rem; color: #888; margin-top: 0.5rem">
    测试完成结果
  </figcaption>
</figure></p>
<p>本次使用积分 <strong>10.51</strong>。</p>
<p><figure style="text-align: center; margin: 1.5rem 0">
  <img alt="积分使用情况" loading="lazy" src="/posts/vibcoding-ruoyi-tutorial-2/vibcoding%E5%8D%9A%E5%AE%A2%E6%95%99%E7%A8%8B%E7%AC%AC%E4%BA%8C%E6%9C%9F-images/traework-points-used.png">
  <figcaption style="font-size: 0.85rem; color: #888; margin-top: 0.5rem">
    积分使用情况
  </figcaption>
</figure></p>
<h4 id="步骤-5多模态浏览器测试">步骤 5：多模态浏览器测试</h4>
<p>配置多模态模型并发送提示词进行测试（&quot;/&quot; 选择 <strong>Browser</strong> 可以调用之前安装的浏览器插件，让 AI 使用浏览器），这里思考强度选择<strong>高</strong>。</p>
<p><figure style="text-align: center; margin: 1.5rem 0">
  <img alt="多模态模型配置" loading="lazy" src="/posts/vibcoding-ruoyi-tutorial-2/vibcoding%E5%8D%9A%E5%AE%A2%E6%95%99%E7%A8%8B%E7%AC%AC%E4%BA%8C%E6%9C%9F-images/traework-multimodal-config.png">
  <figcaption style="font-size: 0.85rem; color: #888; margin-top: 0.5rem">
    多模态模型配置
  </figcaption>
</figure></p>
<p><figure style="text-align: center; margin: 1.5rem 0">
  <img alt="浏览器测试过程" loading="lazy" src="/posts/vibcoding-ruoyi-tutorial-2/vibcoding%E5%8D%9A%E5%AE%A2%E6%95%99%E7%A8%8B%E7%AC%AC%E4%BA%8C%E6%9C%9F-images/traework-browser-test.png">
  <figcaption style="font-size: 0.85rem; color: #888; margin-top: 0.5rem">
    浏览器测试过程
  </figcaption>
</figure></p>
<p><figure style="text-align: center; margin: 1.5rem 0">
  <img alt="浏览器测试结果" loading="lazy" src="/posts/vibcoding-ruoyi-tutorial-2/vibcoding%E5%8D%9A%E5%AE%A2%E6%95%99%E7%A8%8B%E7%AC%AC%E4%BA%8C%E6%9C%9F-images/traework-browser-result.png">
  <figcaption style="font-size: 0.85rem; color: #888; margin-top: 0.5rem">
    浏览器测试结果
  </figcaption>
</figure></p>
<h4 id="步骤-6发现-bug-直接修复">步骤 6：发现 Bug 直接修复</h4>
<p>测试完成后如果发现 bug，直接截图让 AI 修复即可。</p>
<p><figure style="text-align: center; margin: 1.5rem 0">
  <img alt="Bug修复操作" loading="lazy" src="/posts/vibcoding-ruoyi-tutorial-2/vibcoding%E5%8D%9A%E5%AE%A2%E6%95%99%E7%A8%8B%E7%AC%AC%E4%BA%8C%E6%9C%9F-images/traework-bug-fix.png">
  <figcaption style="font-size: 0.85rem; color: #888; margin-top: 0.5rem">
    Bug修复操作
  </figcaption>
</figure></p>
<hr>
<h2 id="总结">总结</h2>
<p>通过 <strong>TraeCode</strong> 或 <strong>TraeWork</strong>，即使完全不懂代码，也能轻松完成项目的<strong>测试和 Bug 修复</strong>：</p>
<ol>
<li>配置好<strong>完全访问权限</strong>和<strong>多模态模型</strong></li>
<li>安装并启用<strong>浏览器插件</strong></li>
<li>输入测试提示词，让 AI 自动测试</li>
<li>发现 Bug 直接截图让 AI 修复</li>
</ol>
]]></content:encoded></item><item><title>博客功能全测试</title><link>https://blog.137027.xyz/posts/full-feature-test/</link><pubDate>Sun, 19 Jul 2026 20:00:00 +0800</pubDate><guid>https://blog.137027.xyz/posts/full-feature-test/</guid><description>一篇文章测试博客所有功能：Markdown 排版、代码高亮、数学公式、图表、短视频、加密内容等。</description><content:encoded><![CDATA[<h2 id="基础排版">基础排版</h2>
<h3 id="文字样式">文字样式</h3>
<p>这是一段普通文字。<strong>这是粗体</strong>，<em>这是斜体</em>，<del>这是删除线</del>，<code>这是行内代码</code>。</p>
<p>还可以使用 <strong><em>粗斜体</em></strong> 来同时强调。</p>
<h3 id="无序列表">无序列表</h3>
<ul>
<li>第一项</li>
<li>第二项
<ul>
<li>子项目 A</li>
<li>子项目 B</li>
</ul>
</li>
<li>第三项</li>
</ul>
<h3 id="有序列表">有序列表</h3>
<ol>
<li>安装 Hugo</li>
<li>创建站点</li>
<li>选择主题</li>
<li>开始写作</li>
</ol>
<h3 id="任务列表">任务列表</h3>
<ul>
<li><input checked="" disabled="" type="checkbox"> 搭建博客框架</li>
<li><input checked="" disabled="" type="checkbox"> 配置主题</li>
<li><input checked="" disabled="" type="checkbox"> 添加自定义功能</li>
<li><input disabled="" type="checkbox"> 持续更新文章</li>
</ul>
<h3 id="引用">引用</h3>
<blockquote>
<p>代码是写给人看的，附带能在机器上运行。</p>
<p>— Harold Abelson</p></blockquote>
<p>嵌套引用：</p>
<blockquote>
<p>第一层引用</p>
<blockquote>
<p>第二层嵌套引用</p>
<blockquote>
<p>第三层，兔子洞到底有多深？</p></blockquote></blockquote></blockquote>
<h3 id="分割线">分割线</h3>
<hr>
<h2 id="代码高亮">代码高亮</h2>
<h3 id="普通代码块">普通代码块</h3>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-python" data-lang="python"><span style="display:flex;"><span><span style="color:#66d9ef">def</span> <span style="color:#a6e22e">fibonacci</span>(n: int) <span style="color:#f92672">-&gt;</span> list[int]:
</span></span><span style="display:flex;"><span>    <span style="color:#e6db74">&#34;&#34;&#34;生成斐波那契数列&#34;&#34;&#34;</span>
</span></span><span style="display:flex;"><span>    fib <span style="color:#f92672">=</span> [<span style="color:#ae81ff">0</span>, <span style="color:#ae81ff">1</span>]
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">for</span> i <span style="color:#f92672">in</span> range(<span style="color:#ae81ff">2</span>, n):
</span></span><span style="display:flex;"><span>        fib<span style="color:#f92672">.</span>append(fib[i<span style="color:#f92672">-</span><span style="color:#ae81ff">1</span>] <span style="color:#f92672">+</span> fib[i<span style="color:#f92672">-</span><span style="color:#ae81ff">2</span>])
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">return</span> fib[:n]
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>print(fibonacci(<span style="color:#ae81ff">10</span>))</span></span></code></pre></div>
<h3 id="带文件名的代码块">带文件名的代码块</h3>

<div class="code-block-with-title">
  <div class="code-block-title">
    <span>📄 app.js</span>
  </div><div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-javascript" data-lang="javascript"><span style="display:flex;"><span><span style="color:#66d9ef">const</span> <span style="color:#a6e22e">express</span> <span style="color:#f92672">=</span> <span style="color:#a6e22e">require</span>(<span style="color:#e6db74">&#34;express&#34;</span>);
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">const</span> <span style="color:#a6e22e">app</span> <span style="color:#f92672">=</span> <span style="color:#a6e22e">express</span>();
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#a6e22e">app</span>.<span style="color:#a6e22e">get</span>(<span style="color:#e6db74">&#34;/&#34;</span>, (<span style="color:#a6e22e">req</span>, <span style="color:#a6e22e">res</span>) =&gt; {
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">res</span>.<span style="color:#a6e22e">json</span>({ <span style="color:#a6e22e">message</span><span style="color:#f92672">:</span> <span style="color:#e6db74">&#34;Hello, Hugo Blog!&#34;</span> });
</span></span><span style="display:flex;"><span>});
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#a6e22e">app</span>.<span style="color:#a6e22e">listen</span>(<span style="color:#ae81ff">3000</span>, () =&gt; {
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">console</span>.<span style="color:#a6e22e">log</span>(<span style="color:#e6db74">&#34;Server running on port 3000&#34;</span>);
</span></span><span style="display:flex;"><span>});</span></span></code></pre></div>
</div>

<div class="code-block-with-title">
  <div class="code-block-title">
    <span>📄 index.html</span>
  </div><div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-html" data-lang="html"><span style="display:flex;"><span><span style="color:#75715e">&lt;!DOCTYPE html&gt;</span>
</span></span><span style="display:flex;"><span>&lt;<span style="color:#f92672">html</span> <span style="color:#a6e22e">lang</span><span style="color:#f92672">=</span><span style="color:#e6db74">&#34;zh-CN&#34;</span>&gt;
</span></span><span style="display:flex;"><span>  &lt;<span style="color:#f92672">head</span>&gt;
</span></span><span style="display:flex;"><span>    &lt;<span style="color:#f92672">meta</span> <span style="color:#a6e22e">charset</span><span style="color:#f92672">=</span><span style="color:#e6db74">&#34;UTF-8&#34;</span> /&gt;
</span></span><span style="display:flex;"><span>    &lt;<span style="color:#f92672">title</span>&gt;我的博客&lt;/<span style="color:#f92672">title</span>&gt;
</span></span><span style="display:flex;"><span>  &lt;/<span style="color:#f92672">head</span>&gt;
</span></span><span style="display:flex;"><span>  &lt;<span style="color:#f92672">body</span>&gt;
</span></span><span style="display:flex;"><span>    &lt;<span style="color:#f92672">h1</span>&gt;Hello World&lt;/<span style="color:#f92672">h1</span>&gt;
</span></span><span style="display:flex;"><span>  &lt;/<span style="color:#f92672">body</span>&gt;
</span></span><span style="display:flex;"><span>&lt;/<span style="color:#f92672">html</span>&gt;</span></span></code></pre></div>
</div>

<div class="code-block-with-title">
  <div class="code-block-title">
    <span>📄 deploy.sh</span>
  </div><div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span><span style="color:#75715e">#!/bin/bash
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>hugo --minify
</span></span><span style="display:flex;"><span>git add -A
</span></span><span style="display:flex;"><span>git commit -m <span style="color:#e6db74">&#34;deploy: </span><span style="color:#66d9ef">$(</span>date <span style="color:#e6db74">&#39;+%Y-%m-%d %H:%M&#39;</span><span style="color:#66d9ef">)</span><span style="color:#e6db74">&#34;</span>
</span></span><span style="display:flex;"><span>git push origin master</span></span></code></pre></div>
</div>
<h3 id="多语言测试">多语言测试</h3>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-go" data-lang="go"><span style="display:flex;"><span><span style="color:#f92672">package</span> <span style="color:#a6e22e">main</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">import</span> <span style="color:#e6db74">&#34;fmt&#34;</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">func</span> <span style="color:#a6e22e">main</span>() {
</span></span><span style="display:flex;"><span>    <span style="color:#a6e22e">fmt</span>.<span style="color:#a6e22e">Println</span>(<span style="color:#e6db74">&#34;Hello, 世界!&#34;</span>)
</span></span><span style="display:flex;"><span>}</span></span></code></pre></div>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-css" data-lang="css"><span style="display:flex;"><span>:<span style="color:#a6e22e">root</span> {
</span></span><span style="display:flex;"><span>  --primary: <span style="color:#ae81ff">#2563eb</span>;
</span></span><span style="display:flex;"><span>  --radius: <span style="color:#ae81ff">8</span><span style="color:#66d9ef">px</span>;
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>.<span style="color:#a6e22e">card</span> {
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">border-radius</span>: <span style="color:#a6e22e">var</span>(<span style="color:#f92672">--</span>radius);
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">box-shadow</span>: <span style="color:#ae81ff">0</span> <span style="color:#ae81ff">2</span><span style="color:#66d9ef">px</span> <span style="color:#ae81ff">8</span><span style="color:#66d9ef">px</span> rgba(<span style="color:#ae81ff">0</span>, <span style="color:#ae81ff">0</span>, <span style="color:#ae81ff">0</span>, <span style="color:#ae81ff">0.1</span>);
</span></span><span style="display:flex;"><span>}</span></span></code></pre></div>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-sql" data-lang="sql"><span style="display:flex;"><span><span style="color:#66d9ef">SELECT</span> p.title, p.date, <span style="color:#66d9ef">COUNT</span>(<span style="color:#66d9ef">c</span>.id) <span style="color:#66d9ef">AS</span> comment_count
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">FROM</span> posts p
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">LEFT</span> <span style="color:#66d9ef">JOIN</span> comments <span style="color:#66d9ef">c</span> <span style="color:#66d9ef">ON</span> p.id <span style="color:#f92672">=</span> <span style="color:#66d9ef">c</span>.post_id
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">WHERE</span> p.date <span style="color:#f92672">&gt;=</span> <span style="color:#e6db74">&#39;2026-01-01&#39;</span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">GROUP</span> <span style="color:#66d9ef">BY</span> p.id
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">ORDER</span> <span style="color:#66d9ef">BY</span> comment_count <span style="color:#66d9ef">DESC</span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">LIMIT</span> <span style="color:#ae81ff">10</span>;</span></span></code></pre></div>
<h2 id="数学公式katex">数学公式（KaTeX）</h2>
<h3 id="行内公式">行内公式</h3>
<p>质能方程 $E = mc^2$，欧拉公式 $e^{i\pi} + 1 = 0$，勾股定理 $a^2 + b^2 = c^2$。</p>
<h3 id="块级公式">块级公式</h3>
<p>二次方程求根公式：</p>
<p>$$
x = \frac{-b \pm \sqrt{b^2 - 4ac}}{2a}
$$</p>
<p>高斯积分：</p>
<p>$$
\int_{-\infty}^{\infty} e^{-x^2} dx = \sqrt{\pi}
$$</p>
<p>矩阵：</p>
<p>$$
\begin{pmatrix} a_{11} &amp; a_{12} \ a_{21} &amp; a_{22} \end{pmatrix} \begin{pmatrix} x_1 \ x_2 \end{pmatrix} = \begin{pmatrix} b_1 \ b_2 \end{pmatrix}
$$</p>
<p>求和与连乘：</p>
<p>$$
\sum_{k=1}^{n} k = \frac{n(n+1)}{2}, \quad \prod_{k=1}^{n} k = n!
$$</p>
<h2 id="表格">表格</h2>
<h3 id="基础表格">基础表格</h3>
<table>
  <thead>
      <tr>
          <th>功能</th>
          <th style="text-align: center">状态</th>
          <th>说明</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>Markdown 渲染</td>
          <td style="text-align: center">✅</td>
          <td>支持 GFM 扩展语法</td>
      </tr>
      <tr>
          <td>代码高亮</td>
          <td style="text-align: center">✅</td>
          <td>Chroma 引擎，Monokai 主题</td>
      </tr>
      <tr>
          <td>数学公式</td>
          <td style="text-align: center">✅</td>
          <td>KaTeX 渲染</td>
      </tr>
      <tr>
          <td>Mermaid 图表</td>
          <td style="text-align: center">✅</td>
          <td>流程图/时序图/甘特图</td>
      </tr>
      <tr>
          <td>图片灯箱</td>
          <td style="text-align: center">✅</td>
          <td>GLightbox 点击放大</td>
      </tr>
      <tr>
          <td>加密内容</td>
          <td style="text-align: center">✅</td>
          <td>SHA-256 前端验证</td>
      </tr>
  </tbody>
</table>
<h3 id="对齐方式">对齐方式</h3>
<table>
  <thead>
      <tr>
          <th style="text-align: left">左对齐</th>
          <th style="text-align: center">居中对齐</th>
          <th style="text-align: right">右对齐</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td style="text-align: left">Hugo</td>
          <td style="text-align: center">静态生成器</td>
          <td style="text-align: right">Go</td>
      </tr>
      <tr>
          <td style="text-align: left">Vite</td>
          <td style="text-align: center">构建工具</td>
          <td style="text-align: right">JavaScript</td>
      </tr>
      <tr>
          <td style="text-align: left">Tailwind</td>
          <td style="text-align: center">CSS 框架</td>
          <td style="text-align: right">Utility-first</td>
      </tr>
  </tbody>
</table>
<h2 id="提示框alert">提示框（Alert）</h2>
<div class="alert alert-info">
  <div class="alert-title">💡 提示</div> 这是一条<strong>信息提示</strong>，用于展示补充说明或小贴士。
</div>

<div class="alert alert-success">
  <div class="alert-title">✅ 成功</div> 操作已成功完成！你的博客已部署上线。
</div>

<div class="alert alert-warning">
  <div class="alert-title">⚠️ 注意</div> 修改 <code>hugo.toml</code> 后需要<strong>重启服务</strong>才能生效。
</div>

<div class="alert alert-danger">
  <div class="alert-title">🚫 危险</div> 请勿在生产环境使用 <code>--disableLiveReload</code> 以外的调试参数！
</div>

<h2 id="折叠面板details">折叠面板（Details）</h2>
<details class="custom-details">
  <summary>点击展开：什么是 Hugo？</summary>
  <div class="details-content"><p>Hugo 是世界上最快的静态网站生成器，使用 Go 语言编写。它能在几毫秒内将 Markdown 文件转换为完整的 HTML 网站，无需数据库或运行时依赖。</p>
<p><strong>核心优势：</strong></p>
<ul>
<li>构建速度极快（每秒 1000+ 页面）</li>
<li>丰富的模板系统</li>
<li>内置 Sass/SCSS 处理</li>
<li>多语言支持</li>
</ul>
</div>
</details>

<details class="custom-details">
  <summary>点击展开：常用 Hugo 命令</summary>
  <div class="details-content"><div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>hugo new posts/my-post.md    <span style="color:#75715e"># 创建新文章</span>
</span></span><span style="display:flex;"><span>hugo server -D               <span style="color:#75715e"># 启动开发服务器（含草稿）</span>
</span></span><span style="display:flex;"><span>hugo --minify                <span style="color:#75715e"># 生产构建（压缩输出）</span>
</span></span><span style="display:flex;"><span>hugo gen doc                 <span style="color:#75715e"># 生成文档</span></span></span></code></pre></div>
</div>
</details>

<h2 id="mermaid-图表">Mermaid 图表</h2>
<h3 id="流程图">流程图</h3>

<pre class="mermaid">graph TD
    A[开始写作] --&gt; B{文章完成?}
    B --&gt;|是| C[git add &amp; commit]
    B --&gt;|否| A
    C --&gt; D[git push]
    D --&gt; E[自动部署]
    E --&gt; F[网站更新完成]</pre>
<h3 id="时序图">时序图</h3>

<pre class="mermaid">sequenceDiagram
    participant 用户
    participant 浏览器
    participant 服务器
    用户-&gt;&gt;浏览器: 输入网址
    浏览器-&gt;&gt;服务器: HTTP 请求
    服务器--&gt;&gt;浏览器: 返回 HTML
    浏览器--&gt;&gt;用户: 渲染页面</pre>
<h3 id="甘特图">甘特图</h3>

<pre class="mermaid">gantt
    title 博客开发计划
    dateFormat  YYYY-MM-DD
    section 基础搭建
    安装 Hugo           :done, a1, 2026-01-01, 1d
    配置主题            :done, a2, after a1, 2d
    section 功能开发
    评论系统            :done, b1, 2026-01-05, 3d
    搜索功能            :done, b2, after b1, 2d
    自定义短代码        :active, b3, 2026-01-10, 5d
    section 部署上线
    配置域名            :c1, 2026-01-20, 2d
    正式上线            :milestone, c2, 2026-01-22, 0d</pre>
<h2 id="时间线history">时间线（History）</h2>
<div
  class="history-item"
  style="display: flex; gap: 1rem; margin: 0.5rem 0; align-items: flex-start"
>
  <div
    class="history-dot"
    style="
      width: 12px;
      height: 12px;
      border-radius: 50%;
      background: #2563eb;
      flex-shrink: 0;
      margin-top: 5px;
      position: relative;
    "
  >
    <div
      style="
        position: absolute;
        top: 12px;
        left: 5px;
        width: 2px;
        height: calc(100% + 1rem);
        background: rgba(37, 99, 235, 0.2);
      "
    ></div>
  </div>
  <div>
    <span style="font-size: 0.8rem; color: #888; font-weight: 500"
      >2026-01-01</span
    >
    <div style="margin-top: 0.25rem; font-size: 0.9rem">
      🎉 博客项目启动，完成 Hugo 安装与基础配置。
    </div>
  </div>
</div>

<div
  class="history-item"
  style="display: flex; gap: 1rem; margin: 0.5rem 0; align-items: flex-start"
>
  <div
    class="history-dot"
    style="
      width: 12px;
      height: 12px;
      border-radius: 50%;
      background: #2563eb;
      flex-shrink: 0;
      margin-top: 5px;
      position: relative;
    "
  >
    <div
      style="
        position: absolute;
        top: 12px;
        left: 5px;
        width: 2px;
        height: calc(100% + 1rem);
        background: rgba(37, 99, 235, 0.2);
      "
    ></div>
  </div>
  <div>
    <span style="font-size: 0.8rem; color: #888; font-weight: 500"
      >2026-01-05</span
    >
    <div style="margin-top: 0.25rem; font-size: 0.9rem">
      集成 PaperMod 主题，配置暗色模式与多语言支持。
    </div>
  </div>
</div>

<div
  class="history-item"
  style="display: flex; gap: 1rem; margin: 0.5rem 0; align-items: flex-start"
>
  <div
    class="history-dot"
    style="
      width: 12px;
      height: 12px;
      border-radius: 50%;
      background: #2563eb;
      flex-shrink: 0;
      margin-top: 5px;
      position: relative;
    "
  >
    <div
      style="
        position: absolute;
        top: 12px;
        left: 5px;
        width: 2px;
        height: calc(100% + 1rem);
        background: rgba(37, 99, 235, 0.2);
      "
    ></div>
  </div>
  <div>
    <span style="font-size: 0.8rem; color: #888; font-weight: 500"
      >2026-01-10</span
    >
    <div style="margin-top: 0.25rem; font-size: 0.9rem">
      添加 Giscus 评论系统、搜索功能、阅读进度条等高级特性。
    </div>
  </div>
</div>

<div
  class="history-item"
  style="display: flex; gap: 1rem; margin: 0.5rem 0; align-items: flex-start"
>
  <div
    class="history-dot"
    style="
      width: 12px;
      height: 12px;
      border-radius: 50%;
      background: #2563eb;
      flex-shrink: 0;
      margin-top: 5px;
      position: relative;
    "
  >
    <div
      style="
        position: absolute;
        top: 12px;
        left: 5px;
        width: 2px;
        height: calc(100% + 1rem);
        background: rgba(37, 99, 235, 0.2);
      "
    ></div>
  </div>
  <div>
    <span style="font-size: 0.8rem; color: #888; font-weight: 500"
      >2026-07-19</span
    >
    <div style="margin-top: 0.25rem; font-size: 0.9rem">
      完成全部功能集成，发布本篇全功能测试文章。
    </div>
  </div>
</div>

<h2 id="加密内容">加密内容</h2>
<div class="encrypted-content" data-hash="81dc9bdb52d04dc20036dbd8313ed055">
  <div class="encrypt-lock">
    <svg
      xmlns="http://www.w3.org/2000/svg"
      width="24"
      height="24"
      viewBox="0 0 24 24"
      fill="none"
      stroke="currentColor"
      stroke-width="2"
      stroke-linecap="round"
      stroke-linejoin="round"
    >
      <rect x="3" y="11" width="18" height="11" rx="2" ry="2"></rect>
      <path d="M7 11V7a5 5 0 0 1 10 0v4"></path>
    </svg>
    <p>此内容已加密，请输入密码查看</p>
    <div class="encrypt-form">
      <input
        type="password"
        class="encrypt-input"
        placeholder="请输入密码..."
        style="
          padding: 0.5rem 0.75rem;
          border: 1px solid #d0d7de;
          border-radius: 6px;
          font-size: 0.9rem;
          width: 200px;
        "
      />
      <button
        class="encrypt-btn"
        style="
          padding: 0.5rem 1rem;
          background: #2563eb;
          color: white;
          border: none;
          border-radius: 6px;
          cursor: pointer;
          margin-left: 0.5rem;
        "
      >
        确认
      </button>
    </div>
    <p
      class="encrypt-error"
      style="
        display: none;
        color: #dc2626;
        font-size: 0.85rem;
        margin-top: 0.5rem;
      "
    >
      密码错误，请重试
    </p>
  </div>
  <div class="encrypt-body" style="display: none">
    <p>🎊 <strong>恭喜你解锁了隐藏内容！</strong></p>
<p>这是一段加密文字，只有输入正确密码（1234）才能查看。</p>
<p>适用于：</p>
<ul>
<li>付费内容预览</li>
<li>答案揭晓</li>
<li>私密笔记</li>
</ul>

  </div>
</div>

<h2 id="b-站视频嵌入">B 站视频嵌入</h2>

<div class="bilibili-video">
  <iframe
    src="https://player.bilibili.com/player.html?bvid=BV1GJ411x7h7&high_quality=1&danmaku=0"
    scrolling="no"
    allowfullscreen="true"
    sandbox="allow-top-navigation allow-same-origin allow-forms allow-scripts"
  >
  </iframe>
</div>

<h2 id="图片与灯箱">图片与灯箱</h2>
<p>点击下图可以放大查看（GLightbox 灯箱效果）：</p>
<p><figure style="text-align: center; margin: 1.5rem 0">
  <img alt="博客头像" loading="lazy" src="/logo_circle.png">
  <figcaption style="font-size: 0.85rem; color: #888; margin-top: 0.5rem">
    博客头像
  </figcaption>
</figure></p>
<h2 id="链接测试">链接测试</h2>
<h3 id="内部链接">内部链接</h3>
<ul>
<li><a href="/posts/markdown-guide/">Markdown 写作指南</a></li>
<li><a href="/about/">关于页面</a></li>
<li><a href="/archives/">归档</a></li>
</ul>
<h3 id="外部链接">外部链接</h3>
<ul>
<li><a href="https://gohugo.io/">Hugo 官方文档</a></li>
<li><a href="https://github.com/adityatelange/hugo-PaperMod">PaperMod 主题</a></li>
<li><a href="https://gitee.com/chensanzang/HUGO">Gitee 仓库</a></li>
</ul>
<h2 id="脚注测试">脚注测试</h2>
<p>Hugo 使用 Go 模板引擎<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup>，支持短代码<sup id="fnref:2"><a href="#fn:2" class="footnote-ref" role="doc-noteref">2</a></sup>扩展。</p>
<h2 id="定义列表">定义列表</h2>
<dl>
<dt>Hugo</dt>
<dd>静态网站生成器，用 Go 编写</dd>
<dt>PaperMod</dt>
<dd>Hugo 的极简响应式主题</dd>
<dt>KaTeX</dt>
<dd>快速数学公式渲染库</dd>
</dl>
<h2 id="特殊字符与转义">特殊字符与转义</h2>
<p>星号转义：*不是斜体*</p>
<p>反引号转义：`不是代码`</p>
<p>HTML 实体：&amp; &lt; &gt; ©</p>
<h2 id="长段落测试阅读进度条">长段落测试（阅读进度条）</h2>
<p>这是一段较长的文字，用于测试阅读进度条的效果。当你向下滚动页面时，顶部应该会出现一个蓝紫渐变的进度条，显示当前的阅读进度。这个功能通过监听 scroll 事件，计算当前滚动位置与页面总高度的比例来实现。进度条使用了 CSS transition 来保证动画流畅，同时设置了较高的 z-index 确保始终显示在最顶层。</p>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.</p>
<h2 id="总结">总结</h2>
<p>本文测试了以下功能：</p>
<table>
  <thead>
      <tr>
          <th>#</th>
          <th>功能</th>
          <th>测试方式</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>1</td>
          <td>基础 Markdown</td>
          <td>标题/粗体/斜体/列表/引用</td>
      </tr>
      <tr>
          <td>2</td>
          <td>代码高亮</td>
          <td>多语言 + 带文件名</td>
      </tr>
      <tr>
          <td>3</td>
          <td>数学公式</td>
          <td>行内 + 块级 + 矩阵</td>
      </tr>
      <tr>
          <td>4</td>
          <td>表格</td>
          <td>基础 + 对齐方式</td>
      </tr>
      <tr>
          <td>5</td>
          <td>提示框</td>
          <td>4 种类型全覆盖</td>
      </tr>
      <tr>
          <td>6</td>
          <td>折叠面板</td>
          <td>2 个示例</td>
      </tr>
      <tr>
          <td>7</td>
          <td>Mermaid</td>
          <td>流程图/时序图/甘特图</td>
      </tr>
      <tr>
          <td>8</td>
          <td>时间线</td>
          <td>4 个节点</td>
      </tr>
      <tr>
          <td>9</td>
          <td>加密内容</td>
          <td>密码 1234</td>
      </tr>
      <tr>
          <td>10</td>
          <td>B 站视频</td>
          <td>嵌入播放器</td>
      </tr>
      <tr>
          <td>11</td>
          <td>图片灯箱</td>
          <td>点击放大</td>
      </tr>
      <tr>
          <td>12</td>
          <td>内/外链接</td>
          <td>跳转测试</td>
      </tr>
      <tr>
          <td>13</td>
          <td>脚注</td>
          <td>2 个引用</td>
      </tr>
      <tr>
          <td>14</td>
          <td>阅读进度条</td>
          <td>滚动页面观察顶部</td>
      </tr>
      <tr>
          <td>15</td>
          <td>目录 TOC</td>
          <td>右侧浮动 + 文内</td>
      </tr>
      <tr>
          <td>16</td>
          <td>版权声明</td>
          <td>文末自动显示</td>
      </tr>
      <tr>
          <td>17</td>
          <td>相关文章</td>
          <td>文末推荐</td>
      </tr>
  </tbody>
</table>
<p>如果以上所有功能都正常显示，说明博客系统运行良好！</p>
<div class="footnotes" role="doc-endnotes">
<hr>
<ol>
<li id="fn:1">
<p>Go Template 是 Go 标准库中的模板系统。&#160;<a href="#fnref:1" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
<li id="fn:2">
<p>Shortcodes 是 Hugo 中用于在 Markdown 中插入复杂内容的占位符。&#160;<a href="#fnref:2" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
</ol>
</div>
]]></content:encoded></item></channel></rss>