# RhenCloud's Blog

一个基于 Nuxt 3 + Vue 3 + Tailwind CSS 构建的现代化技术博客平台。

![License](https://img.shields.io/badge/License-MIT-green)
![Node](https://img.shields.io/badge/Node-24.12.0-blue)
![Nuxt](https://img.shields.io/badge/Nuxt-4.2.2-brightgreen)
![Vue](https://img.shields.io/badge/Vue-3.5.26-brightgreen)

## ✨ 特性

- 🚀 **高性能** - 基于 Nuxt 4，支持 SSR/SSG
- 🎨 **现代化设计** - Tailwind CSS + 深色模式支持
- 📝 **内容管理** - 使用 Nuxt Content 管理 Markdown 文章
- 🔍 **搜索功能** - 集成 Fuse.js 实现模糊搜索
- 📱 **响应式设计** - 完美适配各种设备
- 🌐 **SEO 优化** - 完整的 meta 标签、sitemap、RSS 支持
- 💬 **评论系统** - 集成 Twikoo 评论服务
- 🎯 **分类/标签** - 灵活的文章分类与标签系统
- 📊 **统计分析** - 支持 Umami 分析
- 🎭 **主题切换** - 自动亮/暗色主题切换

## 📂 项目结构

```plaintext
.
├── app/                          # 应用根目录
│   ├── assets/                   # 静态资源
│   │   ├── css/                  # 样式文件
│   │   └── images/               # 图片资源
│   ├── components/               # Vue 组件
│   │   ├── archive/              # 归档相关组件
│   │   ├── posts/                 # 博客相关组件
│   │   ├── category/             # 分类相关组件
│   │   ├── content/              # 内容组件
│   │   └── main/                 # 主要组件
│   ├── config/                   # 配置文件
│   ├── data/                     # 数据文件
│   ├── layouts/                  # 布局组件
│   ├── pages/                    # 页面路由
│   │   ├── archive/              # 归档页面
│   │   ├── posts/                # 博客列表页面
│   │   ├── categories/           # 分类页面
│   │   ├── tags/                 # 标签页面
│   │   └── about.vue             # 关于页面
│   ├── plugins/                  # 插件
│   ├── types/                    # TypeScript 类型定义
│   ├── utils/                    # 工具函数
│   ├── app.config.ts             # 应用配置
│   ├── app.vue                   # 根组件
│   └── router.options.ts         # 路由配置
├── content/                      # 文章内容
│   ├── about.md                  # 关于页内容
│   └── posts/                    # 博客文章目录
├── public/                       # 公共资源
├── server/                       # 服务端代码
│   └── api/                      # API 路由
├── nuxt.config.ts                # Nuxt 配置
├── tailwind.config.js            # Tailwind 配置
├── tsconfig.json                 # TypeScript 配置
├── content.config.ts             # Content 配置
└── package.json                  # 依赖管理
```

## 🛠 技术栈

### 核心框架

- **Nuxt 4.2.2** - Vue 3 框架
- **Vue 3.5.26** - 前端框架
- **TypeScript 5.9.3** - 类型安全

### 样式与 UI

- **Tailwind CSS 4.1.18** - 原子化 CSS 框架
- **@tailwindcss/typography** - 排版样式
- **@tailwindcss/forms** - 表单样式
- **@nuxt/ui** - UI 组件库

### 内容与 SEO

- **@nuxt/content 3.8.2** - 内容管理
- **@nuxtjs/sitemap 7.5.0** - Sitemap 生成
- **nuxt-og-image 5.1.13** - OG 图片生成
- **fuse.js** - 模糊搜索

### 图标与字体

- **@nuxt/icon 2.1.1** - 图标库
- **@nuxt/fonts 0.12.1** - 字体管理
- **@iconify-json/** - Iconify 图标集

### 其他功能

- **@nuxt/image 2.0.0** - 图片优化
- **@nuxtjs/color-mode 4.0.0** - 暗黑模式
- **@vueuse/nuxt 14.1.0** - Vue Hooks 库
- **@formkit/auto-animate 0.9.0** - 自动动画
- **twikoo 1.6.44** - 评论系统
- **feed 5.1.0** - RSS 生成

## 🚀 快速开始

### 前置要求

- Node.js 24.12.0 或更高版本
- Bun（推荐）或 npm

### 安装依赖

```bash
# 使用 Bun（推荐）
bun install

# 或使用 npm
npm install
```

### 开发模式

```bash
bun dev
# 访问 http://localhost:3000
```

### 生产构建

```bash
# 构建应用
bun run build

# 预览构建结果
bun run preview
```

### 生成静态网站

```bash
bun run generate
```

## 📝 配置指南

### 站点配置

编辑 `app/config/index.ts` 自定义网站配置：

```typescript
const siteConfig = {
  siteMeta: {
    title: "你的博客标题",
    description: "你的博客描述",
    author: "你的名字",
    url: "https://你的域名",
    keywords: ["关键词 1", "关键词 2"],
    email: "你的邮箱",
    lang: "zh-CN",
    favicon: "/favicon.svg",
  },
  // ... 其他配置
}
```

### 评论系统

在 `app/config/index.ts` 配置 Twikoo：

```typescript
comment: {
  twikoo: {
    enable: true,
    envId: "你的 Twikoo 环境 ID",
  },
}
```

## 📄 文章格式

在 `content/blogs/` 目录下创建 Markdown 文件：

```markdown
---
title: "文章标题"
description: "文章描述"
date: "2026-01-01"
image: "/blogs-img/example.jpg"
alt: "图片描述"
tags: ["标签 1", "标签 2"]
categories: ["分类 1"]
published: true
---

文章内容。..
```

### Front Matter 字段说明

| 字段 | 类型 | 说明 |
| ------ | ------ | ------ |
| `title` | string | 文章标题 |
| `description` | string | 文章描述 |
| `date` | string | 发布日期 (YYYY-MM-DD) |
| `image` | string | 文章封面图 |
| `alt` | string | 图片描述 |
| `tags` | array | 文章标签 |
| `categories` | array | 文章分类 |
| `published` | boolean | 是否发布 |

## 🎨 自定义样式

项目使用 Tailwind CSS，全局样式在 `app/assets/css/main.css` 中定义。

修改 `tailwind.config.js` 可自定义：

- 颜色方案
- 排版
- 间距
- 响应式断点
- 等等

## 📊 SEO 优化

项目内置完整的 SEO 优化：

- ✅ Meta 标签（title, description, keywords）
- ✅ hreflang 标签（多语言）
- ✅ Canonical 标签
- ✅ Sitemap 自动生成
- ✅ RSS 订阅源

## 🔧 常用命令

```bash
# 开发
bun dev              # 启动开发服务器
bun run build        # 构建生产版本
bun run preview      # 预览生产版本
bun run generate     # 生成静态网站

# 代码质量
bun run lint         # 检查代码
bun run lint:fix     # 修复代码问题
bun run format       # 检查代码格式
bun run format:fix   # 格式化代码
```

## 📱 浏览器支持

- Chrome（最新版）
- Firefox（最新版）
- Safari（最新版）
- Edge（最新版）

## 🤝 贡献

欢迎提交 Issue 和 Pull Request！

## 📄 许可证

MIT License - 详见 [LICENSE](LICENSE)

## 👤 作者

## RhenCloud

- GitHub: [@RhenCloud](https://github.com/RhenCloud)
- Email: <i@rhen.cloud>
- Website: [https://rhen.cloud](https://rhen.cloud)
- Telegram: [@RhenCloud](https://t.me/RhenCloud)
- Bilibili: [RhenCloud](https://space.bilibili.com/1502883335)
- X: [@RhenCloud75](https://x.com/RhenCloud75)

## 🔗 相关链接

- 博客地址：[https://blog.rhen.cloud](https://blog.rhen.cloud)
- Nuxt 文档：[https://nuxt.com](https://nuxt.com)
- Tailwind CSS: [https://tailwindcss.com](https://tailwindcss.com)
- Nuxt Content: [https://content.nuxt.com](https://content.nuxt.com)
- Twikoo 评论：[https://twikoo.js.org](https://twikoo.js.org)

## 📝 更新日志

### 2026-01-01

- ✨ 初始化项目
- ✅ 完整的 SEO 优化
- ✅ 搜索功能
- ✅ 深色模式支持
- ✅ 评论系统集成
- ✅ Sitemap 和 RSS 支持

---
