这个站没有博客后台,发文章的方式是:写一个 Markdown 文件,放到指定文件夹,重新构建上传一次。整个过程几分钟,下面把步骤和命令写清楚。
第一步:写文章
在项目的 src/content/posts/ 目录下新建一个 .md 文件,文件名就是网址后缀。比如 hello-world.md 会生成:
http://39.108.174.103/posts/hello-world/
文章开头必须有一段”Frontmatter”(两个 --- 之间的信息块),照着填就行:
---
author: "Zora" # 作者名
pubDatetime: 2026-08-15T12:00:00+08:00 # 发布时间,时区必须写 +08:00
title: "文章标题" # 标题
featured: false # true = 置顶 / 精选
tags:
- "随笔" # 标签,可以写多个
description: "一句话摘要" # 显示在卡片和搜索里
---
两个容易踩的坑:
pubDatetime不能填未来时间,否则会被当成”定时文章”不显示,等过了那个时间才会出现。- 时间必须带
+08:00时区,否则会按 UTC 算,可能比预期晚 8 小时。
正文用普通 Markdown 写:## 二级标题、列表、加粗、行内代码、代码块(用三个反引号包起来)都可以。图片放到 public/ 目录,正文用 /图片名.png 引用。
第二步:本地构建
在项目目录 site/ 下执行(Windows PowerShell):
cd site
$env:ASTRO_TELEMETRY_DISABLED=1
pnpm build
构建会做类型检查、生成静态页面和搜索索引,产物在 site/dist/。看到 9 page(s) built(或更多)就是成功了。
第三步:上传到服务器
方式 A:命令行(scp + ssh)
先打包再上传,避免一个个文件传:
tar -czf dist-deploy.tar.gz dist
scp dist-deploy.tar.gz root@39.108.174.103:/tmp/
ssh root@39.108.174.103 "tar -xzf /tmp/dist-deploy.tar.gz -C /www/wwwroot/pixel-folder --strip-components=1 && chown -R www:www /www/wwwroot/pixel-folder"
scp 和 ssh 会提示输入服务器密码。chown 如果对 .user.ini 报 “Operation not permitted” 可以忽略,那是宝塔的防篡改文件,不影响站点。
方式 B:宝塔面板
在宝塔面板”文件”里打开 /www/wwwroot/pixel-folder/,把本地 site/dist/ 里的所有内容上传并覆盖进去即可。
第四步:完成
静态站点不需要重启服务,上传完直接刷新浏览器就能看到新文章。首页”最新文章”、RSS 和站内搜索都会自动更新。
常用操作速查
| 想做的事 | 怎么做 |
|---|---|
| 发新文章 | 在 src/content/posts/ 新建 .md,按上面的格式写 |
| 改文章 | 直接改对应 .md,重新构建上传 |
| 删文章 | 删掉 .md,重新构建上传 |
| 置顶文章 | featured 改成 true |
| 换头像 | 替换 public/avatar.svg |
| 改联系方式 | 改 astro-paper.config.ts 里的 contact 段 |
如果不想自己跑命令,把写好的 .md 文件放进 src/content/posts/,让 Codex 帮你构建上传也可以。