怎么写一篇新文章

文章就是 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/,正文里用 ![说明](/images/xxx.png) 引绝对路径即可。图片没有做压缩和响应式裁剪,上传前自己压一遍,静态站最容易毁在图上。