# Muse Blog

一个基于 Laravel 12 + Filament 4 构建的 ins 风格简约大气响应式博客系统。

![Laravel](https://img.shields.io/badge/Laravel-12.x-red?style=flat-square&logo=laravel)
![Filament](https://img.shields.io/badge/Filament-4.x-yellow?style=flat-square)
![TailwindCSS](https://img.shields.io/badge/TailwindCSS-4.x-blue?style=flat-square&logo=tailwindcss)
![License](https://img.shields.io/badge/License-MIT-green?style=flat-square)

## ✨ 特性

- 🎨 **ins 风格设计** - 简约大气的现代化 UI，支持图片墙展示
- 📱 **完全响应式** - 适配桌面、平板、手机等各种设备
- 🔧 **强大后台** - 基于 Filament 4 的现代化管理面板
- 🏷️ **分类与标签** - 灵活的内容组织方式
- 🔍 **全文搜索** - 快速找到想要的内容
- ⭐ **精选文章** - 首页突出展示重要内容
- 📊 **阅读统计** - 文章浏览量自动统计
- 🖼️ **图片管理** - 支持封面图和多图图片墙

## 📸 截图

### 前台首页
- 精选文章轮播展示
- ins 风格瀑布流布局
- 分类标签快速筛选

### 后台管理
- 文章管理（富文本编辑、图片上传）
- 分类管理
- 标签管理（支持自定义颜色）

## 🛠️ 技术栈

- **后端框架**: Laravel 12
- **管理面板**: Filament 4
- **前端框架**: TailwindCSS 4
- **构建工具**: Vite
- **数据库**: MySQL / SQLite / PostgreSQL

## 📦 安装

### 环境要求

- PHP >= 8.2
- Composer
- Node.js >= 18
- MySQL 8.0+ / SQLite / PostgreSQL

### 安装步骤

1. **克隆项目**
   ```bash
   git clone <repository-url> blog
   cd blog
   ```

2. **安装 PHP 依赖**
   ```bash
   composer install
   ```

3. **安装前端依赖**
   ```bash
   npm install
   ```

4. **环境配置**
   ```bash
   cp .env.example .env
   php artisan key:generate
   ```

5. **配置数据库**
   
   编辑 `.env` 文件，设置数据库连接：
   ```env
   DB_CONNECTION=mysql
   DB_HOST=127.0.0.1
   DB_PORT=3306
   DB_DATABASE=blog
   DB_USERNAME=root
   DB_PASSWORD=
   ```

6. **运行数据库迁移和填充**
   ```bash
   php artisan migrate
   php artisan db:seed
   ```

7. **创建存储链接**
   ```bash
   php artisan storage:link
   ```

8. **发布资源文件**
   ```bash
   php artisan filament:assets
   php artisan livewire:publish --assets
   ```

9. **构建前端资源**
   ```bash
   npm run build
   ```

10. **启动开发服务器**
    ```bash
    php artisan serve
    ```

## 🚀 使用

### 访问地址

- **博客前台**: http://localhost:8000
- **后台管理**: http://localhost:8000/admin

### 默认管理员账户

- **邮箱**: `admin@example.com`
- **密码**: `password`

> ⚠️ 请在生产环境中修改默认密码！

## 📁 项目结构

```
blog/
├── app/
│   ├── Filament/
│   │   └── Resources/          # Filament 后台资源
│   │       ├── CategoryResource.php
│   │       ├── TagResource.php
│   │       └── PostResource.php
│   ├── Http/
│   │   └── Controllers/
│   │       └── BlogController.php  # 前台控制器
│   └── Models/
│       ├── Category.php
│       ├── Tag.php
│       ├── Post.php
│       └── User.php
├── database/
│   ├── migrations/             # 数据库迁移
│   ├── factories/              # 模型工厂
│   └── seeders/
│       └── BlogSeeder.php      # 示例数据填充
├── resources/
│   ├── css/
│   │   └── app.css             # 样式文件
│   └── views/
│       ├── components/
│       │   ├── layout.blade.php
│       │   └── post-card.blade.php
│       └── blog/
│           ├── index.blade.php     # 首页
│           ├── show.blade.php      # 文章详情
│           ├── category.blade.php  # 分类页
│           ├── tag.blade.php       # 标签页
│           └── search.blade.php    # 搜索页
└── routes/
    └── web.php                 # 路由定义
```

## 📊 数据库结构

### categories 分类表
| 字段 | 类型 | 说明 |
|------|------|------|
| id | bigint | 主键 |
| name | string | 分类名称 |
| slug | string | URL 别名 |
| description | text | 描述 |
| cover_image | string | 封面图片 |
| sort_order | int | 排序 |
| is_active | boolean | 是否启用 |

### tags 标签表
| 字段 | 类型 | 说明 |
|------|------|------|
| id | bigint | 主键 |
| name | string | 标签名称 |
| slug | string | URL 别名 |
| color | string | 标签颜色 |

### posts 文章表
| 字段 | 类型 | 说明 |
|------|------|------|
| id | bigint | 主键 |
| user_id | bigint | 作者 ID |
| category_id | bigint | 分类 ID |
| title | string | 标题 |
| slug | string | URL 别名 |
| excerpt | text | 摘要 |
| content | longtext | 正文 |
| cover_image | string | 封面图片 |
| gallery | json | 图片墙 |
| status | enum | 状态 (draft/published/scheduled) |
| published_at | timestamp | 发布时间 |
| is_featured | boolean | 是否精选 |
| views_count | int | 浏览量 |
| likes_count | int | 点赞数 |

## 🎨 自定义

### 修改主题颜色

编辑 `resources/css/app.css` 文件中的 CSS 变量。

### 修改字体

在 `resources/views/components/layout.blade.php` 中修改 Google Fonts 链接和 CSS 变量。

### 添加新功能

1. 创建迁移：`php artisan make:migration`
2. 创建模型：`php artisan make:model`
3. 创建 Filament 资源：`php artisan make:filament-resource`

## 🔧 常用命令

```bash
# 开发环境
npm run dev                     # 启动 Vite 开发服务器
php artisan serve               # 启动 Laravel 开发服务器

# 构建生产环境
npm run build                   # 构建前端资源

# 数据库
php artisan migrate             # 运行迁移
php artisan migrate:fresh --seed # 重置数据库并填充数据

# 缓存
php artisan optimize:clear      # 清除所有缓存
php artisan filament:assets     # 发布 Filament 资源
```

## 📝 开发计划

- [ ] 评论系统
- [ ] 用户注册登录
- [ ] 文章点赞收藏
- [ ] 社交媒体分享
- [ ] RSS 订阅
- [ ] SEO 优化
- [ ] 多语言支持

## 🤝 贡献

欢迎提交 Issue 和 Pull Request！

## 📄 许可证

本项目采用 [MIT](LICENSE) 许可证。

---

Made with ❤️ using Laravel & Filament
