🏢 站群与站点管理
一个程序实例运行多个子站,各站数据、模板、权限独立
多站点共存
单实例运行任意数量子站,各站数据互不可见
站点生命周期
未启用、运营中、暂停访问、已废弃四种状态,前台表现随状态变化
站点克隆
复制现有站的栏目结构、模板、角色配置建新站,不复制内容
域名绑定
子站可绑定独立域名,绑定流程含 DNS 解析校验和状态跟踪
路径方式挂载
没有独立域名的子站挂在入口域名的路径下,两种方式可同时用
站点信息设置
ICP 备案号、关键字、版权、联系信息等字段逐站配置
站点 Logo / Favicon
站点设置里上传图标,模板通过变量引用
建站向导
从基础信息到正式启用分步引导完成建站
子站健康状态
平台后台一页集中查看各子站的运行状况
站点手动排序
站点列表按需要手动调整先后顺序
站点 SEO 标题
后台用简称,浏览器标题和搜索结果用全称,两者分开设置
门户快捷入口
不带站点的固定链接(如"发布文章"),自动进入用户常用站点的同一页面
🌳 栏目体系
树形栏目组织站点信息架构,四种类型对应不同页面形态
树形层级栏目
栏目支持父子层级,后台折叠树管理
四种栏目类型
分类(导航容器)、超链接(外跳)、多记录(列表+详情)、单记录(仅详情)
SEO 继承链
站点、栏目、内容三层 SEO 字段逐层覆盖,栏目自带独立 SEO 设置
自定义 URL 路径
栏目自定义路径片段,也可用稳定编号在模板里引用
废弃标记
废弃栏目前台隐藏,不出现在导航和搜索结果里
模板文件提示
栏目编辑页显示当前匹配到的模板文件名和发布时间
分类栏目落地页
分类栏目有自己的页面,展示栏目信息和直属子栏目列表
每页条数配置
多记录栏目配置列表页分页大小,0 表示不分页
批量移动 / 排序
栏目支持批量调整归属和顺序
拖拽调整层级
栏目树直接拖拽改顺序和上级,菜单、部门树同样支持
栏目图标与封面
栏目可设图标、封面图和介绍文字,模板直接引用
单记录独立频道页
单记录栏目渲染成独立频道页,适合"学院简介"这类页面
栏目回收站
删除的栏目进回收站,可恢复
📝 内容管理
自定义内容模型加富文本编辑,覆盖起草、审核、发布、版本回溯的完整流程
内容模型自定义
每种模型定义自己的字段集合,新增模型和字段不需要改数据库结构
富文本编辑器
TipTap 所见即所得编辑,支持图片、表格、附件、代码块
Word 文档导入
服务端 pandoc 解析 .docx,保留标题层级、表格和内嵌图片
PDF 附件
附件卡片下载或浏览器内直接阅读,两种展示模式可切换
多封面图
多张封面拖拽排序,按栏目比例自动裁切或手动框选
草稿 / 正式双态
编辑不影响已发布内容,发布后才更新线上;支持撤回、下线、重新上线
置顶 / 推荐
内置标记,列表排序时优先展示
自定义排序 + 批量操作
手动调整展示顺序,批量发布、下线、删除
版本历史
每次正式发布保留快照,历史版本可恢复为草稿重新走流程
跨站内容推送
已发布内容复制到其他子站,接收站审核通过后生效
PC / 手机预览
编辑时用正式模板渲染草稿,两种视口宽度预览
外链内容
开启开关后前台访问直接 302 跳转到指定 URL,正文数据保留
摘要 / 关键词自动生成
字段留空时自动从正文和标题生成
发布时间补录
草稿态可修改显示时间,用于补录往期内容
内容回收站
删除的内容进回收站,随时恢复
发布 / 下架历史
每篇内容的发布、下架记录可查
视频分片上传
大视频分片上传不怕中断,自动截取首帧作封面
✅ 审核工作流
步骤数量、审批角色全部可配,不同栏目可走不同审批链
多级自定义审批
预审、终审或更多级,每步角色后台自由配置
流程模板库
平台默认模板只读,子站自定义模板可编辑
部门维度约束
审批人须与提交人同部门,管理员不受限
审批人兜底指定
角色+部门找不到可用审批人时,手动指派仍限角色范围内
全程历史追溯
谁在哪一步做了什么、审批意见,完整时间线永久可查
退回修改重报
退回意见直达作者,改完基于意见重新提交
进度可视
作者提交前预览全流程,提交后实时追踪卡在哪一步
撤回提交
审核中可撤回继续编辑,防止提交后发现漏改
提交时指定审批人
提交和通过时弹框选择下一步审批人,选谁只由谁审
审批单改派
审批人离岗或角色变动时,待审单子可改派给他人
历次审核记录
审核详情页可查看每一轮提交与审批意见
终审者下线 / 退回
终审者可以下线、重新上线或退回自己终审过的内容
审核事件出口
待办事件通过 Webhook 推送到统一门户等外部系统,失败可查看和重发
🔒 权限与组织
标准 RBAC 三层模型加组织架构,权限粒度从平台收窄到栏目
用户-角色-权限三层
标准关联表实现,不用逗号串、不塞 JSON
34 个统一权限点
全平台一份清单,子站只能勾选组合,不能发明新权限
子站角色独立演化
从平台模板复制初始角色后脱钩,各站自由调整互不影响
平台 / 子站双体系
平台管理员跨站超级权限,子站角色限定本站,两套登录入口
栏目级权限收窄
角色之上再叠加"只管这几个栏目"的范围限定
部门体系
跨站共享组织架构,平台维护、子站只读;一人多部门 + 主部门锚定
人事系统对接预留
标记对接后手工添加入口自动隐藏,避免双边维护打架
成员批量操作
组织批量导入 Excel、批量加入 / 移出子站、批量分配角色
模拟登录
平台管理员可模拟任意成员视角排查权限问题,全程留痕
按钮级权限显示
菜单和操作按钮按权限显示,看不到就不会点错
人事系统同步
组织架构和人员从外部人事系统自动同步
统一认证登录
对接统一身份认证(CAS),门户登录后直接进入后台
平台管理员管理
平台管理员账号独立管理
🎨 模板体系
草稿、正式、归档三态管理,在线编辑、实时预览、一键回滚
三态版本管理
草稿随便改、正式一键发布覆盖、归档永久保留历史
秒级回滚
回滚到任意历史发布版本,模板出问题立即恢复
在线代码编辑
Monaco 编辑器语法高亮,模板树形浏览,文件即点即编
实时预览
保存前 Tera 语法校验,草稿配真实数据试渲染确认再发布
默认模板兜底
子站缺哪类页面模板就用平台默认补位
平台模板库
整套模板库推送任意子站;子站好模板收编回库供复用
命名约定自动匹配
按栏目类型和内容模型自动匹配模板变体(网格 / 瀑布流等)
分享预览链接
草稿模板生成免登录预览链,可发给他人查看
Git 双向同步
模板草稿区可 Git 拉取 / 推回,本地编辑器直接改模板
归档自动清理
每站只保留最近若干份模板归档,不再无限堆积
草稿文件夹停用
暂不使用的草稿文件夹可停用,不删除
🧩 页面组装与组件
菜单、卡片、聚合页、友链、Banner 组件自由组合,不改模板代码
多菜单体系
主导航、页脚导航各自独立成树,菜单项链栏目 / 聚合页 / 外链
内容卡片
数据源:多栏目自动取、手动挑选排序、全站最新 N 条、全站最热 N 条
聚合页自由组装
首页 + 任意多自定义聚合页,勾选菜单 / 卡片 / 栏目 / Banner / 友链
友情链接多分类
分类自建(如"主管单位""合作院校"),各分类独立维护链接列表
Banner 组件
手动添加 + 内容推送两种来源共存;逐分类配置裁切比例和最小尺寸
博客模式
全站跨栏目按时间倒序的文章总列表,自定义路径、日期筛选、收入 sitemap
列表 / 阅读页设置
全站级勾选列表页和详情页用哪些菜单、卡片、友链侧边栏
上一篇 / 下一篇
阅读页同栏目相邻文章导航,开关控制
推荐阅读
按关键词 + 栏目 + 时间综合计算相关内容,条数可配
可视化首页 / 聚合页设置
勾选组件、绑定到模板命名区域、调整顺序与条数,右侧实时预览渲染效果
卡片栏目聚合 / 自定义 HTML
卡片可按栏目自动聚合内容,也可直接写一段 HTML
显示条数可控
首页和聚合页上的 Banner、卡片、栏目各自限制显示条数
🖼️ 媒体资产管理
统一素材库,上传去重、超标压缩、裁切生成独立文件,引用计数可查
统一素材库
正文图片、附件、封面统一管理,按日期文件夹树形浏览
内容哈希去重
按文件内容判断(不是文件名),重复上传直接复用已有文件
自动等比压缩
超过全站阈值自动压缩存储,列表场景加载快、流量省
自动缩略图
上传即生成缩略图,尺寸按子站配置,列表不再拉原图
真实图片裁切
按比例居中自动裁切 + 手动框选微调,同一原图多场景多版本互不覆盖
最小尺寸阈值
低于阈值的源图直接拒绝,防止裁切后画质过糊
引用计数
每个文件被多少内容引用一目了然,删除前提示引用情况
孤儿文件筛选
"只看 0 引用"一键过滤无主文件,批量清理入口独立防误删
🌐 渲染引擎
一个后端两种交付:SSR 直出 HTML 或 SPA 前端应用,按站点切换
SSR 模板直出
Tera 模板引擎服务端渲染,HTML 直出,SEO 友好
SPA 渲染模式
独立构建的前端应用调内容 API 自渲染,内容管理后台照用
一键模式切换
SSR ↔ SPA 只改一个标记,两边发布过的数据完整保留互不覆盖
公开内容 API
匿名只读接口:栏目树、内容列表、详情——SPA 前端的数据源
响应式前台
模板强制响应式布局,手机平板原生可用
🔍 搜索与 SEO
PostgreSQL 中文分词全文检索,自动生成 sitemap 和结构化数据
中文分词搜索
应用层分词(jieba-rs)配合 PostgreSQL 全文检索,标题摘要正文全覆盖,只搜已发布内容
sitemap 自动生成
内容发布 / 下线 / 栏目变更实时同步,无需手工维护
robots.txt 逐站配置
每个子站自己的爬虫规则,按入口域名智能合并输出
JSON-LD 结构化数据
内容详情页自动输出 JSON-LD 结构化标记
SEO 字段逐层继承
站点 → 栏目 → 内容三级 SEO 字段,下层不填自动继承上层
📊 统计分析
高频写入先缓冲再落库,PV/UV 按小时和天两种粒度统计
PV / UV 双指标
小时粒度看当天节奏,天粒度看长期趋势
热门内容排行
站点近期文章按浏览量聚合排序
双端 Dashboard
平台首页看全局站点概况,子站首页看待审 / 今日 PV / 未读消息
高频写入缓冲
浏览量先进缓冲定期汇总落库,不拖垮主数据库
图表化统计看板
子站后台首页和统计分析页以趋势图、分布图展示
平台整体统计
平台后台跨站汇总访问趋势与各站排行
访客地图
按地区展示访客分布
爬虫识别与监控
访客 ID + 爬虫自动识别,统计不被机器流量污染,爬虫单独监控
🛡️ 安全与内容审查
入口限流、登录锁定、文件校验、HTML 净化、敏感词过滤分层防护
分层限流
入口层扛高频无意图请求,业务层防暴力破解和提交刷量
登录失败锁定
密码错太多次账号锁定,配合持续触发来源的临时 / 长期封禁
图形验证码
所有登录页常驻验证码,阻止暴力破解
会话管理 + 踢人
在线会话列表可视,单个踢掉或一键踢某用户全部设备
上传文件真校验
扩展名白名单 + magic bytes 嗅探,伪装文件类型进不来
HTML 净化
富文本内容写库前净化,防止存储型 XSS
敏感词过滤
自建敏感词库(不依赖第三方),命中拦截 / 标记,跨站命中汇总视图
模板物理隔离
草稿 / 归档区从物理层面不可达,外部无法下载源码
审计日志
登录、关键操作、内容生命周期同步落库,永久保留可查
恶意扫描识别
按典型探测路径识别扫描器,搜索引擎蜘蛛经反向 DNS 验证后不误判
IP 封禁开关
先观察记录,确认无误判再开启封禁
旧地址跳转规则
整域名跳转(含 HTTPS)、路径前缀改名、旧编号地址自动找到新内容
已下线路径 410
老站被挂码留下的死链直接返回 410,搜索引擎更快移出索引
🖥️ 运维与后台
平台级和子站级双后台,CLI 批量操作,内置备份管理
平台级后台
子站、域名、模板库、角色模板、组织、敏感词、备份跨站资源统一管理
子站级后台
栏目、内容、模板、本站角色、组件、统计——本站事务独立操作
8 套后台主题
浅色 × 6(含极简高性能主题)、深色、跟随系统,明暗组件自动联动
可折叠侧边栏
窄边图标模式 + hover 浮动展开,内容区更宽
站内消息通知
待审提醒、退回通知、审核超时——不依赖外部服务即可工作
CLI 批量操作
同一二进制子命令:批量发布、批量建站、数据导入导出,支持 dry-run 预检
内置备份管理
数据库全量 + 附件增量硬链接快照,定时 + 手动,后台一键触发
秒级版本回滚
部署用符号链接切目录,回滚就是切回去 + 重启,不重新编译
版本信息中心
三段式版本号 + git 哈希、第三方组件声明、运维 / 开发手册入口
开发工具箱
CLI 文档、模板开发规范、日志、系统状态汇总一处的开发者入口
开发环境调试开关
ENV=dev 时生效:错误详情返回、验证码明文、后台 DEV 角标、跳过登录锁定,降低本机联调成本
服务器状态页
版本、磁盘、内存、数据库、缓存、备份、证书到期一页看全
诊断包导出
一键导出脱敏的状态、配置和近期日志,线上排障不必登录服务器
运维令牌接口
只读令牌远程查看状态、触发备份、下载数据库备份
上线锁
正式上线后锁住整库还原、导入等覆盖数据的操作,防止误操作
增量备份与磁盘保护
未变化的附件硬链接不占空间,磁盘不足时自动跳过并提示
域名自定义 Nginx 配置
按域名追加反向代理等规则,保存前语法校验,重新生成不丢失
断网自动重试
查询请求断网后自动重试,不打断正在编辑的内容
筛选条件可分享
列表筛选、页码记进地址栏,刷新不丢,链接可直接分享
⚡ 非功能特性
Rust 编译期安全、异步高性能、单二进制零依赖
Rust 编译期安全
类型系统在编译期消灭空指针、数据竞争等整类错误
异步高性能
Axum + Tokio 异步运行时,小机器跑出高并发
单二进制零依赖
一个可执行文件 + 一个配置文件,无运行时环境依赖
部署文件夹收敛
全部运行时文件在一个目录里,运维只需认识一个路径
一人可维护
每个设计决策都按"一个人长期维护"取舍,不造复杂机器
本地存储无 OSS 依赖
文件和备份全在本地磁盘,不为小站群引入对象存储成本
软删除可恢复
内容 / 栏目 / 站点删除都是标记,时间窗内可救回
跨平台
Windows / Linux 同一份代码编译运行,开发生产环境随意选