<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <id>https://saul-blog.pages.dev/</id>
  <title type="text">Saul的个人博客</title>
  <subtitle type="text">记录学习与成长</subtitle>
  <updated>2026-10-19T00:00:00.000Z</updated>
  <author><name>Saul</name></author>
  <link rel="alternate" href="https://saul-blog.pages.dev/"/>
  <link rel="self" href="https://saul-blog.pages.dev/atom.xml"/>
  <generator uri="https://github.com/CuteLeaf/Firefly">Firefly v6.16.8</generator>
    <entry>
      <id>https://saul-blog.pages.dev/posts/build-log/</id>
      <title type="text">搭建实录：从零到上线踩过的坑</title>
      <published>2026-10-14T00:00:00.000Z</published>
      <updated>2026-10-19T00:00:00.000Z</updated>
      <author><name>Saul</name></author>
      <link rel="alternate" href="https://saul-blog.pages.dev/posts/build-log/"/>
      <summary type="text">从 Git 代理到部署平台选型，再到主题切换，从零到上线踩过的坑全记录。</summary>
      <content type="html"><![CDATA[<section><h2>坑一：Git 代理导致 clone 失败<a href="#坑一git-代理导致-clone-失败"><span>#</span></a></h2><p><strong>现象</strong></p><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>git</span><span> </span><span>clone</span><span> </span><span>https://gitee.com/xxx/yyy.git</span></div></div><div><div><div>2</div></div><div><span>fatal:</span><span> </span><span>unable</span><span> </span><span>to</span><span> </span><span>access</span><span> </span><span>'...':</span><span> </span><span>Failed</span><span> </span><span>to</span><span> </span><span>connect</span><span> </span><span>to</span><span> </span><span>gitee.com:443</span></div></div><div><div><div>3</div></div><div><span>over</span><span> </span><span>proxy</span><span> </span><span>127.0.0.1</span><span> </span><span>after</span><span> </span><span>2036</span><span> </span><span>ms</span></div></div></code></pre><div><div></div><div></div></div></figure></div><p><strong>定位</strong></p><p>代理残留在了 Git 全局配置里，但本地那个端口根本没服务在跑：</p><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>git</span><span> </span><span>config</span><span> </span><span>--global</span><span> </span><span>--get</span><span> </span><span>https.proxy</span></div></div><div><div><div>2</div></div><div><span># http://127.0.0.1:10808</span></div></div><div><div><div>3</div></div><div>
</div></div><div><div><div>4</div></div><div><span>netstat</span><span> </span><span>-ano</span><span> | </span><span>grep</span><span> </span><span>10808</span></div></div><div><div><div>5</div></div><div><span># 无输出 = 端口没有监听</span></div></div></code></pre><div><div></div><div></div></div></figure></div><p><strong>解决</strong></p><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>git</span><span> </span><span>config</span><span> </span><span>--global</span><span> </span><span>--unset</span><span> </span><span>http.proxy</span></div></div><div><div><div>2</div></div><div><span>git</span><span> </span><span>config</span><span> </span><span>--global</span><span> </span><span>--unset</span><span> </span><span>https.proxy</span></div></div></code></pre><div><div></div><div></div></div></figure></div></section>
<section><h2>坑二：Gitee Pages 下架<a href="#坑二gitee-pages-下架"><span>#</span></a></h2><p>网上教程清一色教你”仓库 → 服务 → Gitee Pages → 启动”，但 2025 年 10 月 11 日这个功能已经下架（官方 issue #ID1EVM 确认）。</p><p><strong>替代方案实测</strong></p>

<table><thead><tr><th>平台</th><th>结果</th><th>原因</th></tr></thead><tbody><tr><td>Gitee Pages</td><td>不可用</td><td>服务已下架</td></tr><tr><td>腾讯云 EdgeOne</td><td>不可用</td><td>国内加速区域默认域名仅 3 小时有效，直连 401</td></tr><tr><td>Vercel</td><td>不可用</td><td>中国 IP 新账号触发风控，人工审核周期不可控</td></tr><tr><td>Cloudflare Pages</td><td>可用</td><td>免费、免备案，<code>xxx.pages.dev</code> 永久公开</td></tr></tbody></table></section>
<section><h2>坑三：Hexo 改完主题没生效<a href="#坑三hexo-改完主题没生效"><span>#</span></a></h2><p>Hexo 有缓存。改完配置必须：</p><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>hexo</span><span> </span><span>clean</span><span> &amp;&amp; </span><span>hexo</span><span> </span><span>generate</span><span> &amp;&amp; </span><span>hexo</span><span> </span><span>server</span></div></div></code></pre><div><div></div><div></div></div></figure></div><p>少了 <code>clean</code>，一半的改动都不会生效。</p></section>
<section><h2>坑四：换主题迁移（Hexo → Firefly）<a href="#坑四换主题迁移hexo--firefly"><span>#</span></a></h2><p>用 Hexo + Butterfly 跑了三天，还是换成了 <a href="https://github.com/CuteLeaf/Firefly" target="_blank">Firefly</a>（Astro 主题）。迁移本身不难，但有三个坑：</p><p><strong>1. Node 版本要够</strong></p><p>Firefly 要求 Node ≥ 22.23，本机的 22.22 差一个小版本。engines 字段默认只警告不拦截，构建照样能过，但遇到诡异报错先核对版本再排查。</p><p><strong>2. pnpm 是硬依赖</strong></p><p>Firefly 用 pnpm 管依赖，<code>package.json</code> 里有 <code>preinstall: npx only-allow pnpm</code>，用 npm 装会被直接拒绝。更坑的是本机的 corepack 坏了（路径拼接错乱），最后绕过 pnpm 直接用 <code>node_modules/.bin</code> 里的本地二进制跑构建链。</p><p><strong>3. front-matter 字段名不一样</strong></p>

<table><thead><tr><th>Hexo</th><th>Firefly</th><th>说明</th></tr></thead><tbody><tr><td><code>date</code></td><td><code>published</code></td><td>发布日期</td></tr><tr><td><code>categories</code>（数组）</td><td><code>category</code>（单个字符串）</td><td>只能填一个分类</td></tr><tr><td><code>cover</code></td><td><code>image</code></td><td>封面图</td></tr><tr><td><code>sticky</code></td><td><code>pinned: true</code></td><td>置顶</td></tr></tbody></table><p>字段名写错不会报错，文章会直接”消失”——因为校验不过被丢弃了。迁移后先看文章总数对不对。</p></section>
<section><h2>心得<a href="#心得"><span>#</span></a></h2><p>遇到问题先看<strong>报错信息本身</strong>，它通常已经把原因说清楚了。别急着搜，先读懂。</p></section>]]></content>
    </entry>
    <entry>
      <id>https://saul-blog.pages.dev/posts/twikoo-comment-system/</id>
      <title type="text">零成本给博客加评论系统：Twikoo+Netlify+MongoDB实录</title>
      <published>2026-10-19T00:00:00.000Z</published>
      <updated>2026-10-19T00:00:00.000Z</updated>
      <author><name>Saul</name></author>
      <link rel="alternate" href="https://saul-blog.pages.dev/posts/twikoo-comment-system/"/>
      <summary type="text">评论区一分钱不花：Twikoo后端部署到Netlify，MongoDB Atlas免费库存数据，三个隐蔽坑全记录。</summary>
      <content type="html"><![CDATA[<p>博客上线没几天，评论区还空着。这篇记录我给博客加评论系统的全过程，总花费0元，总耗时一个多小时，其中大半时间在排错。三个坑一个比一个隐蔽，写下来给后来的人省时间。</p>
<section><h2>先说结论<a href="#先说结论"><span>#</span></a></h2><p>方案三件套：</p>

<table><thead><tr><th>角色</th><th>选了什么</th><th>花费</th></tr></thead><tbody><tr><td>评论后端程序</td><td>Twikoo 2.0.15</td><td>开源免费</td></tr><tr><td>后端托管</td><td>Netlify Functions</td><td>免费层</td></tr><tr><td>数据库</td><td>MongoDB Atlas M0</td><td>免费层</td></tr></tbody></table></section>
<section><h2>为什么是Twikoo<a href="#为什么是twikoo"><span>#</span></a></h2><p>我的博客托管在Cloudflare Pages上，纯静态，没地方存评论。加评论系统必然要引入一个常年在线的后端加一个数据库，所以选型其实是在选”后端跑在哪”。</p><p>候选挨个过一遍：</p><ul>
<li><strong>giscus</strong>：评论者必须用GitHub账号登录。我的读者是同学和朋友，基本没有GitHub账号，评论区会变成摆设。淘汰。</li>
<li><strong>waline</strong>：功能最全，但后端免费托管的位置全撞墙。Vercel默认域名大陆基本连不上，也没有Cloudflare Workers官方适配。淘汰。</li>
<li><strong>腾讯云CloudBase</strong>：国内速度天花板，但免费体验版无法在HTTP网关里配置跨域域名，这一步绕不过去；个人版19.9元/月起。学生党暂时退场。</li>
<li><strong>HuggingFace</strong>：以前是免费方案里的明星，2026年7月起免费账号已经不能创建Docker Space，要PRO月付9美元。这条路刚被堵死。</li>
<li><strong>Cloudflare Workers</strong>：官方适配+D1免费数据库+我正好有CF账号，差点就成了。卡在域名上：部署后的地址是<code>twikoo.xxx.workers.dev</code>，这个后缀在大陆被DNS污染，直接超时。没有自定义域名就没法用。</li>
<li><strong>EdgeOne Makers</strong>：必须绑定自定义域名，默认域名链接只有3小时有效期。</li>
</ul><p>最后剩Netlify：Twikoo官方部署文档里评级四星，免费方案里最高。免费额度每月12.5万次请求、100小时函数时长，大陆访问速度在免费平台里算好的。</p></section>
<section><h2>架构一句话<a href="#架构一句话"><span>#</span></a></h2><p>Twikoo负责接收和审核评论，Netlify负责让它跑起来，MongoDB Atlas负责存。前端JS从CDN加载，评论数据走后端进数据库。</p></section>
<section><h2>部署过程<a href="#部署过程"><span>#</span></a></h2><section><h3>1. 注册两个账号<a href="#1-注册两个账号"><span>#</span></a></h3><p><strong>Netlify</strong>：邮箱注册，验证邮箱，然后在User settings → Applications里生成一个Personal access token。</p><p><strong>MongoDB Atlas</strong>：邮箱注册，建集群时选M0 FREE（永久免费层，512MB存储），Region选东京（离国内近）。过程中要建一个数据库用户，密码自己设好记牢；网络访问后面会讲到，这里先埋个伏笔。</p></section><section><h3>2. 部署后端<a href="#2-部署后端"><span>#</span></a></h3><p>官方模板是配合GitHub fork用的，我用Netlify命令行从本地直接推，连fork都省了：</p><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>git</span><span> </span><span>clone</span><span> </span><span>--depth</span><span> </span><span>1</span><span> </span><span>https://github.com/twikoojs/twikoo-netlify.git</span></div></div><div><div><div>2</div></div><div><span>cd</span><span> </span><span>twikoo-netlify</span></div></div><div><div><div>3</div></div><div><span>npm</span><span> </span><span>install</span></div></div></code></pre><div><div></div><div></div></div></figure></div><p>在根目录建一个<code>netlify.toml</code>：</p><div><figure><figcaption></figcaption><pre><code><div><div><div>1</div></div><div><span>[</span><span>build</span><span>]</span></div></div><div><div><div>2</div></div><div><span>  </span><span>functions</span><span> = </span><span>"netlify/functions"</span></div></div><div><div><div>3</div></div><div>
</div></div><div><div><div>4</div></div><div><span>[</span><span>functions</span><span>]</span></div></div><div><div><div>5</div></div><div><span>  </span><span>node_bundler</span><span> = </span><span>"esbuild"</span></div></div></code></pre><div><div></div><div></div></div></figure></div><p>设置环境变量后一条命令部署：</p><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>netlify</span><span> </span><span>env:set</span><span> </span><span>MONGODB_URI</span><span> </span><span>"mongodb+srv://用户:密码@cluster0.xxxx.mongodb.net/?retryWrites=true&amp;w=majority"</span></div></div><div><div><div>2</div></div><div><span>netlify</span><span> </span><span>env:set</span><span> </span><span>NODE_VERSION</span><span> </span><span>"24"</span></div></div><div><div><div>3</div></div><div><span>netlify</span><span> </span><span>deploy</span><span> </span><span>--prod</span><span> </span><span>--dir</span><span> </span><span>.</span><span> </span><span>--functions</span><span> </span><span>netlify/functions</span></div></div></code></pre><div><div></div><div></div></div></figure></div><p>打开分配的地址，看到”Twikoo 云函数运行正常”就算成功。</p><p>一个容易漏的点：<strong>Netlify的envId必须带上<code>/.netlify/functions/twikoo</code>后缀</strong>，跟Vercel那种直接给域名的不一样。博客前端配置envId时少了这段后缀，请求会404。</p></section></section>
<section><h2>坑一：整个站点401<a href="#坑一整个站点401"><span>#</span></a></h2><p>部署完打开，等来的不是”运行正常”，是Netlify的登录跳转页。所有路径全部401，连首页都是。查API看站点状态，claimed是true，一度以为是令牌权限问题。</p><p>真实原因：<strong>新账号的站点可见性</strong>。进Netlify控制台 → Site configuration → Access and security → Site visibility，改成Public，立刻恢复。</p><p>顺带一提，注册后的验证邮件最好第一时间点掉，新账号功能受限有一半是因为邮箱没验证。</p></section>
<section><h2>坑二：504 Inactivity Timeout<a href="#坑二504-inactivity-timeout"><span>#</span></a></h2><p>登录墙解决了，再打开变成504，函数被调用但一直挂起直到超时，函数日志里一片空白。</p><p>这次排了好一会儿。后来顺着调用链想：函数启动后第一件事就是连数据库。回Atlas控制台一看，Network Access里只有一条记录，我自己的IP。而Netlify服务器的出口IP每次都不一样，永远进不了白名单。</p><p>解决：Network Access → ADD IP ADDRESS → <strong>Allow access from anywhere</strong>（0.0.0.0/0）。</p><p>有人会担心安全。M0免费库有独立的数据库用户名密码，白名单只是第一道门，个人博客的流量级这么用是社区标准做法。</p></section>
<section><h2>坑三：手改连接串改出双斜杠<a href="#坑三手改连接串改出双斜杠"><span>#</span></a></h2><p>Atlas复制的连接串自带<code>&lt;db_password&gt;</code>占位符，替换密码时手一抖，主机名前多打了一个斜杠，变成<code>mongodb+srv://user:pass@//cluster0...</code>，驱动直接报错。建议整串复制，只动占位符那一段。</p></section>
<section><h2>顺便科普：DNS污染<a href="#顺便科普dns污染"><span>#</span></a></h2><p>为什么你的pages.dev博客能打开，workers.dev就不行？DNS污染指的是国内查询某些域名的IP时会得到一个假答案，于是永远连不上。pages.dev这个后缀没被污染，workers.dev被污染了。同属Cloudflare，两种命运。这也是选型里”有没有自定义域名”变成关键变量的原因。</p></section>
<section><h2>最后花了多少钱<a href="#最后花了多少钱"><span>#</span></a></h2>

<table><thead><tr><th>项目</th><th>费用</th></tr></thead><tbody><tr><td>Twikoo</td><td>0（开源）</td></tr><tr><td>Netlify Functions</td><td>0（每月12.5万次请求额度）</td></tr><tr><td>MongoDB Atlas M0</td><td>0（512MB永久免费层）</td></tr></tbody></table><p>唯一的”付费”是一个多小时。个人博客的流量级，这些额度根本用不完。</p></section>
<section><h2>还可以继续做的<a href="#还可以继续做的"><span>#</span></a></h2><ul>
<li>管理员密码要在评论区后台手动设一次，评论的删除和禁用词都在那里管</li>
<li>邮件通知可选配Resend免费API，Netlify环境发邮件走HTTP通道</li>
<li>以后买了自定义域名，可以把整套迁到速度更快的平台上，Twikoo支持评论数据导出导入，搬家不丢数据</li>
</ul></section>]]></content>
    </entry>
    <entry>
      <id>https://saul-blog.pages.dev/posts/hello-blog/</id>
      <title type="text">你好，世界：我的博客开张了</title>
      <published>2026-10-16T00:00:00.000Z</published>
      <updated>2026-10-19T00:00:00.000Z</updated>
      <author><name>Saul</name></author>
      <link rel="alternate" href="https://saul-blog.pages.dev/posts/hello-blog/"/>
      <summary type="text">折腾一个下午把博客搭起来了，后来又换了主题，记录选型与踩坑过程。</summary>
      <content type="html"><![CDATA[<section><h2>缘起<a href="#缘起"><span>#</span></a></h2><p>折腾了一个下午，终于把这个博客搭起来了。</p><p>过程比想象中顺利，也比想象中坑多。趁热把踩过的坑记下来，免得以后忘了。</p></section>
<section><h2>技术栈<a href="#技术栈"><span>#</span></a></h2>

<table><thead><tr><th>环节</th><th>选型</th><th>说明</th></tr></thead><tbody><tr><td>静态站点生成器</td><td>Astro 7</td><td>构建 fast，默认零 JS，Markdown/MDX 写作</td></tr><tr><td>主题</td><td><a href="https://github.com/CuteLeaf/Firefly" target="_blank">Firefly</a></td><td>基于 Fuwari 二开的中文友好主题，颜值在线</td></tr><tr><td>代码托管</td><td>Gitee</td><td>国内访问快</td></tr><tr><td>部署</td><td>Cloudflare Pages</td><td>全球 CDN，免备案</td></tr></tbody></table><p>刚开张时用的是 Hexo + Butterfly，用了三天就换成了 Firefly，完整过程写在了<a href="/posts/build-log/">搭建实录</a>里。</p></section>
<section><h2>一个重要的教训<a href="#一个重要的教训"><span>#</span></a></h2><p>网上的教程有很强的时效性。我照着 2021 年的文章操作，卡在了”开启 Gitee Pages 服务”这一步——这个功能 2025 年 10 月已经下架了。</p><p>搜索结果里的答案往往互相矛盾，最靠谱的做法是<strong>直接查官方文档或官方 issue</strong>。</p></section>
<section><h2>接下来要做的<a href="#接下来要做的"><span>#</span></a></h2><ul>
<li> 本地跑通 Hexo，部署到 Cloudflare Pages</li>
<li> 换上 Firefly 主题（Astro）</li>
<li> 绑定自己的域名</li>
<li> 持续更新内容</li>
</ul><p>慢慢来，先把内容写好。</p></section>]]></content>
    </entry>
    <entry>
      <id>https://saul-blog.pages.dev/posts/markdown-guide/</id>
      <title type="text">Markdown 写作指南：语法速查</title>
      <published>2026-10-15T00:00:00.000Z</published>
      <updated>2026-10-19T00:00:00.000Z</updated>
      <author><name>Saul</name></author>
      <link rel="alternate" href="https://saul-blog.pages.dev/posts/markdown-guide/"/>
      <summary type="text">本站写作常用 Markdown 语法、front-matter 字段与主题扩展语法速查。</summary>
      <content type="html"><![CDATA[<section><h2>新建文章<a href="#新建文章"><span>#</span></a></h2><p>双击项目根目录的 <code>新建文章.bat</code>，输入英文文件名后会自动生成模板并用编辑器打开。</p><p>文章都在 <code>firefly/src/content/posts/</code> 目录下，图片放同级的 <code>images/</code> 文件夹。</p></section>
<section><h2>前置参数（Front-matter）<a href="#前置参数front-matter"><span>#</span></a></h2><p>每篇文章开头的 <code>---</code> 包裹区域叫 front-matter，用来声明元信息：</p><div><figure><figcaption></figcaption><pre><code><div><div><div>1</div></div><div><span>---</span></div></div><div><div><div>2</div></div><div><span>title</span><span>: </span><span>文章标题</span></div></div><div><div><div>3</div></div><div><span>published</span><span>: </span><span>2026-10-19</span></div></div><div><div><div>4</div></div><div><span>description</span><span>: </span><span>一句话简介（显示在列表卡片里）</span></div></div><div><div><div>5</div></div><div><span>image</span><span>: </span><span>./images/cover.png</span></div></div><div><div><div>6</div></div><div><span>tags</span><span>: [</span><span>标签1</span><span>, </span><span>标签2</span><span>]</span></div></div><div><div><div>7</div></div><div><span>category</span><span>: </span><span>分类</span></div></div><div><div><div>8</div></div><div><span>pinned</span><span>: </span><span>false</span><span>    </span><span># 设为 true 置顶</span></div></div><div><div><div>9</div></div><div><span>---</span></div></div></code></pre><div><div></div><div></div></div></figure></div>

<table><thead><tr><th>字段</th><th>必填</th><th>说明</th></tr></thead><tbody><tr><td><code>title</code></td><td>是</td><td>显示用的标题，可写中文</td></tr><tr><td><code>published</code></td><td>是</td><td>发布日期</td></tr><tr><td><code>description</code></td><td>建议</td><td>摘要，列表页显示</td></tr><tr><td><code>image</code></td><td>建议</td><td>封面图，相对路径 <code>./images/xxx.jpg</code></td></tr><tr><td><code>tags</code></td><td>否</td><td>数组写法 <code>[A, B]</code></td></tr><tr><td><code>category</code></td><td>否</td><td>只能填一个</td></tr><tr><td><code>pinned</code></td><td>否</td><td><code>true</code> 置顶</td></tr></tbody></table></section>
<section><h2>常用语法<a href="#常用语法"><span>#</span></a></h2><section><h3>标题<a href="#标题"><span>#</span></a></h3><p><code>#</code> 到 <code>######</code> 对应一到六级标题。</p></section><section><h3>强调<a href="#强调"><span>#</span></a></h3><p><strong>粗体</strong>、<em>斜体</em>、删除线。</p></section><section><h3>列表<a href="#列表"><span>#</span></a></h3><p>无序列表用 <code>-</code>，有序列表用 <code>1.</code>。</p></section><section><h3>链接与图片<a href="#链接与图片"><span>#</span></a></h3><div><figure><figcaption></figcaption><pre><code><div><div><div>1</div></div><div><span>[</span><span>链接文字</span><span>]</span><span><span>(</span><span>https://example.com</span><span>)</span></span></div></div><div><div><div>2</div></div><div><span>![</span><span>图片说明</span><span>]</span><span><span>(</span><span>./images/photo.jpg</span><span>)</span></span></div></div></code></pre><div><div></div><div></div></div></figure></div></section><section><h3>代码块<a href="#代码块"><span>#</span></a></h3><p>用三个反引号包裹，并在开头标注语言：</p><div><figure><figcaption></figcaption><pre><code><div><div><div>1</div></div><div><span>function</span><span> </span><span>greet</span><span><span>(</span><span>name</span><span>) {</span></span></div></div><div><div><div>2</div></div><div><span><span>  </span></span><span>console</span><span>.</span><span>log</span><span>(</span><span>`Hello, </span><span>${</span><span>name</span><span>}</span><span>!`</span><span>);</span></div></div><div><div><div>3</div></div><div><span>}</span></div></div></code></pre><div><div></div><div></div></div></figure></div></section><section><h3>引用<a href="#引用"><span>#</span></a></h3><blockquote><p>这是一段引用文字。</p></blockquote></section><section><h3>表格<a href="#表格"><span>#</span></a></h3>

<table><thead><tr><th>语法</th><th>效果</th></tr></thead><tbody><tr><td><code>**文字**</code></td><td>粗体</td></tr><tr><td><code>*文字*</code></td><td>斜体</td></tr></tbody></table></section></section>
<section><h2>主题扩展语法<a href="#主题扩展语法"><span>#</span></a></h2><p>Firefly 在标准 Markdown 之上加了一些好用的指令：</p><section><h3>提醒框（Callout）<a href="#提醒框callout"><span>#</span></a></h3><div><figure><figcaption></figcaption><pre><code><div><div><div>1</div></div><div><span>&gt; </span><span>[</span><span>!NOTE</span><span>]</span></div></div><div><div><div>2</div></div><div><span>&gt; 提示内容</span></div></div><div><div><div>3</div></div><div>
</div></div><div><div><div>4</div></div><div><span>&gt; </span><span>[</span><span>!WARNING</span><span>]</span></div></div><div><div><div>5</div></div><div><span>&gt; 警告内容</span></div></div></code></pre><div><div></div><div></div></div></figure></div><p>支持 <code>NOTE</code> / <code>TIP</code> / <code>IMPORTANT</code> / <code>WARNING</code> / <code>CAUTION</code>。</p></section><section><h3>GitHub 卡片<a href="#github-卡片"><span>#</span></a></h3><div><figure><figcaption></figcaption><pre><code><div><div><div>1</div></div><div><span>::github{repo="CuteLeaf/Firefly"}</span></div></div></code></pre><div><div></div><div></div></div></figure></div><a href="https://github.com/CuteLeaf/Firefly" target="_blank"><div><div><div><div></div><div>CuteLeaf</div></div><div>/</div><div>Firefly</div></div><div></div></div><div>🍀Firefly, fresh and aesthetic Astro blog theme template. </div><div><div>—</div><div>—</div><div>MIT</div><span>Astro</span></div></a></section></section>
<section><h2>发布<a href="#发布"><span>#</span></a></h2><p>写完保存，双击 <code>发布.bat</code>，构建完成后自动上传到 Cloudflare Pages。</p></section>]]></content>
    </entry>
</feed>
