Skip to content
Treelang's Blog
Go back

使用 AstroPaper 搭建个人技术博客

Edit page

前言

在完成个人主页之后,我希望再搭建一个独立的技术博客,用来记录平时的项目部署、问题排查、学习笔记和技术折腾过程。个人主页更适合展示“我是谁”和“我做过什么”,而博客更适合记录具体过程,例如 Cloudflare 配置、Android 自动构建、Debian 服务器部署、青龙面板和工程仿真相关内容。

这次博客使用 AstroPaper 模板搭建。AstroPaper 是一个基于 Astro 的博客模板,支持 Markdown 写作、标签分类、搜索、RSS、深浅色模式和分页功能。对于个人技术博客来说,它的功能已经比较完整,不需要自己从零写博客系统。

博客规划

博客计划主要记录以下几个方向:

这些分类基本覆盖了我目前主要折腾的内容。前期博客不会追求特别复杂的功能,重点是把真实的配置过程、报错信息和解决方法记录下来。

创建项目

进入用户目录:

cd C:\Users\Treelang

使用 Astro 官方命令创建项目:

npm.cmd create astro@latest -- --template satnaing/astro-paper

项目名称填写:

treelang-blog

如果提示是否安装依赖,选择 Yes。如果提示是否初始化 Git 仓库,也可以选择 Yes。

创建完成后进入项目:

cd C:\Users\Treelang\treelang-blog

启动本地开发服务器:

npm.cmd run dev

浏览器打开:

http://localhost:4321

即可看到博客模板页面。

修改站点信息

博客的主要配置文件通常在:

src/config.ts

或者类似的配置文件中。需要修改站点标题、作者、描述、网站地址和社交链接。

例如可以将网站信息设置为:

export const SITE = {
  website: "https://blog.treelang.me",
  author: "Treelang",
  profile: "https://treelang.me",
  desc: "记录工程仿真、Android Development、Personal Server、Cloudflare 与 Automation 实践。",
  title: "Treelang Blog",
  lightAndDarkMode: true,
  postPerPage: 3,
};

具体字段可能会因为模板版本不同而略有差异。修改时不要盲目整段覆盖,应该按照原文件结构修改对应内容。

文章目录

AstroPaper 的文章通常放在:

src/data/blog

每一篇文章都是一个 Markdown 文件,例如:

cloudflare-pages-homepage.md
astropaper-blog-setup.md
debian-12-mini-server.md

每篇文章开头都需要写 frontmatter,用来声明标题、作者、发布时间、slug、标签和文章描述。

标准格式如下:

---
title: 文章标题
author: Treelang
pubDatetime: 2026-05-09T12:00:00Z
slug: article-slug
featured: false
draft: false
tags:
  - Tag1
  - Tag2
description: 文章简短描述。
---

如果 draft 设置为 true,文章通常不会在正式页面中显示。写完准备发布时,需要改成:

draft: false

写第一篇文章

可以在 src/data/blog 中新建:

cloudflare-pages-homepage.md

文章内容用于记录个人主页的搭建过程。写技术文章时,我比较推荐采用以下结构:

## 前言

说明为什么写这篇文章。

## 环境说明

列出系统、工具和项目版本。

## 实现过程

按步骤记录实际操作。

## 遇到的问题

记录报错、原因和解决方法。

## 最终效果

说明实现了什么。

## 总结

整理收获和后续计划。

这种结构比较适合部署类文章,因为后续自己查阅时会比较清楚。

删除模板自带文章

模板中通常会自带一些示例文章。正式使用前,可以进入:

src/data/blog

删除不需要的示例文件,只保留自己写的文章。

如果担心以后忘记格式,可以保留一篇示例文章作为模板,或者新建一个不发布的草稿:

example-draft-post.md

并设置:

draft: true

本地构建测试

写完文章后,需要测试项目能否正常构建:

npm.cmd run build

如果 frontmatter 缺少必要字段,Astro 会报错。例如:

title: Required
description: Required
pubDatetime: Required

遇到这种错误时,需要检查文章开头的 --- 是否正确,以及字段名是否写错。

特别注意,不建议用 Windows 自带记事本编辑 Markdown 文件,因为有时可能会自动改变符号格式。建议使用 VS Code。

部署到 Cloudflare Pages

在 GitHub 新建仓库:

treelang-blog

然后推送代码:

git add .
git commit -m "init treelang blog"
git branch -M main
git remote add origin https://github.com/treelang-dev/treelang-blog.git
git push -u origin main

进入 Cloudflare:

Workers & Pages
→ Create application
→ Pages
→ Connect to Git

选择博客仓库后,构建配置如下:

Framework preset: Astro
Build command: npm run build
Build output directory: dist

部署成功后,会获得默认地址:

treelang-blog.pages.dev

绑定 blog.treelang.me

进入博客 Pages 项目的 Custom domains 页面,添加:

blog.treelang.me

如果 Cloudflare 没有自动创建 DNS 记录,可以手动添加:

Type: CNAME
Name: blog
Target: treelang-blog.pages.dev
Proxy status: Proxied
TTL: Auto

等待几分钟后,访问:

https://blog.treelang.me

如果能够正常打开,说明博客部署成功。

和个人主页关联

博客部署成功后,可以回到个人主页项目,在项目列表或导航中添加:

Blog → https://blog.treelang.me

这样个人主页和博客就形成了完整入口:

treelang.me       个人主页
blog.treelang.me  技术博客

总结

这次博客搭建完成后,后续写文章就不需要再重复部署流程。每次只需要在 src/data/blog 中新建 Markdown 文件,写完后提交到 GitHub,Cloudflare Pages 会自动构建并部署。

相比把笔记分散放在本地文件夹里,博客可以让技术记录更加系统,也更方便长期积累。


Edit page
Share this post on:

Previous Post
Debian 12 微型服务器部署记录
Next Post
使用 Cloudflare Pages 搭建个人主页