文章就是 src/content/blog/ 下的一个 Markdown 文件,文件名决定网址:hello.md 会变成 /blog/hello/。
文件头
---
title: 文章标题
date: 2026-10-09
tags: [随笔, 技术]
description: 列表页和 RSS 里显示的摘要,不写就取正文第一段。
draft: false
---
正文从这里开始。
date 支持 2026-10-09 或带时间的写法。draft: true 的文章不会进入构建产物,也不会出现在 RSS 和 sitemap 里,适合写一半放着。
本地预览
npm install
npm run dev
打开终端提示的地址(默认 http://localhost:4321),改文件会自动刷新。
部署
node deploy/deploy.cjs
它做三件事:npm run build 生成 dist/,用 SFTP 把 dist/ 整个传到服务器的 /var/www/blog,然后从外部复查一遍首页、文章页、RSS、sitemap 和 404 是否都正常。密码从环境变量 SSH_PW 读取,脚本里没有存,也不会进 git。在 PowerShell 里是 $env:SSH_PW='...'; node .\deploy\deploy.cjs。
改站名和简介
都在 src/site.config.js 里,一处改完首页标题、页脚、RSS、og: 标签都会跟着变。astro.config.mjs 里的 site 字段决定所有绝对链接的前缀,换域名时这两个文件都要改。
想放图片
把文件丢进 blog/public/images/,正文里用  引绝对路径即可。图片没有做压缩和响应式裁剪,上传前自己压一遍,静态站最容易毁在图上。