Dai0814 ccb3f5e39a
mirror-to-gitee / mirror (push) Successful in 4s
feat(portal): 首页补齐产品功能、核心能力、界面预览、官方文档四个区块
用户反馈首页缺产品功能、核心能力与界面预览,且没有官方文档入口。

新增区块
- 产品功能:三条产品线(iotLCM / 秀杰 DTU / XiuAdmin),
  每条列 6 项能力,卡片底部直达详情页
- 核心能力:8 张带标签的卡片,讲工程层面的硬指标
  (部署、接入、开放、治理、韧性、交付、数据、维护),
  与"产品功能"区分开:前者是做什么,后者是凭什么能用住
- 界面预览:ScreenshotPreview 组件,Web 管理端 / 小程序端两组标签切换,
  首屏大图 + 缩略图条,带浏览器窗口装饰
- 官方文档:6 个入口卡片(文档中心、Web 手册、小程序手册、部署手册、
  OpenAPI 合同、门户部署说明),外链自动加 target=_blank

界面预览的占位机制
- previewShots 里 file 留空时渲染带图注的占位框,不报错、不影响构建
- 补图只改 file 字段,组件无需改动
- 新增 pages/public/screenshots/README.md 写清命名、尺寸、脱敏要求

导航
- 增加产品功能、核心能力、界面预览、官方文档四个锚点项
- 窄屏(≤860px)隐藏中间三个锚点项,避免挤压

验证
- 构建 13 页,208 条引用 0 失效
- 浏览器实测:7 个导航项、5 个 section 锚点齐全
- 移动端 390px 无横向溢出
- 文档站 5 个外链地址均实测 200 可达
2026-11-04 14:27:48 +08:00

雪羊科技开源项目门户

开源项目门户站源码。当前收录 iotLCM(物联网卡全生命周期管理平台)、秀杰 DTU 管理平台、XiuAdmin(中后台开发框架)。

  • 站点框架:VitePress 1.6(与 iotLCM 的文档站同构)
  • 产物:纯静态文件
  • 许可:Apache-2.0

目录

.
├── data/projects.ts              # 项目注册表 —— 门户唯一项目清单来源
├── pages/
│   ├── index.md                  # 门户首页
│   ├── projects/index.md         # 全部项目
│   ├── projects/<id>/index.md    # 各项目详情页
│   ├── guide/portal-deploy.md    # 门户自身的构建与部署
│   └── about.md                  # 关于、许可、贡献说明
├── .vitepress/theme/components/  # 项目卡片与列表组件
├── scripts/check-registry.mjs    # 注册表与详情页一致性校验
├── deploy/docker-compose.yml     # 容器部署编排
└── Dockerfile                    # 多阶段构建镜像

新增一个项目

两步,不需要改动站点其它部分:

  1. 在 data/projects.ts 里加一条记录(名称、定位、说明、代码仓、许可证、技术栈、状态、详情页路径、子页面)
  2. 写 pages/projects/<id>/index.md 详情页

首页卡片、项目列表页、侧边栏都会自动带上新项目。

构建前会自动校验注册表与详情页目录是否一一对应,不一致直接报错:

npm run check

本地开发

npm ci
npm run dev      # http://127.0.0.1:5173

构建

npm run build    # 产物在 .vitepress/dist/

部署

docker compose -f deploy/docker-compose.yml up -d --build

默认发布在宿主机 127.0.0.1:8020。站点资源前缀由 SITE_BASE 决定:

形态 参数 访问方式
子路径(过渡,无独立域名) /www/(默认) 由已有网关转发 /www/ 到本容器
独立域名 / 域名根路径
SITE_BASE=/ docker compose -f deploy/docker-compose.yml up -d --build

详见 门户部署。

S
Description
雪羊科技开源项目门户(iotLCM / xiu-dtu / xiu-admin 等开源项目索引)
Readme 1.6 MiB
Languages
TypeScript 31.3%
CSS 28.2%
Vue 24.4%
JavaScript 14.4%
Dockerfile 1.7%