Dai0814 e4757446cf
mirror-to-gitee / mirror (push) Successful in 4s
feat(portal): 补入整站页脚,并让项目列表页不显示页脚
用户反馈 /projects/(项目列表)页底部的品牌/联系/版权区应该去掉。

背景:这几个文件此前一直未提交——远端仓库其实没有页脚,
PortalFooter.vue 只存在于本地,HEAD 版 index.ts 也没引用它。
所以本次把页脚整套补齐,再叠加「按页面决定是否展示」的逻辑。

新增/改动
- .vitepress/theme/components/PortalFooter.vue(新增,274 行)
  品牌区 + 产品体系/文档资源/关于我们/联系我们四栏 + 二维码浮层 + 版权条
- .vitepress/theme/styles/portal.css:补入全部 .pf-foot-* 样式(508 行)
  只搬运页脚相关规则,不夹带工作区里其它未提交的样式改动
- .vitepress/theme/index.ts:挂载页脚 + 页面级显隐判定
- pages/projects/index.md:frontmatter 加 footer: false

页脚显隐判定(isDocPage)
「文档型页面不挂页脚」——这类页面有左侧目录树、右侧本页目录、
底部上一页/下一页翻页,读者正在阅读流里,450px 的品牌收尾区是纯噪音。
命中任一条件即隐藏:
  1) 路径 /projects/<id>/manual/...
  2) frontmatter 有 sidebar / outline / aside
  3) frontmatter 显式 footer: false

frontmatter 的 footer 可双向覆盖(这解决了 /projects/ 的困境):
  该页有 outline: deep,按上面的规则本会被判成文档页而隐藏页脚,
  但它本质是「浏览页」,需要显式 footer: false 才符合预期。
  同理 footer: true 可强制显示。

验证(干净 clone 构建后实测)
- /projects/        无页脚(footer=false,无版权条)
- /                  有页脚(453px,渐变背景正常)
- 文档页(详情/对比/快速开始/手册)均无页脚
- 自定义整页(关于/联系/演示/官方文档)均有页脚
2026-11-06 13:39:41 +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%