6.3 KiB
6.3 KiB
Muse Blog
一个基于 Laravel 12 + Filament 4 构建的 ins 风格简约大气响应式博客系统。
✨ 特性
- 🎨 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
安装步骤
-
克隆项目
git clone <repository-url> blog cd blog -
安装 PHP 依赖
composer install -
安装前端依赖
npm install -
环境配置
cp .env.example .env php artisan key:generate -
配置数据库
编辑
.env文件,设置数据库连接:DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=blog DB_USERNAME=root DB_PASSWORD= -
运行数据库迁移和填充
php artisan migrate php artisan db:seed -
创建存储链接
php artisan storage:link -
发布资源文件
php artisan filament:assets php artisan livewire:publish --assets -
构建前端资源
npm run build -
启动开发服务器
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 变量。
添加新功能
- 创建迁移:
php artisan make:migration - 创建模型:
php artisan make:model - 创建 Filament 资源:
php artisan make:filament-resource
🔧 常用命令
# 开发环境
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 许可证。
Made with ❤️ using Laravel & Filament