Astro博客

citrus-grid — Astro 博客模板

作者 rightdoor

CitrusGrid 是一个基于 Astro 的轻量级静态博客主题,以柑橘色和方格草稿纸背景为视觉特征,支持 Markdown 写作与多语言站点。

看看你的网站会是什么样

浏览真实页面截图,比较内容排版与手机效果。点击下方缩略图切换,放大查看整页细节。

3 个预览视图
桌面端首页1 / 3
桌面端截图首屏预览

由服务器浏览器实际访问页面后截取。

全部页面与视图 3

截图用于了解视觉与布局,交互效果请以实际项目为准。

采集于 2026-10-02查看来源

值得关注的模板亮点

从已有项目资料中,快速了解它的特点。

01

基于 Astro 的静态博客主题,以柑橘色与方格草稿纸背景为视觉特征

02

内置 zh、en、ja 三语 i18n,并提供语言包键集合一致性校验脚本

03

支持 GFM 语法与 KaTeX 数学公式,代码高亮在构建期完成且客户端零 JS

04

集成 pagefind 站内搜索、RSS 订阅、友链与明暗主题切换

05

评论系统可插拔,当前适配 utterances;统计功能预留接口并自带 visitor-stats 插件

06

附带覆盖项目结构、组件、主题定制与插件系统的二次开发文档

模板详细介绍

CitrusGrid(柑橘格子)是 rightdoor 开源的 Astro 静态博客主题,主色为柑橘色(#E86233),背景采用方格草稿纸样式,定位在轻量级 Markdown 博客。主题内置中、英、日三语 i18n,支持 GFM 语法与 KaTeX 数学公式,提供明暗主题切换、基于 pagefind 的站内搜索、RSS 订阅和友链页面。文章以 Markdown 加 frontmatter 管理,字段包括 title、slug、index、description、category、tags、published、updated 和 draft,其中 index 大于 0 时置顶且数值越大越靠前,updated 可由脚本按文件修改时间自动写入。内容侧还包含代码高亮与复制按钮、PhotoSwipe 图片灯箱与 LQIP 占位、文章相对链接自动转换、音乐播放器组件以及左下角可开关的宠物动画。评论系统当前适配 utterances,统计功能预留接口,自带 visitor-stats 插件需自行在 Cloudflare Worker 部署统计服务。主题附带从项目结构、组件说明、主题样式定制到插件系统与排错的二次开发文档,便于改造主色、布局或接入评论与统计。使用前需注意:运行环境要求 Node.js 与 Astro 的指定最低版本,依赖安装强制使用 pnpm;演示图片、字体、图标等第三方素材需单独核对许可,域名、托管等外部服务可能产生费用。

Astro博客

适合你的项目吗?

适用场景

  • 用 Markdown 撰写并发布个人技术或生活博客
  • 搭建需要中、英、日多语言展示的静态站点
  • 在文章中展示数学公式、代码片段与图片灯箱效果
  • 通过 utterances 接入评论,或按插件契约替换为自定义评论系统
  • 在 Cloudflare Worker 部署 visitor-stats 服务后统计全站与文章 PV/UV

适合人群

  • 熟悉 Markdown 与 Astro 基础、希望快速搭建静态博客的开发者
  • 需要多语言博客站点并愿意维护语言包的个人或小团队
  • 计划对主题进行换色、改布局或接入评论与统计的二次开发者

上手与定制指南

结合仓库当前版本的说明,按下面的资料检查内容、配置与运行要求。

  1. 1

    环境要求 Node.js 与 Astro 达到 README 标注的最低版本,依赖安装强制使用 pnpm(preinstall 会执行 only-allow pnpm)

  2. 2

    克隆仓库后执行 pnpm install,并在 src/site.config.ts 中自定义博客设置

  3. 3

    本地开发运行 pnpm dev,默认访问 http://localhost:4321;部署使用 pnpm build 后将 dist 目录发布到目标平台

  4. 4

    文章提交前需先执行 pnpm format-post-meta 与 pnpm build(构建会改写 md 补全 slug),再运行 pnpm check

  5. 5

    评论与统计为可插拔插件,使用 utterances 或自部署 visitor-stats 前需按对应使用规则配置

查看仓库使用说明

授权与来源资料

使用条件与限制

免费使用 · 保留许可声明

本次收录的是公开仓库中采用 MIT 许可的免费版本;免费范围为该版本代码,不代表外部服务或第三方素材免费。

使用时需要遵守

  • 允许免费使用、修改、商用和分发该版本代码。
  • 分发代码副本或实质性部分时,保留原作者版权声明和完整 MIT 许可声明。
  • 代码按现状提供;担保与责任限制以原许可证及适用法律为准。

额外费用与待核对事项

  • 使用自带 visitor-stats 统计插件时,需自行在 Cloudflare Worker 部署统计服务,涉及外部服务与账号配置。
  • 评论功能当前适配 utterances,需依赖 GitHub 相关服务并完成对应配置才能使用。
  • 依赖安装强制使用 pnpm,preinstall 会执行 only-allow pnpm,使用 npm 或 yarn 安装会被拒绝。
  • 运行环境要求 Node.js 版本不低于 22.14.0,低于该版本无法正常构建或开发。
  • 运行环境要求 Astro 版本不低于 7.2.9,低于该版本可能无法正常构建。
  • 演示图片、字体、图标及其他第三方素材需按各自许可核对,不能仅凭代码的 MIT 许可判断。
  • 域名、托管、数据库、支付或 AI 等外部服务可能另外收费。
查看原文依据

Permission is hereby granted, free of charge

许可证原文

需要在cloudflare worker中自行部署统计服务

README 原文

当前适配 utterances 评论系统

README 原文

本项目使用 pnpm 安装依赖,如果没有安装请先安装

README 原文

Node.js ≥ 22.14.0

README 原文

Astro ≥ 7.2.9

README 原文
https://github.com/rightdoor/citrus-grid/blob/main/LICENSE.txthttps://github.com/rightdoor/citrus-grid/blob/main/README.md

DeepSeek 根据仓库许可证和 README 整理 ·2026-10-03。结果仅覆盖已读取资料,依赖、图片、字体及后续条款变更以各自原文为准。

项目核对记录与介绍依据

模板资料

来源平台
GitHub
资料与维护参考分
资料较完整 · 83 / 100
技术栈
Astro
网站类型
博客
这个分数如何计算

本站按许可资料(最高30分)、演示链接(12分)、预览图(10分)、Star数(15分)、记录的维护时间(15分)、描述完整度(8分)、功能记录(5分)和分类资料(5分)计算。它不是代码、安全或性能测试,也不是 Google 评分;有链接不代表已实测可用。

这个项目需要核对什么

记录的仓库更新时间
2026-09-30
截图检查日期
2026-10-03

已收录演示链接。请用你的内容与屏幕尺寸检查;有演示不代表表单、认证或支付已经可用。

目录记录的主要技术栈是 Astro。请通过依赖清单和锁文件核对实际版本与托管要求。这些说明基于收录资料,不代表代码审计或部署实测。

查看具体选型方法 →

介绍的制作与核对状态

介绍由 AI 辅助整理目录与仓库资料。仓库作者不等于这篇介绍的审核者。

审核声明: [email protected] · 2026-10-04

查看当时使用的来源资料

SHA-256: 2ac189ac5d97e56c44983139f34b11ec843af830ac82511f914333478b46314a

2026-10-03T10:18:51.657Z

来源文件 / 仓库
<div align="center">
  <img src="./docs/logo.webp" alt="Logo 图片" />
  <h1 align="center">CitrusGrid 柑橘格子</h1>
  <p>基于 Astro 的轻量级静态博客主题,以<strong>柑橘色(#E86233)</strong>为主色调,方格草稿纸为背景样式,带来轻量级的 markdown 博客需求。</p>
  <img src="https://img.shields.io/badge/Node.js-%3E%3D22.14.0-brightgreen" alt="Node Version">
  <img src="https://img.shields.io/badge/Astro-%3E%3D7.2.9-brightgreen" alt="Astro Version">
  <img src="https://img.shields.io/github/license/rightdoor/citrus-grid" alt="GitHub License">
  <br>
  <a href="https://citrusgrid.pages.dev">Demo</a> | <a href="./docs/README.en.md">English</a> | <a href="./docs/README.ja.md">日本語</a> | <a href="https://dev.citrusgrid.pages.dev">Dev Demo</a>
</div>

---

<table width="100%" align="center" cellpadding="8" cellspacing="0">
  <tr>
    <th colspan="2" align="center">暗夜模式</th>
  </tr>
  <tr>
    <td align="center"><img src="./docs/dark.webp" alt="暗夜模式"><br>暗夜模式</td>
    <td align="center"><img src="./docs/light.webp" alt="白天模式"><br>白天模式</td>
  </tr>

  <tr>
    <td align="center"><img src="./docs/dark-post.webp" alt="暗夜模式"><br>暗夜模式文章</td>
    <td align="center"><img src="./docs/light-post.webp" alt="白天模式"><br>白天模式文章</td>
  </tr>

  <tr>
    <th colspan="2" align="center">PageSpeed Insights 性能测试</th>
  </tr>
  <tr>
    <td align="center"><img src="./docs/pagespeed-desktop.webp" alt="桌面端性能"><br>桌面端性能</td>
    <td align="center"><img src="./docs/pagespeed-mobile.webp" alt="手机性能"><br>手机性能</td>
  </tr>
</table>

---

## 快速开始

### 环境要求

- Node.js ≥ 22.14.0
- Astro ≥ 7.2.9

### 本地开发部署

1. 克隆仓库:

    ```bash
    git clone https://github.com/rightdoor/citrus-grid.git
    cd citrus-grid
    ```

2. 安装依赖

    ```bash
    # 本项目使用 pnpm 安装依赖,如果没有安装请先安装
    npm install -g pnpm

    pnpm install
    ```

3. 配置博客:

    编辑 `src/site.config.ts` 自定义博客设置

4. 启动开发服务器:

    ```bash
    pnpm dev
    ```

    访问 `http://localhost:4321` 即可查看博客效果

### 平台托管部署

- [Astro 部署指南](https://docs.astro.build/guides/deploy/)
- 网页部署请使用 `pnpm build` 命令构建网站,随后将 `dist` 目录部署至目标平台。

## 配置说明

详细内容请查看配置文件 [site.config.ts](src/site.config.ts)。

## 文章 Frontmatter

```markdown
---
title: example
slug: example
index: 0
description:  example description
category: example
tags: [example, example1]
published: 2026-01-01 00:01:02
updated: 2026-01-01 00:01:03
draft: false
---
```

| 字段 | 是否必填 | 示例 | 描述 |
| --- | --- | --- | --- |
| `title` | 是 | "example" | 文章标题 |
| `slug` | 是 | example | 运行时自动生成,可手动填写,使用`-`分隔单词 |
| `index` | 是 | 0 | 默认为0不置顶,大于0的整数置顶,数值越大越靠前 |
| `description` | 是 | "展示 Markdown 语法的各种类型和示例" | 文章描述 |
| `category` | 是 | "示例" | 文章分类 |
| `tags` | 是 | [Markdown] | 文章标签,多个标签用逗号隔开 |
| `published` | 是 | 2026-01-01 00:01:02 | 文章发布时间,格式为`YYYY-MM-DD HH:mm:ss`,脚本生成自带 |
| `updated` | 否 | 2026-01-01 00:01:03 | 文章更新时间,格式为`YYYY-MM-DD HH:mm:ss`,启动和构建时由脚本按文件修改时间自动写入(可在 `site.config.ts` 关闭) |
| `draft` | 否 | false | 是否草稿,不自动生成 |

## 命令说明

| 命令 | 作用 |
| --- | --- |
| `pnpm dev` / `start` | 启动开发服务器 |
| `pnpm build` | 生产构建,随后自动注入 `modulepreload`、压缩内联脚本,并执行 `pagefind` 生成站内搜索索引 |
| `pnpm preview` | 预览 `dist` 构建产物 |
| `pnpm check` | Astro 类型检查(`astro check`) |
| `pnpm type-check` | TypeScript 类型检查(`tsc --noEmit`,覆盖 `src` 与 `scripts`) |
| `pnpm check-i18n` | 校验 zh / ja / en 语言包键集合一致 |
| `pnpm check-swup-ignore` | 校验 `shouldIgnoreSwup` 内联正则与 `ASSET_EXT_RE` / `RESERVED_PATH_RE` 常量一致 |
| `pnpm new-post [slug]` | 新建文章模板 `src/content/posts/<slug>.md`(省略 slug 时按当天日期命名) |
| `pnpm format-post-meta` | 统一重排所有文章 frontmatter 字段顺序 |
| `pnpm format` | Biome 格式化 `src` |
| `pnpm format:all` | Biome 检查并修复全项目代码(src、scripts、根目录配置文件) |
| `pnpm lint` | Biome 检查并修复 `src` |
| `preinstall` | 自动执行 `only-allow pnpm`,强制使用 pnpm |

## 提交前检查

*文章写完提交前(`pnpm build` 会改写 md 补全 `slug`,必须在 commit 之前执行):

```bash
pnpm format-post-meta
pnpm build
pnpm check
```

代码改完提交前:

```bash
pnpm format:all
pnpm check
pnpm type-check
```

- 改了 i18n 文案加跑 `pnpm check-i18n`;改了 `src/lib/url.ts` 加跑 `pnpm check-swup-ignore`。

## 功能

- [x] i18n 支持(zh、en、ja三语)
- [x] 支持 GFM 语法
- [x] 支持 KaTeX 数学公式
- [x] 明暗主题切换
- [x] 搜索功能(pagefind)
- [x] 评论功能(评论系统可插拔,当前适配 utterances)
- [x] 目录功能(桌面端侧边固定 + 移动端弹窗)
- [x] RSS 订阅功能
- [x] 友链功能
- [x] 代码高亮(Prism 构建期高亮,客户端零 JS)与代码复制按钮
- [x] 图片灯箱(PhotoSwipe)与 LQIP 渐变占位骨架
- [x] 阅读统计(已预留接口)
- [x] 文章相对链接自动转换
- [x] 音乐播放器组件
- [x] 左下角宠物(视线跟随 / 眨眼 / 休眠,可在配置中开关)

## 插件

### 评论插件

当前适配 utterances 评论系统,支持自定义评论插件。

支持自定义评论插件,详细参考 [评论插件](src/comments/使用规则.md)。

### 统计插件

支持全局和文章PV/UV统计,已预留接口。

当前自带统计插件有 `visitor-stats.ts`,项目地址为 [visitor-stats](https://github.com/rightdoor/visitor-stats)。需要在cloudflare worker中自行部署统计服务。

支持自定义统计插件,详细参考 [统计插件](src/stats/使用规则.md)。

## 二次开发文档

需要改造主题(换主色、改布局、加组件、接入评论/统计、排查构建问题)请查阅 [`src/content/posts/all/00-index.md`](src/content/posts/all/00-index.md):

| 文档 | 内容 |
| --- | --- |
| [00-index.md](src/content/posts/all/00-index.md) | 总览与二次开发任务索引 |
| [01-项目结构.md](src/content/posts/all/01-项目结构.md) | 目录树、技术栈、构建流水线、数据流 |
| [02-组件说明.md](src/content/posts/all/02-组件说明.md) | 全部组件 Props 表、DOM 结构、事件协议、图标系统 |
| [03-主题与样式定制.md](src/content/posts/all/03-主题与样式定制.md) | `--wp-*` 变量全表、暗色模式、换肤步骤 |
| [04-站点配置.md](src/content/posts/all/04-站点配置.md) | `site.config.ts` 等 6 个配置文件的参数表 |
| [05-内容与Markdown.md](src/content/posts/all/05-内容与Markdown.md) | Frontmatter 表、markdown 插件链、图片与相对链接 |
| [06-构建与脚本.md](src/content/posts/all/06-构建与脚本.md) | 6 个构建脚本、产物结构、部署 |
| [07-页面与路由.md](src/content/posts/all/07-页面与路由.md) | 路由表、SEO、i18n 现状与扩展 |
| [08-插件系统.md](src/content/posts/all/08-插件系统.md) | 评论 / 统计插件契约、音乐播放器 |
| [09-常见改造与排错.md](src/content/posts/all/09-常见改造与排错.md) | 任务式改造速查、FAQ、自检清单 |

> 基于 `DeepSeek-V4.1-Flash` 检索生成+手动修改,仅供参考。

## 贡献者

<a href="https://github.com/rightdoor/citrus-grid/graphs/contributors">
  <img src="https://contrib.rocks/image?repo=rightdoor/citrus-grid" />
</a>

## License

本项目使用 [MIT License](LICENSE.txt) 开源。详细条款请参阅项目根目录下的 `LICENSE.txt` 文件。
反馈内容错误

看看同类模板

对比同技术栈与用途的模板,找到更适合的视觉与内容结构。