2026-08-24 13:11:21 +08:00
2026-07-30 14:11:52 +08:00
2026-07-30 14:14:28 +08:00
2026-07-11 18:11:59 +08:00
2026-01-15 13:51:44 +08:00
2026-08-24 13:11:21 +08:00
2026-08-24 13:06:04 +08:00
2026-01-15 13:51:44 +08:00
2026-07-30 14:11:26 +08:00
2026-08-24 13:06:04 +08:00
2026-08-24 13:06:04 +08:00
2026-08-24 13:06:04 +08:00
2026-01-15 13:51:44 +08:00

年糕博客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+(表结构随启动自动迁移)

快速开始

# 后端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_templatesettings 表)控制,前端 App.vue 作为布局分发器按模板渲染:

  • classiclayouts/ClassicLayout.vue(现有经典布局)
  • ubuntu-terminallayouts/TerminalLayout.vue(终端交互)
  • 其他 slug → layouts/CustomLayoutRenderer.vue(按布局 JSON 渲染自定义包)

预览不落库:访问 /?preview_template=<slug> 可临时预览任意模板,适合后台确认后再切换。

后台入口:系统设置 → 模板管理(上传/启用/设为当前/预览/详情/删除)。

内置模板classic / ubuntu-terminal不可删除、不可改名、不可停用自定义模板可删除当前使用中的除外

文档

  • 模板开发手册模板体系、终端命令表、URL 深链映射、自定义布局包规范manifest / layout schema、zip 限制、skin 隔离约定)、后台操作流程与前端扩展指南
Description
前后端都在这里
Readme 89 MiB
Languages
Vue 53%
Go 19.4%
TypeScript 12.8%
HTML 7.7%
CSS 3.8%
Other 3.3%