# HomePage **Repository Path**: sotime/home-page ## Basic Information - **Project Name**: HomePage - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-08-18 - **Last Updated**: 2026-10-15 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 时光导航 现代简约的浏览器导航首页。纯静态实现,无构建、无依赖,开箱即用。 ## 功能特性 - **多引擎搜索**:内置百度 / Google,一键切换,选择自动记忆 - **搜索联想下拉**:输入即联想(百度 / Google 官方联想接口,JSONP 实现,无需后端);支持 ↑↓ 选择、Enter 采用、Esc 收起;点击输入框时若已有内容也会重新召回 - **快捷链接**:内置「改枪码」「DeepSeek」入口;可自定义增删链接、拖拽排序(移动端用 ↑↓ 按钮)、自定义图标颜色 - **数据备份**:自定义链接支持导出 / 导入 JSON 备份,清除浏览器数据后也可恢复 - **明暗主题**:CSS 变量 + `prefers-color-scheme`,自动跟随系统明暗切换(含移动端浏览器 UI 主题色) - **iOS 26 风格**:Liquid Glass 毛玻璃质感、渐变光斑背景,全站动画统一为弹簧曲线,并尊重系统「减弱动效」偏好 - **标题聚光灯**:首页标题鼠标悬停时圆形滤镜跟随光标移动,圈内揭示亮色渐变(仿 DeepSeek「探索未至之境」) - **改枪码大全**:内置《三角洲行动》改枪码页,收录 180+ 条配置,支持关键词搜索、赛季 / 枪械类型 / 作者筛选、一键复制;数据可用 `tools/sync_feishu_local.js` 从飞书源文档一键同步 - **合规页脚**:每页底部含仓库链接与备案号(赣ICP备2025054021号-1,按管局要求链接至工信部备案系统) ## 无障碍与性能 - 表单控件均有可访问名;模态框打开时焦点进入面板、关闭后归还触发按钮;异步结果(筛选条数、复制结果)通过 live region 向读屏播报 - 首页无布局偏移(CLS 0);改枪码页为数据加载预留了首屏高度,真实网络下同样不会出现可见跳动 - 两页均带 CSP 加固(脚本仅本站 + 两个联想接口),第三方数据一律按纯文本渲染,无 XSS 注入面 ## 目录结构 ``` homepage/ ├── index.html # 时光导航首页(入口页) ├── theme.css # 全站共享基础(设计令牌 / 背景 / 动效 / 页脚 / 无障碍工具类) ├── version-check.js # 全站共享版本自检脚本(缓存穿透) ├── style.css # 首页样式 ├── script.js # 首页逻辑 ├── baidu-logo.png # 百度徽章(64×64,引擎选择器用) ├── version.json # 站点版本号(缓存穿透自检用) ├── release.js # 发布工具:自动同步版本号 ├── robots.txt # 爬虫规则 ├── sitemap.xml # 站点地图(确定线上域名后替换 loc) ├── .gitattributes # 换行符统一为 LF ├── tools/ # 运维脚本(不含网站内容) │ └── sync_feishu_local.js # 飞书文档 → 改枪码数据 本地同步(Node + 本机 Chrome,零依赖) ├── guncodes/ # 改枪码大全页(独立页面) │ ├── guncodes.html │ ├── guncodes.css │ ├── guncodes.js │ └── guncodes-data.json # 改枪码数据(与代码分离) ├── AGENTS.md # AI 协作规范(跨工具标准) └── README.md ``` ## 使用方法 **首页**:直接双击 `index.html` 即可使用。 **改枪码页**:页面通过 fetch 加载 JSON 数据,直接双击打开(file:// 协议)会被浏览器安全策略拦截,请使用本地静态服务器: ```bash python -m http.server ``` 然后访问 `http://localhost:8000/guncodes/guncodes.html`。 ## 发布更新 静态托管无法控制浏览器缓存,站点用「版本号自检」保证访问者始终看到最新页面(无需手动 Ctrl+F5): 每次更新内容后、发布前运行一次: ```bash node release.js ``` 它会自动更新 `version.json` 与两页资源的 `?v=` 版本参数(含改枪码数据的请求版本),然后正常提交推送即可。 ## 数据同步 改枪码数据源自一份第三方飞书云文档(本仓库只有访客权限)。经实测(2026-10):该文档正文通过飞书**私有 WebSocket** 下发,纯 HTTP 只能取到约 1/3 的正文,所以同步必须**在本地用浏览器抓**(服务器上无浏览器时拿不到全量)。 `tools/sync_feishu_local.js` 用本机 Chrome 抓取(滚动 + 反复展开折叠块,多轮直到不再增长),解析后覆盖数据文件: ```bash # 1) 先看报告(默认 dry-run,不写文件) node tools/sync_feishu_local.js # 2) 确认无误后覆盖写入(条数骤减时会拒绝,需 --force) node tools/sync_feishu_local.js --write # 3) 发布 node release.js && git commit -am '同步改枪码数据' && git push ``` 退出码:`0` 成功 / `3` 被保护机制拒绝(结果条数骤减)/ `1` 出错。可用 `--url` 换文档地址、`--keep-blocks` 保留中间产物排查。 > 实测数据:文档可解析 **437 个块 / 181 条改枪码**,覆盖原站内 161/162 条,另有 20 条新增;抓取要点见 [AGENTS.md](AGENTS.md) 的「改枪码数据更新」章节(尤其那三个踩过的坑)。 ## 改枪码页说明 - 数据来源:网络收集整理,各条改枪码下方已标明来源 - 每条改枪码标注:配置名称、枪械、类型、模式、赛季、来源 - 筛选按钮(赛季 / 类型 / 作者)全部从数据派生——数据里新增赛季或类型,页面会自动出现对应按钮 - 点击「复制」即可将改枪码导入游戏 ## 许可 项目代码仅供个人学习交流使用;改枪码数据来自公开文档整理,禁止贩卖。