Files
nl-blogs/README.md
2026-08-24 13:06:04 +08:00

77 lines
3.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 年糕博客art-code
个人博客系统,前后端分离。内置多套前台页面模板,支持后台一键切换与自定义布局包上传。
## 功能特性
- 内容管理:文章、分类、专栏、作品、视频、代码片段、标签
- 站点配置全局设置、首页内容、菜单、SEO 均由后台管理
- **多模板体系**:前台页面(首页/博客/作品/关于等全部公开页)可在后台切换模板
- `classic` 经典布局(默认)
- `ubuntu-terminal` Ubuntu 终端风格(`ls` / `cat` / `search` 等命令交互,配色可在终端内自定义并保存)
- 自定义布局包(后台上传 zipJSON 描述区块结构 + 皮肤 CSS
- PPT 演示:文章一键生成 PPT
## 技术栈
| 端 | 技术 |
|---|---|
| 前端 `client/` | Vue 3 + TypeScript + Vite 6 + Tailwind CSS + lucide-vue-next |
| 后端 `server/` | Go + Gin + GORM + MySQL |
| 数据库 | MySQL 5.7+(表结构随启动自动迁移) |
## 快速开始
```bash
# 后端server/
# 1. 复制 .env.example 为 .env 并填写 MySQL 连接
# 2. 启动(数据库迁移在 main.go 启动时自动执行)
cd server
go run main.go # 监听 :8081
# 前端client/
cd client
pnpm install
pnpm dev # 监听 :8888/api 代理到 8081
```
生产构建:`cd client && pnpm build`(产物在 `client/dist/`)。
## 目录结构
```
├── server/ # Go/Gin 后端
│ ├── main.go # 路由注册 + 启动迁移
│ ├── handlers/ # 接口处理器
│ ├── repositories/ # 数据访问 + 表迁移
│ ├── models/ # GORM 模型
│ └── utils/ # 统一响应等
├── client/ # Vue3 前端
│ ├── src/pages/ # 前台页面Home/Blog/Works/About…
│ ├── src/pages/admin/ # 后台管理页面
│ ├── src/layouts/ # 模板布局ClassicLayout / TerminalLayout / CustomLayoutRenderer
│ ├── src/terminal/ # 终端模板引擎(命令解析、输出组件)
│ ├── src/layouts/blocks/ # 自定义布局渲染引擎(白名单块组件)
│ └── src/services/api.ts # API 封装
├── docs/TEMPLATE-DEV.md # 模板开发手册(必读)
└── examples/ # 示例自定义布局包
```
## 模板系统概述
前台模板由后台配置项 `site_template`settings 表)控制,前端 `App.vue` 作为布局分发器按模板渲染:
- `classic``layouts/ClassicLayout.vue`(现有经典布局)
- `ubuntu-terminal``layouts/TerminalLayout.vue`(终端交互)
- 其他 slug → `layouts/CustomLayoutRenderer.vue`(按布局 JSON 渲染自定义包)
**预览不落库**:访问 `/?preview_template=<slug>` 可临时预览任意模板,适合后台确认后再切换。
后台入口:系统设置 → 模板管理(上传/启用/设为当前/预览/详情/删除)。
> 内置模板classic / ubuntu-terminal不可删除、不可改名、不可停用自定义模板可删除当前使用中的除外
## 文档
- **[模板开发手册](docs/TEMPLATE-DEV.md)**模板体系、终端命令表、URL 深链映射、自定义布局包规范manifest / layout schema、zip 限制、skin 隔离约定)、后台操作流程与前端扩展指南