中文 | English (English summary below)
这个 Chrome 扩展可以从你在 Memex(或手动 / 书签导入)里保存的网页中,随机打开一个尚未访问过的页面,直到全部轮询完再自动重置,帮助你重新“挖掘”已收藏的知识与灵感。
- 🔀 真随机:Fisher–Yates 洗牌,一次生成完整序列
- 🚫 去重保障:保证一次序列内不重复
- ♻ 自动重置:全部访问后自动重新洗牌
- 🧠 多数据来源:书签导入 / 手动粘贴 / (可选)后续扩展的同步
- 💾 状态持久:序列与历史记录保存在
chrome.storage.local - 🔐 隐私友好:不上传、不分析你的浏览内容(详见
PRIVACY.md) - 🧩 Manifest V3:兼容最新 Chrome API
- 安装并准备好 Memex(可选,非必须;也可以只靠手动/书签导入)
- 在
chrome://extensions/里加载本项目下的chromeExtension/目录 - 打开扩展“选项”页:导入书签 或 粘贴 URL 列表(格式:
URL | 可选标题) - 点击浏览器工具栏图标 → “Open Random Page”
- 享受随机浏览的乐趣 ✅
chromeExtension/
background.js # 核心随机逻辑 + 消息路由 + WebDAV 同步
options.html / .js # 导入 & 配置界面(含可选权限请求)
popup.html / .js # 弹出操作入口
memex-communicator.js # 与 Memex 的尝试性通信(受限时回退)
memex-storage-scanner.js # 深度扫描/启发式收集(受 5 秒超时保护)
webdav-sync.js # WebDAV(可选)远程同步模块
tests/ # 手动调试脚本(不打包发布)
icons/ # 图标资源
docs/ # 结构化文档(安装 / 架构 / 排障等)
PRIVACY.md # 隐私说明
README.md # 当前文件
| 主题 | 文件 |
|---|---|
| 安装(详细) | docs/INSTALL.md |
| 架构 & 存储说明 | docs/ARCHITECTURE.md |
| 故障 / CSP / 调试 | docs/TROUBLESHOOTING.md |
| 图标指引 | docs/ICONS.md |
| 隐私政策 | PRIVACY.md |
| Key | 说明 |
|---|---|
randomMemexPageData |
当前洗牌序列 { shuffledPages, currentIndex, lastShuffled, strategy? } |
random-memex-imported-pages |
导入的原始页面数组 { url,title,timestamp } |
randomMemexLastOpened |
最近一次打开的页面元信息 |
randomMemexHistory |
最近访问历史(限制 ~40 条) |
webdavSyncConfig |
WebDAV 配置(可选) |
webdavRandomMeta |
远程同步元数据缓存 |
更多细节见 docs/ARCHITECTURE.md。
后台 background.js 作为 MV3 Service Worker:
- 事件触发(点击 / 消息) → 读取存储序列状态
- 如需重洗(过期 / 用尽 / 为空) → 重建随机序列(去重 + Fisher–Yates)
- 取出下一个 URL → 打开新标签页 → 更新索引 & 历史
- 可选:WebDAV push/pull 元数据(带 ETag 冲突处理 & 可选加密)
bookmarks:仅在从书签导入时动态请求(未使用不授予)
简易纯 JS,无构建链。请阅读:.github/copilot-instructions.md 与 docs/ARCHITECTURE.md 后再提交 PR。
Random Memex Page is a lightweight MV3 extension that re-surfaces saved pages (from Memex or manually imported sources) by generating a de-duplicated random traversal. It persists shuffle state, supports optional bookmark import (dynamic permission), and offers optional WebDAV sync with conflict resolution + encryption. See docs/ for installation, architecture, troubleshooting, and icon guidance. Privacy-friendly: data stays local unless you explicitly configure sync.
MIT License