Docs / 项目结构

项目结构

go-press/
├── cmd/
│   ├── server/main.go          # 服务启动入口
│   └── gendoc/main.go          # Swagger 文档生成工具
│
├── core/                       # ========== 引擎核心 ==========
│   ├── engine.go               # 引擎生命周期(启动/路由/关停/App 接口/registerCoreTypes)
│   ├── bootstrap.go            # BuildAndBootstrap 一键式启动编排
│   ├── migrate.go              # 数据库自动迁移(GORM AutoMigrate)
│   ├── seeder.go               # 声明式数据种子(TOML 驱动,图片自动下载 + 媒体注册)
│   ├── themes.go               # 主题注册表 + 工厂
│   ├── plugins.go              # 插件注册表 + 工厂
│   ├── handler.go              # HandlerSwitcher(安装器 ↔ 应用热切换)
│   ├── table_registry.go       # 表注册表(追踪 Core/Plugin/Theme 表归属)
│   │
│   ├── content/                # 统一内容系统
│   │   ├── content.go          #   Content + ContentMeta 模型
│   │   ├── meta.go             #   ContentMeta 键值扩展
│   │   ├── types.go            #   ContentType 注册表(ContentTypeDef + Registry + AddContentTypeToTaxonomy)
│   │   ├── query.go            #   链式查询构建器(WP_Query 风格)
│   │   ├── scope.go            #   请求级内容过滤 API(AddContentScope / ScopedDB)
│   │   └── repository.go       #   通用 CRUD(Create/Update/Delete/Find/FindBySlug)
│   │
│   ├── taxonomy/               # 分类法(Term + Taxonomy + TermRelationship)
│   ├── user/                   # 用户 + JWT 认证 + RBAC(角色/能力)
│   ├── i18n/                   # 核心 i18n 系统(Manager + go-i18n Bundle + T() + TranslateOption/TranslateSettings)
│   ├── option/                 # 全局设置 + Translatable 注册表(RegisterTranslatable / IsTranslatable / AllTranslatableKeys)
│   ├── menu/                   # 导航菜单(Menu + Item 树形结构 + 位置注册 + 语言 Hook)
│   ├── media/                  # 媒体库(上传/尺寸记录/响应式变体/WebP + JSON API)
│   ├── hook/                   # Hook/Filter 事件总线(WordPress 风格)
│   ├── cache/                  # L1 内存 + L2 Redis 多级缓存 + 页面缓存中间件
│   ├── worker/                 # Goroutine 工作池 + Cron 定时调度
│   ├── rewrite/                # URL 重写 + 永久链接 + SEO + Sitemap + 重定向
│   ├── api/                    # REST API(自动端点 + JWT/APIKey 双认证 + 限流 + CORS)
│   ├── installer/              # Web 安装器(DB 配置 + 站点信息 + 热切换)
│   ├── theme/                  # Theme/App 接口 + BaseTheme + 页面 bundle 加载 + FuncMap + 内置回退模板
│   ├── plugin/                 # Plugin 接口定义
│   └── admin/                  # 后台 CMS(数据驱动 CRUD + RBAC + 审计日志)
│       ├── static/css/         #   后台样式
│       ├── static/js/          #   后台 JS(Quill 编辑器 + 媒体选择器)
│       └── templates/          #   后台模板(layouts + pages)
│
├── themes/                     # ========== 主题目录 ==========
│   ├── modern-company/         #   企业官网主题(产品/服务/案例/博客)
│   │   ├── theme.go            #     主题入口 + init() 自注册
│   │   ├── theme.toml          #     主题元信息 + 内容类型 + 菜单位置/图标
│   │   ├── handlers.go         #     自定义页面处理器
│   │   ├── services.go         #     业务服务层(含 TranslateSettings 调用)
│   │   ├── functions.go        #     模板函数
│   │   ├── translatable.go     #     可翻译设置键声明(option.RegisterTranslatable)
│   │   ├── locales/            #     i18n 翻译文件(en.json, zh.json)
│   │   ├── demo/data/          #     内置演示数据(seed.toml)
│   │   ├── static/             #     CSS/JS/Images
│   │   └── templates/          #     layouts/ + partials/ + pages/ 页面模板
│   ├── atelier-slate/          #   设计工作室主题
│   ├── axis-form/              #   Axis Form 建筑设计主题
│   ├── florafi/                #   FloraFi 稳定币 / 金融科技主题
│   ├── civic-estate/           #   商业地产主题
│   ├── financial-news/         #   财经新闻门户主题
│   ├── go-press-landing/       #   SaaS Landing 主题
│   └── terra-trail/            #   户外旅行主题
│
├── plugins/                    # ========== 插件目录 ==========
│   ├── multilang/              #   WPML-like 多语言内容翻译 + 菜单翻译
│   │   ├── plugin.go           #     插件逻辑(语言检测/翻译克隆/语言切换/Content Scope/菜单翻译Hook)
│   │   ├── models.go           #     Translation/Language/StringTranslation/MenuTranslation 数据模型
│   │   ├── repository.go       #     翻译/语言/字符串/菜单翻译 CRUD
│   │   ├── register.go         #     init() 自注册
│   │   └── templates/admin/    #     后台设置页模板(4 Tab:语言/翻译管理/设置/帮助)
│   ├── seo-extras/             #   Yoast-like per-content SEO 覆盖
│   │   ├── plugin.go           #     3 个 hook 实现 + meta box HTML 构造
│   │   └── register.go         #     init() 自注册
│   └── code-snippets/          #   WPCode-like 站点级代码注入
│       ├── plugin.go           #     theme.head/body/footer 三个插槽的 filter
│       ├── register.go         #     init() 自注册
│       └── templates/admin/    #     插件设置页模板(三个代码片段 textarea)
│
	├── sites/                      # 站点配置(Web 安装器自动生成)
	│   └── localhost/              #   本地开发站点
	│       ├── config.toml         #     站点配置文件
	│       └── public/             #     站点级公开生成物(sitemap.xml、robots.txt、llms.txt 等)
	│
├── pkg/                        # ========== 基础设施 ==========
│   ├── dbprefix/               #   表前缀工具(Set/Get/Table/PluginTable/ThemeTable)
│   ├── logger/                 #   结构化日志 (slog)
│   ├── middleware/             #   通用中间件(请求日志等)
│   └── postgresql/             #   数据库连接工厂(NamingStrategy + 连接池)
│
├── config/                     # 默认配置 + 配置解析
│   ├── config.go               #   配置结构体定义
│   ├── resolve.go              #   多站点配置发现
│   └── config.toml             #   默认配置模板
│
├── docs/                       # 文档
│   ├── guide/                  #   GitBook 文字文档(你正在看的部分)
│   ├── docs.go                 #   Swagger Go 包(main.go 通过 _ "go-press/docs" 引用)
│   ├── swagger.json            #   OpenAPI 规范
│   └── swagger.yaml
│
└── uploads/                    # 上传文件目录(运行时生成)
    ├── 2026/04/                #   按年月组织的用户上传,变体与原图同目录
    │   ├── xxxx.png            #   原图,gp_media.path 指向这里
    │   ├── xxxx-480w.webp      #   响应式 WebP 变体
    │   └── xxxx-1024w.png      #   原格式 fallback 变体
    └── demo/                   #   演示数据图片