docs+feat: 重构规格与 Gitea 式 SSR 骨架(首页)
在 rebuild/gitea-ssr 落地产品规格、Cursor 规则,以及 Go 模板 SSR 首页/板块列表;未迁移路径仍回落 SPA,便于对照 main。 Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
32
.cursor/rules/rebuild-gitea-ssr.mdc
Normal file
32
.cursor/rules/rebuild-gitea-ssr.mdc
Normal file
@@ -0,0 +1,32 @@
|
||||
---
|
||||
description: Gitea 式 SSR 重构总则(rebuild/gitea-ssr 分支)
|
||||
alwaysApply: true
|
||||
---
|
||||
|
||||
# Gitea 式 SSR 重构
|
||||
|
||||
## 分支
|
||||
|
||||
- 功能开发在 **`rebuild/gitea-ssr`**;**不要**把破坏性 SSR 替换推到 `main`。
|
||||
- `main` 保留 React SPA,用作对照(checkout / worktree)。
|
||||
|
||||
## 渲染
|
||||
|
||||
- 公开页(首页、板块、帖详情、用户页等)必须用 **Go `html/template` 服务端渲染完整 HTML**。
|
||||
- 禁止为已迁移公开页恢复 React SPA 空壳;禁止「用户 SPA + 爬虫专用 HTML」双轨作为长期方案。
|
||||
- JSON `/api` 仅用于交互增强与管理后台,**不得**作为公开页首屏唯一数据来源。
|
||||
|
||||
## 架构参照
|
||||
|
||||
对齐 [Gitea](https://github.com/go-gitea/gitea) 职责划分:
|
||||
|
||||
- `routers/web` — HTML 页面路由
|
||||
- `templates/` — 模板
|
||||
- `web_src/` → `public/assets/` — 渐进增强 CSS/JS
|
||||
- 现有 `service/`、`model/` 可复用业务逻辑
|
||||
|
||||
细节见 [`docs/rebuild-spec/08-gitea-ssr-architecture.md`](docs/rebuild-spec/08-gitea-ssr-architecture.md)。
|
||||
|
||||
## 产品规格
|
||||
|
||||
实现功能前按 [`docs/rebuild-spec/README.md`](docs/rebuild-spec/README.md) 阅读顺序核对;业务规则以 `05-business-rules.md` 为准。
|
||||
20
.cursor/rules/rebuild-spec-source.mdc
Normal file
20
.cursor/rules/rebuild-spec-source.mdc
Normal file
@@ -0,0 +1,20 @@
|
||||
---
|
||||
description: 产品规格为唯一业务事实来源
|
||||
alwaysApply: true
|
||||
---
|
||||
|
||||
# 规格文档对照
|
||||
|
||||
重构实现时以 [`docs/rebuild-spec/`](docs/rebuild-spec/) 为准,不另发明业务语义。
|
||||
|
||||
| 需求类型 | 查阅 |
|
||||
|----------|------|
|
||||
| 要不要做某功能 | `02-features.md` |
|
||||
| 表字段 / 枚举 / settings 键 | `03-data-model.md` |
|
||||
| HTTP 路径与 JSON 形状 | `04-api.md` |
|
||||
| 审核 / 积分 / 门控 / 悬赏等 | `05-business-rules.md` |
|
||||
| 路由与交互信息架构 | `06-pages-ux.md` |
|
||||
| 配置与部署 | `07-config-ops.md` |
|
||||
| SSR 目录与分支 | `08-gitea-ssr-architecture.md` |
|
||||
|
||||
规格与代码冲突时:以**当前分支代码**行为为准,并应回写修正规格。
|
||||
13
.cursor/rules/rebuild-templates.mdc
Normal file
13
.cursor/rules/rebuild-templates.mdc
Normal file
@@ -0,0 +1,13 @@
|
||||
---
|
||||
description: Go HTML 模板约定(SSR)
|
||||
globs: templates/**/*
|
||||
alwaysApply: false
|
||||
---
|
||||
|
||||
# 模板约定
|
||||
|
||||
- 布局:`base.tmpl` + 各页定义 `content` 等 block(或 `{{template}}` 组合);保持片段小而可复用。
|
||||
- **默认转义**:`{{.Title}}` 等普通插值;用户生成 HTML 必须先经现有消毒(如 `SanitizePostHTML`),再用显式安全函数输出,禁止随意放开。
|
||||
- 静态资源走 `/ssr-assets/...`(`public/assets` 嵌入),不要写死外链 CDN(除非产品规格要求)。
|
||||
- 页面数据通过 handler 组装的 view model 传入;模板内不做复杂业务判断。
|
||||
- 中文 UI 文案可写在模板;与品牌相关的站点名等从 settings/view 传入。
|
||||
Reference in New Issue
Block a user