<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>栀海的博客</title><description>记录技术、折腾与随想</description><link>https://zhihaisblog.top/</link><templateTheme>Firefly</templateTheme><templateThemeVersion>6.16.8</templateThemeVersion><templateThemeUrl>https://github.com/CuteLeaf/Firefly</templateThemeUrl><lastBuildDate>2026年10月11日 00:28:31</lastBuildDate><item><title>博客开张：用 Astro + Firefly + Cloudflare 上线</title><link>https://zhihaisblog.top/posts/hello-world/</link><guid isPermaLink="true">https://zhihaisblog.top/posts/hello-world/</guid><description>这个博客的技术选型和第一篇介绍——Astro 静态生成、Firefly 主题、Cloudflare Workers 托管，一年成本只有域名钱。</description><pubDate>Fri, 09 Oct 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;欢迎来到栀海的博客。&lt;/p&gt;
&lt;p&gt;这个站点用 &lt;a href=&quot;https://astro.build&quot; target=&quot;_blank&quot;&gt;Astro&lt;/a&gt; 做静态生成，托管在 Cloudflare Workers 的静态资源服务上。选它的原因很简单：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;零成本&lt;/strong&gt;：免费额度对一个个人博客来说绰绰有余（每天 10 万次请求，静态资源每天不限请求数）。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;零运维&lt;/strong&gt;：不需要服务器、不需要装 Nginx、证书自动签发和续期。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;快&lt;/strong&gt;：静态文件走 Cloudflare 全球边缘节点，国内访问一般也能接受。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;写作舒服&lt;/strong&gt;：文章就是 Markdown 文件，写完 &lt;code&gt;git push&lt;/code&gt; 或者一条命令就上线。&lt;/li&gt;
&lt;/ul&gt;
&lt;section&gt;&lt;h2&gt;怎么发一篇新文章&lt;a href=&quot;#怎么发一篇新文章&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;在 &lt;code&gt;src/content/blog/&lt;/code&gt; 里新建一个 &lt;code&gt;.md&lt;/code&gt; 文件，开头写上元信息：&lt;/p&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;---&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;2&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;title&lt;/span&gt;&lt;span&gt;: &lt;/span&gt;&lt;span&gt;文章标题&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;3&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;description&lt;/span&gt;&lt;span&gt;: &lt;/span&gt;&lt;span&gt;一句话摘要，会显示在列表和搜索结果里&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;4&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;pubDate&lt;/span&gt;&lt;span&gt;: &lt;/span&gt;&lt;span&gt;2026-10-09&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;5&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;tags&lt;/span&gt;&lt;span&gt;: [&lt;/span&gt;&lt;span&gt;&apos;随笔&apos;&lt;/span&gt;&lt;span&gt;]&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;6&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;draft&lt;/span&gt;&lt;span&gt;: &lt;/span&gt;&lt;span&gt;false&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;7&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;---&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;8&lt;/div&gt;&lt;/div&gt;&lt;div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;9&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;正文用 Markdown 写就行。&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;&lt;p&gt;然后本地预览：&lt;/p&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;Terminal window&lt;/span&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;npm&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;run&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;dev&lt;/span&gt;&lt;span&gt;      &lt;/span&gt;&lt;span&gt;# http://localhost:4321&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;&lt;p&gt;确认没问题后发布：&lt;/p&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;Terminal window&lt;/span&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;npm&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;run&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;deploy&lt;/span&gt;&lt;span&gt;   &lt;/span&gt;&lt;span&gt;# = astro build + wrangler deploy&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;&lt;p&gt;就这两步。&lt;/p&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;接下来想写什么&lt;a href=&quot;#接下来想写什么&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;一些折腾记录（软路由、NAS、各种自建服务）&lt;/li&gt;
&lt;li&gt;读书笔记&lt;/li&gt;
&lt;li&gt;一些关于效率工具的想法&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;如果这个博客能坚持写下去，那它就已经完成使命了。&lt;/p&gt;&lt;/section&gt;</content:encoded></item><item><title>把博客部署到 Cloudflare（含绑定自有域名）</title><link>https://zhihaisblog.top/posts/deploy-to-cloudflare/</link><guid isPermaLink="true">https://zhihaisblog.top/posts/deploy-to-cloudflare/</guid><description>从本地构建到绑定自定义域名、开启缓存和 HTTPS 的完整步骤，以及常见报错的处理办法。</description><pubDate>Thu, 08 Oct 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;这篇文章记录把本博客部署到 Cloudflare 的完整流程。全程免费，只有域名需要花钱（也可以先用免费的 &lt;code&gt;*.workers.dev&lt;/code&gt; 子域）。&lt;/p&gt;
&lt;section&gt;&lt;h2&gt;一、本地构建并首次部署&lt;a href=&quot;#一本地构建并首次部署&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;Terminal window&lt;/span&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;npm&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;install&lt;/span&gt;&lt;span&gt;          &lt;/span&gt;&lt;span&gt;# 只做一次&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;2&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;npm&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;run&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;deploy&lt;/span&gt;&lt;span&gt;       &lt;/span&gt;&lt;span&gt;# astro build + wrangler deploy&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;&lt;p&gt;第一次运行 &lt;code&gt;wrangler deploy&lt;/code&gt; 会打开浏览器要求授权登录 Cloudflare 账号。登录完成后回到终端，会看到：&lt;/p&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;Uploaded my-blog (x.xx sec)&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;2&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;Deployed my-blog triggers (x.xx sec)&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;3&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span&gt;https://my-blog.&amp;lt;你的子域&amp;gt;.workers.dev&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;&lt;p&gt;这个 &lt;code&gt;*.workers.dev&lt;/code&gt; 地址就是你的博客，已经自动带 HTTPS。&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;Worker 名称在 &lt;code&gt;wrangler.jsonc&lt;/code&gt; 的 &lt;code&gt;name&lt;/code&gt; 字段，它决定了 &lt;code&gt;workers.dev&lt;/code&gt; 子域名，必须是全局唯一的。如果提示被占用，改个名字再部署即可。&lt;/p&gt;&lt;/blockquote&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;二、绑定自己的域名&lt;a href=&quot;#二绑定自己的域名&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;ol&gt;
&lt;li&gt;在 Cloudflare 控制台 &lt;strong&gt;Workers &amp;amp; Pages → 你的 Worker → Settings → Domains &amp;amp; Routes&lt;/strong&gt;，点 &lt;strong&gt;Add → Custom Domain&lt;/strong&gt;，填 &lt;code&gt;blog.example.com&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;如果域名还没接入 Cloudflare：先在控制台 &lt;strong&gt;Add site&lt;/strong&gt; 添加域名，然后到域名注册商处把 NS 改成 Cloudflare 给的两个名称服务器。&lt;/li&gt;
&lt;li&gt;添加成功后 Cloudflare 会自动签发证书，通常 1～15 分钟生效。&lt;/li&gt;
&lt;li&gt;顺手把 &lt;code&gt;astro.config.mjs&lt;/code&gt; 里的 &lt;code&gt;site&lt;/code&gt; 和 &lt;code&gt;src/consts.ts&lt;/code&gt; 里的 &lt;code&gt;url&lt;/code&gt; 改成新域名，这样 RSS 和站点地图里的链接才是对的。&lt;/li&gt;
&lt;/ol&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;三、值得打开的开关&lt;a href=&quot;#三值得打开的开关&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;SSL/TLS → Edge Certificates&lt;/strong&gt;：Always Use HTTPS、Automatic HTTPS Rewrites、HSTS。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Speed&lt;/strong&gt;：Brotli、HTTP/3、Early Hints。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Caching → Cache Rules&lt;/strong&gt;：静态资源（&lt;code&gt;/_astro/*&lt;/code&gt;）可以设长缓存，&lt;code&gt;Cache-Control&lt;/code&gt; 交给 Astro 生成的指纹文件名处理即可。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Analytics&lt;/strong&gt;：开启 Web Analytics，免费且不需要在页面里塞第三方脚本。&lt;/li&gt;
&lt;/ul&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;四、常见问题&lt;a href=&quot;#四常见问题&quot;&gt;&lt;span&gt;#&lt;/span&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;&lt;code&gt;Error 1027&lt;/code&gt;&lt;/td&gt;&lt;td&gt;Workers 免费额度当天用尽（10 万次/天，UTC 零点重置）；静态资源站点一般很难碰到&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;访问域名 522 / 521&lt;/td&gt;&lt;td&gt;这是源站类错误，纯静态部署在 CF 上不会出现；出现说明路径配置有问题，检查 &lt;code&gt;wrangler.jsonc&lt;/code&gt; 的 &lt;code&gt;assets.directory&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;子域被占用&lt;/td&gt;&lt;td&gt;改 &lt;code&gt;wrangler.jsonc&lt;/code&gt; 里的 &lt;code&gt;name&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;页面样式丢失&lt;/td&gt;&lt;td&gt;检查 &lt;code&gt;npm run build&lt;/code&gt; 是否成功、&lt;code&gt;dist/&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;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;五、之后的更新流程&lt;a href=&quot;#五之后的更新流程&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;Terminal window&lt;/span&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;npm&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;run&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;dev&lt;/span&gt;&lt;span&gt;        &lt;/span&gt;&lt;span&gt;# 本地写、本地看&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;2&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;npm&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;run&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;deploy&lt;/span&gt;&lt;span&gt;     &lt;/span&gt;&lt;span&gt;# 满意了就上线&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;&lt;p&gt;如果想更省事，可以把仓库连到 Cloudflare 的 Git 集成（Workers Builds），以后 &lt;code&gt;git push&lt;/code&gt; 就自动构建部署。&lt;/p&gt;&lt;/section&gt;</content:encoded></item><item><title>这个博客的 Markdown 速查表</title><link>https://zhihaisblog.top/posts/markdown-cheatsheet/</link><guid isPermaLink="true">https://zhihaisblog.top/posts/markdown-cheatsheet/</guid><description>标题、列表、引用、代码块、表格、图片在正文里的写法示例，写文章时直接抄。</description><pubDate>Thu, 01 Oct 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;正文支持常见的 Markdown 语法，下面是可以直接复制改写的示例。&lt;/p&gt;
&lt;section&gt;&lt;h2&gt;标题与段落&lt;a href=&quot;#标题与段落&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;&lt;code&gt;##&lt;/code&gt; 是二级标题，&lt;code&gt;###&lt;/code&gt; 是三级标题。段落之间空一行即可。&lt;/p&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;列表&lt;a href=&quot;#列表&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;无序列表：&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;第一项&lt;/li&gt;
&lt;li&gt;第二项
&lt;ul&gt;
&lt;li&gt;嵌套一项&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;有序列表：&lt;/p&gt;&lt;ol&gt;
&lt;li&gt;第一步&lt;/li&gt;
&lt;li&gt;第二步&lt;/li&gt;
&lt;/ol&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;引用&lt;a href=&quot;#引用&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;blockquote&gt;&lt;p&gt;引用块适合放摘录或强调。
可以写多行。&lt;/p&gt;&lt;/blockquote&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;代码&lt;a href=&quot;#代码&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;行内代码用反引号，比如 &lt;code&gt;npm run deploy&lt;/code&gt;。&lt;/p&gt;&lt;p&gt;代码块可以标语言，构建时会自动做语法高亮：&lt;/p&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;export&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;function&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;greet&lt;/span&gt;&lt;span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;name&lt;/span&gt;&lt;span&gt;) {&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;2&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;  &lt;/span&gt;&lt;span&gt;return&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;`Hello, &lt;/span&gt;&lt;span&gt;${&lt;/span&gt;&lt;span&gt;name&lt;/span&gt;&lt;span&gt;}&lt;/span&gt;&lt;span&gt;!`&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;3&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;Terminal window&lt;/span&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;npm&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;run&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;build&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;2&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;npx&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;wrangler&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;deploy&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;表格&lt;a href=&quot;#表格&quot;&gt;&lt;span&gt;#&lt;/span&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;本地预览&lt;/td&gt;&lt;td&gt;&lt;code&gt;npm run dev&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;构建&lt;/td&gt;&lt;td&gt;&lt;code&gt;npm run build&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;构建并部署&lt;/td&gt;&lt;td&gt;&lt;code&gt;npm run deploy&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;链接与图片&lt;a href=&quot;#链接与图片&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;链接：&lt;code&gt;[Cloudflare](https://www.cloudflare.com/)&lt;/code&gt; → &lt;a href=&quot;https://www.cloudflare.com/&quot; target=&quot;_blank&quot;&gt;Cloudflare&lt;/a&gt;&lt;/p&gt;&lt;p&gt;图片：把文件放进 &lt;code&gt;public/&lt;/code&gt;，然后用 &lt;code&gt;![说明](/图片名.png)&lt;/code&gt; 引用；文章专属图片也可以放在 &lt;code&gt;src/content/blog/&lt;/code&gt; 旁边用相对路径引用。&lt;/p&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;分隔线&lt;a href=&quot;#分隔线&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;hr /&gt;&lt;p&gt;以上这些基本够用。真需要复杂排版时，Astro 还支持在页面里写组件，Markdown 和组件可以混用。&lt;/p&gt;&lt;/section&gt;</content:encoded></item></channel></rss>