Astro-based static blog theme using Tailwind CSS and TypeScript
astro-theme-cyanwind — Astro Blog Template
By rusin-dev
CyanWind is a personal blog theme built on Astro, using Tailwind CSS and TypeScript, with built-in Pagefind search, Waline comments, MDX and KaTeX math support, under the MIT license.
Explore the design
Compare the page layouts and mobile experience. Open any screenshot for a closer look.
Actual screenshot captured by the server browser.
All pages & views 3
Screenshots show visual appearance; interactive behavior may differ.
What stands out
A quick read of the recorded project description.
Built-in Pagefind full-text search and Waline comment system integration
Supports Markdown and MDX content, with Shiki code highlighting and KaTeX math formulas
Provides tag categories, academic categories, project showcase, friend links, and writing statistics pages
Supports bilingual Chinese-English configuration and sharing to Weibo, X, and Bluesky
MIT licensed, with build commands for Vercel, Cloudflare Pages, GitHub Pages, etc.
Template Details
CyanWind is an Astro theme for personal blogs and content creation. The repository is at rusin-dev/astro-theme-cyanwind, licensed under MIT, authored by Rusin, with a demo site at blog.rusin7.com. The theme uses Astro as a static site generation framework, styles driven by Tailwind CSS, code in TypeScript, and supports Markdown and MDX content.
Functionally, the theme includes Pagefind full-text search, Waline comment system, Shiki code highlighting, KaTeX math rendering, and Sharp image processing. It also provides tag categories, academic categories, friend links, blog writing statistics, and social sharing to Weibo, X, and Bluesky. Content organization distinguishes between articles, academic, projects, friend links, about, tags, and other page types, and supports bilingual Chinese-English configuration.
For usage and configuration, the main config file is src/site.config.ts, where you can set site title, author, description, navigation menu, language and date format, favicon, and integration switches; articles are defined via frontmatter for title, publication date, tags, description, category, and header image, and can also be generated with the pnpm new command. For building, it offers Vercel, Cloudflare Pages, GitHub Pages, and generic static hosting (output to dist/).
Limitations and notes: The theme requires Node.js 18+ and recommends pnpm; Waline comments require self-configuring the server per official documentation; demo images, fonts, icons, and other third-party assets need separate license verification, as the code's MIT license does not cover them; domains, hosting, and other external services may incur additional charges.
Is it right for your project?
Use Cases
- Building a personal tech blog or writing site
- Publishing academic or technical articles with math formulas and code highlighting
- Independent blogs needing on-site search and comment interaction
- Personal sites maintaining content in both Chinese and English
Suitable For
- Developers familiar with or willing to use Astro and pnpm
- Personal bloggers needing a Markdown/MDX writing workflow
- Site maintainers who want to configure comment and search services themselves
Getting started & customization
Use these recorded setup notes alongside the repository instructions for your chosen version.
- 1
Prerequisite: Node.js 18+, pnpm recommended for installing dependencies
- 2
Create a project using this repository as a template via npm create astro or pnpm dlx create-astro
- 3
Edit src/site.config.ts to configure site title, author, navigation, language, and integration switches
- 4
Waline comments require self-configuring the server per official documentation
- 5
Build commands vary by platform: build:vercel, build:cloudflare, build:github, or build to output to dist/
License & source material
Usage conditions & limitations
Free to use · keep license noticeThis entry covers the free version under the MIT license in the public repository; the free scope is the code of this version and does not imply that external services or third-party assets are free.
Must comply with when using
- Free to use, modify, commercially use, and distribute the code of this version.
- When distributing copies or substantial portions of the code, retain the original author's copyright notice and the full MIT license notice.
- The code is provided as-is; warranties and liability limitations are governed by the original license and applicable law.
Additional costs & items to verify
- The Waline comment feature requires deploying and configuring the server yourself per official documentation; it is an external service dependency, not a built-in ready-to-use feature of the theme.
- Using this theme requires a local environment with Node.js 18 or above, and the pnpm package manager is recommended.
- Demo images, fonts, icons, and other third-party assets need to be checked against their respective licenses; they cannot be judged solely by the code's MIT license.
- External services such as domains, hosting, databases, payments, or AI may incur additional charges.
View Original Text Basis
Permission is hereby granted, free of charge
Original License Text
具体如何配置 waline 评论,参见[官方文档](https://waline.js.org)。
Original README
https://github.com/rusin-dev/astro-theme-cyanwind/blob/main/LICENSEhttps://github.com/rusin-dev/astro-theme-cyanwind/blob/main/README.md- Node.js 18+ - pnpm (推荐) 或 npm
Original README
Compiled by DeepSeek based on repository license and README ·2026-10-01. Results only cover the materials read; dependencies, images, fonts, and subsequent term changes are subject to their respective original texts.
Project checks & description sources
Template Information
- Source platforms
- GitHub
- Documentation and maintenance reference score
- More documented · 83 / 100
- Technologies
- Astro
- Website type
- Blog
How this score is calculated
Our heuristic uses license records (up to 30), a demo link (12), a preview (10), stars (15), recorded maintenance (15), description completeness (8), feature records (5) and classification data (5). It is not a code, security or performance test, or a Google score. A link does not establish tested functionality.
What to verify for this project
- Repository update recorded
- 2026-09-29
- Screenshot last checked
- 2026-10-01
A demo link is listed. Check it with your own content and viewport sizes; its presence does not confirm that forms, authentication or payments work.
The catalog identifies Astro as the primary stack. Check the actual dependency manifest and lockfile for versions and hosting requirements. These notes use recorded metadata, not a code audit or a deployment test.
Use a selection guide →How this description was prepared
AI-assisted description based on catalog records and repository material. Repository authors are not automatically the reviewers of this description.
Automatically checked against source and license rules; no manual editorial review.
Inspect the recorded source material
SHA-256: 39201d10c2c439e8490d7480b9a46b9cee7023e023f51aef84eb30eb6e4b4cf0
2026-10-01T13:33:17.662Z
Source file / repository<div align="center">
<a href="./public/theme.svg"><img width="40%" alt="logo" src="https://cdn.luogu.com.cn/upload/image_hosting/uwxcg3ya.png" /></a>
<h1><b>CyanWind | 青风</b></h1>
<p><em>一个简单、轻量 astro 框架博客主题,加载快速,SEO 友好,开箱即用。</em></p>
<p>
简体中文 | <a href="https://github.com/rusin-dev/astro-theme-cyanwind/blob/main/README_en.md">English</a> | <a href="https://blog.rusin7.com">Demo</a>
</p>
<p>作者:<a href="https://github.com/ruying-suixing">如形</a></p>
<p align="center">
<a href="https://github.com/rusin-dev/astro-theme-cyanwind/blob/main/LICENSE"><img src="https://img.shields.io/github/license/rusin-dev/astro-theme-cyanwind" alt="License" /></a>
<a href="https://github.com/rusin-dev/astro-theme-cyanwind/releases"><img src="https://img.shields.io/github/release/rusin-dev/astro-theme-cyanwind" alt="latest version" /></a>
<a href="https://github.com/rusin-dev/astro-theme-cyanwind/releases"><img src="https://img.shields.io/github/downloads/rusin-dev/astro-theme-cyanwind/total?color=%239F7AEA&logo=github" alt="Downloads" /></a>
<a href="https://github.com/rusin-dev/astro-theme-cyanwind/stargazers"><img src="https://img.shields.io/github/stars/rusin-dev/astro-theme-cyanwind" alt="Stars" /></a>
<a href="https://github.com/rusin-dev/astro-theme-cyanwind/network/members"><img src="https://img.shields.io/github/forks/rusin-dev/astro-theme-cyanwind" alt="Forks" /></a>
<a href="https://www.repostatus.org/#active"><img src="https://img.shields.io/badge/repo%20status-Active-Green" alt="Project Status: Active – The project has reached a stable, usable state and is being actively developed."></a>
<a href="./"><img src="https://img.shields.io/badge/astro--theme-cyanwind-cyan" alt="theme">
</a>
<a href="./"><img src="https://img.shields.io/badge/version-2.0.0-blue?style=flat-square" alt="version"></a>
</p>
</div>
<div align="center">
<img src="https://s0.wp.com/mshots/v1/https://blog.rusin7.com/" alt="截图" />
</div>
一个现代化、功能丰富的 Astro 主题,专为个人博客和内容创作设计。采用 Astro、Tailwind CSS 和 TypeScript 构建,提供最佳的开发体验。
---
## ✨ 特性
- **🚀 性能优先** - 基于 Astro 构建,提供闪电般的静态网站生成速度
- **🎨 精美设计** - 简洁现代的 UI 设计,Tailwind CSS 驱动,支持深色模式
- **📝 MDX 支持** - 使用 Markdown 编写内容并嵌入组件
- **🔍 全文搜索** - 内置 Pagefind 搜索功能
- **💬 评论系统** - 集成 Waline 评论系统
- **📊 博客统计** - 跟踪写作统计数据
- **🏷️ 标签分类** - 通过标签和学术分类组织内容
- **🔗 友情链接** - 展示和管理友情链接
- **📱 响应式设计** - 完全适配所有设备
- **🌐 多语言支持** - 支持中英文双语
- **📱 社交分享** - 支持分享到微博、X 和 Bluesky
- **🎯 SEO 优化** - 网站地图、RSS 订阅、结构化数据
- **⚡ 图片优化** - 使用 Sharp 自动优化图片
- **🧮 数学公式** - 支持 KaTeX 数学公式
- **🎀 易于定制** - 灵活的主题配置选项
---
## 🚀 快速开始
### 前置要求
- Node.js 18+
- pnpm (推荐) 或 npm
### 安装步骤
1. **克隆仓库**
```bash
# npm 7+
npm create astro@latest cyanwind-blog -- --template rusin-dev/astro-theme-cyanwind
# 或 pnpm(用 npm install -g pnpm 安装)
pnpm dlx create-astro cyanwind-blog --template rusin-dev/astro-theme-cyanwind
cd cyanwind-blog
```
2. **安装依赖**
```bash
pnpm install
```
3. **配置网站**
编辑 `src/site.config.ts` 进行自定义:
- 网站标题和作者信息
- 导航菜单
- 个人信息和社交链接
- 主题设置和集成选项
4. **启动开发服务器**
```bash
pnpm dev
```
访问 `http://localhost:3000` 查看你的网站
5. **生产构建**
```bash
pnpm build
```
---
## 📖 可用命令
| 命令 | 说明 |
| :------: | :------: |
| `pnpm dev` | 启动开发服务器,自动重载 |
| `pnpm dev:force` | 强制重启开发服务器 |
| `pnpm dev:check` | 开发服务器 + TypeScript 检查 |
| `pnpm build` | 生产环境构建 |
| `pnpm preview` | 预览生产构建结果 |
| `pnpm check` | 运行 TypeScript 类型检查 |
| `pnpm lint` | 代码检查并自动修复 |
| `pnpm format` | 使用 Prettier 格式化代码 |
| `pnpm quality` | 运行所有代码质量检查 |
| `pnpm sync` | 同步 Astro 内容集合 |
| `pnpm clean` | 清理构建产物 |
| `pnpm new "name"` | 新建文章(`pnpm new -h` 查看详细信息) |
---
## 🛠️ 配置
### 主配置文件: `src/site.config.ts`
#### 基础设置
```typescript
export const theme: ThemeUserConfig = {
title: "你的博客标题",
titleEn: '你的英语博客标题',
author: "你的名字",
author: "你的英文名",
description: "博客描述",
descriptionEn: "博客英文描述"
favicon: "/favicon/favicon.ico",
locale: { /* 语言和日期设置 */ }
}
```
#### 导航菜单
```typescript
header: {
menu: [
{ title: '文章', titleEn: 'Articles', link: '/article' },
{ title: '学术', titleEn: 'Academic', link: '/academic' },
// 添加更多菜单项...
]
}
```
#### 集成功能
```typescript
export const integ: IntegrationUserConfig = {
pagefind: true, // 启用搜索
waline: { enable: true }, // 启用评论
// 更多集成选项...
}
```
具体如何配置 waline 评论,参见[官方文档](https://waline.js.org)。
查看 `src/site.config.ts` 了解完整的配置选项。
---
## 📁 项目结构
```text
.
├── src/
│ ├── assets/ # 图片和静态资源
│ ├── components/ # 可复用的 Astro 组件
│ ├── content/ # Markdown 内容文件
│ ├── layouts/ # 页面布局
│ ├── pages/ # 路由页面
│ ├── schemas/ # 内容集合 Schema
│ ├── site.config.ts # 主配置文件
│ └── types/ # TypeScript 类型定义
├── public/ # 静态文件
├── astro.config.mjs # Astro 配置
├── tailwind.config.mjs # Tailwind CSS 配置
└── package.json # 项目依赖
```
---
## 📝 内容组织
### 博客文章
在 `src/content/` 中放置博客文章或者使用 `pnpm new "title"` | `pnpm new -l en "title"` 新建以 `title` 为题的 markdown 文章,详见 `pnpm new -h` | See `pnpm new -h en`,使用以下 frontmatter 格式(`pnpm new` 可以自动生成 `publishDate`):
```markdown
---
title: "文章标题"
publishDate: 2024-01-01
tags: [标签1, 标签2]
description: "文章描述"
category: (可选)
heroImage: #头图
src: (可选)
color: "#7da7d4" (可选)
---
你的内容在这里...
```
### 页面类型
- **文章** - 主要博客文章 (`/article`)
- **学术** - 学术内容 (`/academic`)
- **项目** - 项目展示 (`/projects`)
- **友链** - 友情链接管理 (`/links`)
- **关于** - 关于页面 (`/about`)
- **标签** - 标签页面(`/tags`)
自定义请在 ./src/pages 中更改,也可以提交 PR。
---
## 🎨 自定义
### 主题与样式
- 在 `tailwind.config.mjs` 中自定义 Tailwind CSS
- 在 `src/components/` 中修改组件样式
- 在 `src/site.config.ts` 中通过 `customCss` 选项添加自定义 CSS
### 添加自定义页面
1. 在 `src/pages/` 中创建新的 `.astro` 或 `.md` 文件
2. 使用 `src/layouts/` 中的相应布局
3. 文件会自动生成对应的路由
---
## 🔗 部署
本主题支持多个部署平台:
### Vercel
```bash
pnpm build:vercel
```
### Cloudflare Pages
```bash
pnpm build:cloudflare
```
### GitHub Pages
```bash
pnpm build:github
```
### 静态托管
```bash
pnpm build
# 输出在 `dist/` 目录
```
---
## 🔧 技术栈
- **框架:** [Astro 7.2+](https://astro.build)
- **样式:** [Tailwind CSS 3](https://tailwindcss.com)
- **语言:** [TypeScript 5](https://www.typescriptlang.org)
- **内容:** MDX 和 Markdown 支持
- **搜索:** [Pagefind](https://pagefind.app)
- **评论:** [Waline](https://waline.js.org)
- **代码高亮:** [Shiki](https://shiki.matsu.io)
- **数学公式:** [KaTeX](https://katex.org)
- **图标:** [Simple Icons](https://simpleicons.org)
- **图片处理:** [Sharp](https://sharp.pixelplumbing.com)
---
## 📦 核心依赖
| 包名 | 用途 |
|------|------|
| `astro` | 静态网站生成器 |
| `@astrojs/mdx` | MDX 集成 |
| `tailwindcss` | 实用优先的 CSS 框架 |
| `typescript` | 类型安全 |
| `@pagefind/default-ui` | 全文搜索 |
| `@waline/client` | 评论系统 |
| `shiki` | 语法高亮 |
| `rehype-katex` | 数学公式支持 |
---
## 🤝 贡献指南
欢迎贡献!请自由提交 Issue 和 Pull Request。
1. Fork 本仓库
2. 创建特性分支 (`git checkout -b feature/AmazingFeature`)
3. 提交更改 (`git commit -m 'Add some AmazingFeature'`)
4. 推送到分支 (`git push origin feature/AmazingFeature`)
5. 开启 Pull Request
---
## 📄 许可证
本项目采用 MIT 许可证。详见 LICENSE 文件。
---
## 🙏 致谢
- 基于 [Astro](https://astro.build) 构建
- 样式由 [Tailwind CSS](https://tailwindcss.com) 驱动
- 评论系统由 [Waline](https://waline.js.org) 提供
- 搜索功能由 [Pagefind](https://pagefind.app) 提供
---
## 📞 支持与联系
- **作者:** 如形 (Rusin)
- **GitHub:** [ruying-suixing](https://github.com/ruying-suixing)
- **邮箱:** [[email protected]](mailto:[email protected])
- **网站:** [https://blog.rusin7.com](https://blog.rusin7.com)
---
**用 ❤️ 由 Rusin 制作**
Explore similar templates
Compare previews and descriptions within the same stack and category.

astrowind
AstroWind is a free, open-source Astro starter theme using Astro and Tailwind CSS, released under the MIT license.
Astro · Blog

astro-paper
AstroPaper is a minimal, responsive, accessible, and SEO-friendly Astro blog theme. Articles are stored as Markdown/MDX in src/content/posts/, with subdirectories affecting URLs.
Astro · Blog

fuwari
Fuwari is a static blog template built with Astro and Tailwind CSS for personal blogs. It manages posts as Markdown files in src/content/posts/, with frontmatter for title, date, description, cover, tags, categories, draft status, and language.
Astro · Blog

Firefly
Firefly is a clean personal blog theme forked from Astro and Fuwari, offering four background modes, single/double sidebar and list/grid layouts, Pagefind client-side full-text search, and a six-language UI.
Astro · Blog

astro-theme-cactus
Astro Cactus is an Astro-based blog and portfolio theme that uses Markdown/MDX content collections to manage posts, notes, and tags, with frontmatter type-checked by a schema.
Astro · Portfolio

astrofy
Astrofy is a free and open-source personal portfolio website template built with Astro and TailwindCSS, with built-in blog, CV timeline, project showcase, store, and RSS feed modules.
Astro · Portfolio
