- 更新 changelog.md: v0.2.0 记录 M2-M8 全部完成,路线图更新 - 新增 5 篇指南: RBAC、组织管理、审计日志、通知模块、质量横切 - 新增 5 篇 API 文档: RBAC(11)、Org(5)、Audit(1)、Settings(7)、Notification(7) - 更新 api/overview.md: 完整 37 端点列表 - 更新 config.ts: 侧边栏分组 + 11 页 SEO 元数据
250 lines
13 KiB
TypeScript
250 lines
13 KiB
TypeScript
import { defineConfig } from 'vitepress'
|
||
|
||
const seoPages: Record<string, { title: string; description: string; keywords: string }> = {
|
||
'/': {
|
||
title: 'MengStack - 企业级Go语言微服务开发框架 | 开源模块化开发底座',
|
||
description: 'MengStack是软盟SoftUnis开源的企业级Go语言微服务开发框架,基于Gin+GORM+uber-go/fx构建,内置三层隔离架构、多租户支持、JWT认证、API文档、Docker部署等能力,开箱即用,帮助开发者快速搭建企业级后端服务。',
|
||
keywords: 'Go微服务框架,Go企业级开发框架,MengStack,开源Go框架,Go模块化开发',
|
||
},
|
||
'/guide/what-is-mengstack': {
|
||
title: '什么是MengStack | 架构设计与核心特性介绍 - MengStack官方文档',
|
||
description: 'MengStack入门指南,详细介绍框架设计理念、三层隔离 Kernel/App/Modules 架构、四层模块模式、核心特性清单、适用场景与完整技术栈选型,帮助开发者快速了解MengStack框架。',
|
||
keywords: 'MengStack教程,MengStack架构,Go框架架构设计,DDD四层架构,Go微服务入门',
|
||
},
|
||
'/guide/getting-started': {
|
||
title: '快速开始 | 5分钟搭建MengStack项目环境 - MengStack官方文档',
|
||
description: 'MengStack快速开始教程,包含环境要求、项目克隆、依赖安装、配置修改、服务启动完整步骤,帮助开发者5分钟跑通第一个MengStack项目,快速体验框架能力。',
|
||
keywords: 'MengStack快速开始,MengStack安装,Go项目搭建,Go框架入门教程',
|
||
},
|
||
'/guide/project-structure': {
|
||
title: '项目结构说明 | MengStack目录规范详解 - MengStack官方文档',
|
||
description: '详细介绍MengStack标准项目目录结构,各目录职责划分、模块组织规范、依赖注入配置方式,帮助开发者遵循统一规范开发,降低团队协作成本。',
|
||
keywords: 'MengStack项目结构,Go项目目录规范,Go项目架构,模块化开发规范',
|
||
},
|
||
'/api/overview': {
|
||
title: 'API接口概览 | 统一响应格式与错误码说明 - MengStack官方文档',
|
||
description: 'MengStack API接口参考文档,包含接口基础信息、统一响应格式规范、HTTP状态码与错误码说明、JWT认证方式说明、完整接口列表,以及在线Swagger UI调试入口。',
|
||
keywords: 'MengStack API,Go接口文档,RESTful API规范,JWT认证接口,Swagger接口文档',
|
||
},
|
||
'/changelog': {
|
||
title: '更新日志 | 版本迭代记录与路线图 - MengStack开源框架',
|
||
description: 'MengStack各版本更新记录,v0.2.0完成RBAC权限模型、组织管理、审计日志、通知模块、配置管理增强、Docker+CI/CD、质量横切等全部M2-M8里程碑,以及v0.1.0首发版本技术栈说明。',
|
||
keywords: 'MengStack更新日志,MengStack版本,Go框架更新,开源项目路线图,RBAC权限,审计日志',
|
||
},
|
||
'/demo': {
|
||
title: '在线演示 | 免费体验MengStack接口服务 - MengStack官方',
|
||
description: 'MengStack官方在线演示环境,提供公开API服务地址、Swagger UI在线调试入口、健康检查地址,附快速体验步骤指引,无需本地部署即可直接体验框架接口能力。',
|
||
keywords: 'MengStack在线演示,Go框架体验,Swagger在线调试,API接口测试',
|
||
},
|
||
'/community': {
|
||
title: '开发者社区 | 交流渠道与贡献指南 - MengStack开源社区',
|
||
description: 'MengStack开源开发者社区,提供代码仓库地址、问题反馈渠道、功能建议入口,以及Bug报告、代码提交、代码规范等贡献指引,欢迎所有开发者参与MengStack共建。',
|
||
keywords: 'MengStack社区,Go开源社区,Go开发者交流,开源项目贡献',
|
||
},
|
||
'/guide/rbac': {
|
||
title: 'RBAC 权限模型 | 角色权限管理与中间件鉴权 - MengStack官方文档',
|
||
description: 'MengStack内置RBAC权限模型,基于Permission/Role/UserRole四表设计,支持多租户隔离下的角色管理、权限分配、中间件鉴权,预置admin/editor/viewer角色种子数据。',
|
||
keywords: 'RBAC权限模型,Go角色权限,Go中间件鉴权,多租户权限,MengStack RBAC',
|
||
},
|
||
'/guide/org': {
|
||
title: '组织管理 | 多租户 CRUD 与状态管理 - MengStack官方文档',
|
||
description: 'MengStack组织管理模块提供租户完整生命周期管理,包括租户创建、查询、更新、删除、状态管理(启用/禁用),UUID主键,与多租户中间件配合实现数据隔离。',
|
||
keywords: 'MengStack组织管理,Go租户管理,多租户CRUD,租户状态管理',
|
||
},
|
||
'/guide/audit': {
|
||
title: '审计日志 | 操作追踪与合规记录 - MengStack官方文档',
|
||
description: 'MengStack审计日志模块自动记录关键操作(用户、动作、资源、IP),支持多维筛选和分页查询,按租户隔离,只写不删,满足企业合规审计需求。',
|
||
keywords: '审计日志,Go操作审计,合规记录,操作追踪,MengStack审计',
|
||
},
|
||
'/guide/notification': {
|
||
title: '通知模块 | 用户通知的发送与管理 - MengStack官方文档',
|
||
description: 'MengStack通知模块提供用户级消息推送,支持info/success/warning/error四种类型,单条/全部标记已读,未读计数,分页查询,为前端通知中心提供完整后端能力。',
|
||
keywords: 'MengStack通知模块,Go用户通知,未读消息,通知管理',
|
||
},
|
||
'/guide/quality': {
|
||
title: '质量横切 | 安全基线、限流、日志与优雅停机 - MengStack官方文档',
|
||
description: 'MengStack M8质量横切:IP限流中间件、安全响应头(X-Frame-Options/CSP等)、请求体限制、Zap结构化请求日志、自定义Recovery、优雅停机(10秒超时)、testutil测试工具包、11个中间件单元测试。',
|
||
keywords: 'Go安全中间件,IP限流,优雅停机,结构化日志,MengStack质量基线',
|
||
},
|
||
'/api/rbac': {
|
||
title: 'RBAC API | 角色权限管理接口 - MengStack官方文档',
|
||
description: 'MengStack RBAC接口文档,包含权限列表、角色CRUD、权限绑定、用户角色分配等11个API端点,完整的请求/响应示例和参数说明。',
|
||
keywords: 'RBAC API,Go权限接口,角色管理API,MengStack接口文档',
|
||
},
|
||
'/api/org': {
|
||
title: '组织管理 API | 租户 CRUD 接口 - MengStack官方文档',
|
||
description: 'MengStack组织管理接口文档,包含租户创建、列表查询、详情获取、更新、删除5个API端点,UUID主键,完整请求/响应示例。',
|
||
keywords: '组织管理API,Go租户接口,租户CRUD API,MengStack接口文档',
|
||
},
|
||
'/api/audit': {
|
||
title: '审计日志 API | 操作审计查询接口 - MengStack官方文档',
|
||
description: 'MengStack审计日志接口文档,支持按用户、操作类型、资源类型多维筛选,分页查询,完整请求/响应示例。',
|
||
keywords: '审计日志API,Go审计接口,操作查询API,MengStack接口文档',
|
||
},
|
||
'/api/settings': {
|
||
title: '配置管理 API | 全局与租户配置接口 - MengStack官方文档',
|
||
description: 'MengStack配置管理接口文档,全局配置与租户配置两级管理,支持运行时读写和upsert,配置优先级:租户>全局>默认,完整API参考。',
|
||
keywords: '配置管理API,Go配置接口,运行时配置,MengStack接口文档',
|
||
},
|
||
'/api/notification': {
|
||
title: '通知 API | 用户通知管理接口 - MengStack官方文档',
|
||
description: 'MengStack通知接口文档,包含通知创建、查询、标记已读、全部已读、未读计数、删除7个API端点,完整请求/响应示例。',
|
||
keywords: '通知API,Go通知接口,未读消息API,MengStack接口文档',
|
||
},
|
||
}
|
||
|
||
function getPagePath(relativePath: string) {
|
||
let p = '/' + relativePath.replace(/\.md$/, '').replace(/\/index$/, '')
|
||
if (p === '/index') p = '/'
|
||
return p
|
||
}
|
||
|
||
function getSeo(pagePath: string) {
|
||
return seoPages[pagePath] || seoPages['/']
|
||
}
|
||
|
||
export default defineConfig({
|
||
title: 'MengStack',
|
||
titleTemplate: ':title',
|
||
description: 'MengStack - 企业级 Go 语言微服务开发框架',
|
||
lang: 'zh-CN',
|
||
|
||
head: [
|
||
['link', { rel: 'icon', href: '/favicon.png' }],
|
||
['meta', { property: 'og:image', content: '/og-image.png' }],
|
||
['meta', { name: 'theme-color', content: '#C8963E' }],
|
||
['script', {}, `
|
||
(function(){
|
||
var E='mengstack-theme-explicit',V='vitepress-theme-appearance';
|
||
var d=false,e=localStorage.getItem(E);
|
||
if(e!==null){d=e==='true'}
|
||
else if(window.matchMedia&&window.matchMedia('(prefers-color-scheme:dark)').matches){d=true}
|
||
else if(window.matchMedia&&window.matchMedia('(prefers-color-scheme:light)').matches){d=false}
|
||
else{var h=new Date().getHours();d=h<8||h>=18}
|
||
if(d)document.documentElement.classList.add('dark');
|
||
try{localStorage.setItem(V,String(d))}catch(x){}
|
||
})()
|
||
`],
|
||
],
|
||
|
||
transformHead({ pageData }) {
|
||
const path = getPagePath(pageData.relativePath)
|
||
const seo = getSeo(path)
|
||
const url = `https://mengstack.softunis.com${path === '/' ? '/' : path + '.html'}`
|
||
const head: [string, Record<string, string>][] = [
|
||
['meta', { name: 'description', content: seo.description }],
|
||
['meta', { name: 'keywords', content: seo.keywords }],
|
||
['link', { rel: 'canonical', href: url }],
|
||
['meta', { property: 'og:title', content: seo.title }],
|
||
['meta', { property: 'og:description', content: seo.description }],
|
||
['meta', { property: 'og:url', content: url }],
|
||
]
|
||
return head
|
||
},
|
||
|
||
themeConfig: {
|
||
logo: {
|
||
light: '/logo-light.png',
|
||
dark: '/logo-dark.png',
|
||
alt: 'MengStack 企业级Go语言微服务开发框架',
|
||
},
|
||
siteTitle: 'MengStack',
|
||
|
||
nav: [
|
||
{ text: '首页', link: '/' },
|
||
{ text: '指南', link: '/guide/what-is-mengstack' },
|
||
{ text: 'API 参考', link: '/api/overview' },
|
||
{ text: '更新日志', link: '/changelog' },
|
||
{ text: '在线演示', link: '/demo' },
|
||
{ text: '社区', link: '/community' },
|
||
],
|
||
|
||
sidebar: {
|
||
'/guide/': [
|
||
{
|
||
text: '入门',
|
||
items: [
|
||
{ text: '什么是 MengStack', link: '/guide/what-is-mengstack' },
|
||
{ text: '快速开始', link: '/guide/getting-started' },
|
||
{ text: '项目结构', link: '/guide/project-structure' },
|
||
],
|
||
},
|
||
{
|
||
text: '架构设计',
|
||
items: [
|
||
{ text: '三层隔离架构', link: '/guide/architecture' },
|
||
{ text: '模块四层模式', link: '/guide/module-pattern' },
|
||
{ text: '依赖注入', link: '/guide/dependency-injection' },
|
||
],
|
||
},
|
||
{
|
||
text: '核心功能',
|
||
items: [
|
||
{ text: '认证与授权', link: '/guide/auth' },
|
||
{ text: 'RBAC 权限模型', link: '/guide/rbac' },
|
||
{ text: '多租户系统', link: '/guide/multi-tenancy' },
|
||
{ text: '组织管理', link: '/guide/org' },
|
||
{ text: '审计日志', link: '/guide/audit' },
|
||
{ text: '通知模块', link: '/guide/notification' },
|
||
{ text: '配置管理', link: '/guide/configuration' },
|
||
],
|
||
},
|
||
{
|
||
text: '质量保障',
|
||
items: [
|
||
{ text: '安全基线与中间件', link: '/guide/quality' },
|
||
],
|
||
},
|
||
{
|
||
text: '部署',
|
||
items: [
|
||
{ text: 'Docker 部署', link: '/guide/docker-deploy' },
|
||
{ text: 'CI/CD 流水线', link: '/guide/cicd' },
|
||
],
|
||
},
|
||
],
|
||
'/api/': [
|
||
{
|
||
text: 'API 参考',
|
||
items: [
|
||
{ text: '概览', link: '/api/overview' },
|
||
{ text: '认证接口', link: '/api/auth' },
|
||
{ text: 'RBAC 接口', link: '/api/rbac' },
|
||
{ text: '组织管理接口', link: '/api/org' },
|
||
{ text: '审计日志接口', link: '/api/audit' },
|
||
{ text: '配置管理接口', link: '/api/settings' },
|
||
{ text: '通知接口', link: '/api/notification' },
|
||
{ text: '系统接口', link: '/api/system' },
|
||
],
|
||
},
|
||
],
|
||
},
|
||
|
||
socialLinks: [
|
||
{ icon: 'github', link: 'https://gitea.softunis.com/mengstack' },
|
||
],
|
||
|
||
footer: {
|
||
message: 'Released under the MIT License.',
|
||
copyright: `Copyright © 2026 <a href="https://www.softunis.com/" target="_blank" rel="noopener">软盟 SoftUnis</a><br><a href="https://beian.miit.gov.cn/" target="_blank" rel="noopener">粤ICP备2023054965号</a> | <a href="https://beian.mps.gov.cn/" target="_blank" rel="noopener">粤公网安备 44030502010466号</a>`,
|
||
},
|
||
|
||
search: {
|
||
provider: 'local',
|
||
},
|
||
|
||
outline: {
|
||
label: '页面导航',
|
||
},
|
||
|
||
docFooter: {
|
||
prev: '上一页',
|
||
next: '下一页',
|
||
},
|
||
|
||
lastUpdated: {
|
||
text: '最后更新',
|
||
},
|
||
},
|
||
})
|