# 起始页 **Repository Path**: jason1012/home-page ## Basic Information - **Project Name**: 起始页 - **Description**: 起始页 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-07-27 - **Last Updated**: 2026-07-27 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 简约起始页 一个零依赖、纯静态的 Chromium 起始页(新标签页 / 主页)。极简美观,秒开、可离线。 ## 功能 - 居中大字号实时时钟 + 中文日期(带星期);时间采用**北京时间(UTC+8,等同 time.is 北京时间)**,设置内可开关「显示秒」 - 搜索框:回车即搜;搜索引擎(百度 / 必应)在设置页中选择 - 主题:跟随系统 / 浅色 / 深色,外加强调色自定义 - 字体与字号:时间 / 日期 / 其他内容三者**分别可调**(预设字体:系统默认 / 无衬线 / 衬线 / 等宽,均为离线可用),字号自由输入 px - 背景图:仅支持上传本地图片(自动压缩,URL 方式已移除) - 主页快捷方式:在搜索框下方以网格展示常用网站,点击即在新标签页打开;通过右上角「☆ 快捷方式」按钮打开**独立快捷方式面板**进行添加(名称 + 网址,需 http/https)与删除,最多 12 个,图标用名称首字母(离线、无网络请求) - 搜索历史:每次搜索自动记录(词条 + 北京时间戳 `YYYY-MM-DD-HH-MM-SS` + 当时使用的搜索引擎),通过右上角「⟲ 历史」按钮打开**独立历史面板**按「天」分组查看,每行显示词条/引擎小标签/时间,点击任一条即用记录时的引擎重搜(历史不可手动清空) - 搜索历史导入 / 导出:历史面板底部「导出历史」可单独导出记录(纯数组 JSON,文件名 `startpage-history.json`);「导入历史」可把导出的文件或完整配置导出的 JSON 合并进现有记录(自动去重完全相同的记录、过滤非法项、保留最新 20 条) - 配置导入 / 导出(JSON,含搜索历史) ## 用法一:作为浏览器主页(静态网页) 建议用本地服务器打开(避免 `file://` 下存储不稳定): ```bash cd 本项目目录 python -m http.server 8000 # 浏览器访问 http://localhost:8000 ``` 然后在浏览器设置里把「主页 / 启动时打开的页面」指向该地址。 ## 用法二:作为新标签页(扩展,MV3) 1. 打开 `chrome://extensions`(或 Edge 的 `edge://extensions`) 2. 开启「开发者模式」 3. 点击「加载已解压的扩展程序」,选择本项目目录 4. 新开标签页即可看到起始页 > 扩展只能接管「新标签页」,无法接管「主页」;若要自定义主页,请按用法一设置。 ## 用法三:打包分发(扩展 zip) - 项目已自带 `manifest.json`(MV3),可用任意打包工具把 **`manifest.json` + `index.html` + `styles.css` + `app.js` + `storage.js` + `icons/`** 打成 zip(不含 `.workbuddy` 等元数据目录)。 - 仓库已提供 `startpage-v1.0.0.zip`,可直接在 Chrome / Edge 开发者模式「加载已解压的扩展程序」选择解压后的目录使用;或上传到 Chrome 网上应用店分发。 - 注意:打包层级应为「以上文件在 zip 根目录,图标在 `icons/` 子目录」,即解压后 `manifest.json` 与 `index.html` 同目录,且存在 `icons/icon16.png` 等。 ## 用法四:生成签名 CRX 包 - 仓库提供 `make_zip.js` 与 `make_crx.js`(纯 Node、零依赖): - `node make_zip.js`:生成结构正确的 `startpage-v1.0.0.zip`(自动保持 `icons/` 子目录)。 - `node make_crx.js`:先调用 `make_zip.js` 重建 zip,再用 **RSA-2048 + SHA256** 签名生成 `startpage-v1.0.0.crx`(CRX₃,Chrome / Edge 73+)。 - 产物:`startpage-v1.0.0.crx`,并生成 `key.pem`(RSA 私钥,**请妥善保管**,后续用同一把密钥重新签名可保持扩展 ID 不变)。 - 当前扩展 ID(由公钥前 16 字节 SHA256 派生):`a5ebcb739ed24d9c5288caa946f484e8` - 说明:CRX 自校验已通过(头部结构 + 签名匹配)。Chrome 网上应用店上传请用上面的 **zip**(商店会重新签名);CRX 适用于企业策略分发 / 离线自托管等需要自带签名的场景。新版浏览器已不支持直接拖拽安装 CRX,企业环境请通过组策略 `ExtensionInstallForcelist` 部署。 ## 文件说明 - `index.html`:页面结构 - `styles.css`:样式(CSS 变量主题) - `app.js`:主逻辑 - `storage.js`:配置读写抽象层(扩展用 `chrome.storage.local`,网页用 `localStorage`) - `manifest.json`:扩展清单 - `icons/`:扩展图标 ## 说明 - 所有配置保存在本地,无后端、无网络请求(除搜索引擎跳转)。 - 上传的背景图会压缩到最长边 ≤1920px、JPEG 质量 0.7,并限制 ≤1.5MB 以适配 localStorage 配额。 - 搜索历史最多保留 20 条,每次搜索都新增一条记录;每条记录带北京时间(`Asia/Shanghai`)时间戳、格式 `YYYY-MM-DD-HH-MM-SS`(段序:年-月-日-时-分-秒)以及当时的搜索引擎(百度/必应),通过独立历史面板按日期分组展示、每行显示引擎小标签;导入配置会一并恢复历史记录(引擎字段非法时回退百度)。历史还支持独立的导入 / 导出:导出为纯数组 JSON,导入时与现有记录合并(按「词条+时间+引擎」去重、过滤非法项、按时间倒序封顶 20 条),兼容完整配置导出的 `{searchHistory:[...]}` 格式。