Project:页间

页间

落笔于页,留心于间

供个人自部署的笔记和阅读应用,提供 Web 和 Android 客户端。每个实例只供一人使用,用密码登录。

开始使用

需要自己的 Cloudflare 账号,使用 Workers、D1 和私有 R2。青藜、翻译和书页识别另需 DeepSeek API Key,费用由自己承担。

加密密码遗失后无法恢复内容。使用 AI 功能时,Worker 会解密相关内容,并将输入发送给 DeepSeek,详见本地加密。本机缓存和草稿不能代替备份。

最新更新

0.4.33:可把文件夹发布成公开博客,支持 6 个主题和自定义页面。新增青藜对话列表、命令行工具 xvi 和 Mermaid 图表。详见发布说明。

功能

  • 笔记:Markdown、纯文本、PDF、图片、网页链接;树形目录、收藏、搜索、高亮和批注。任何条目都可在「更换图标」中设置 Emoji 或图片图标。电脑上可按住 Ctrl/Cmd 或 Shift 点击多选,批量移动或移到回收站;可导入 Markdown 笔记文件夹。普通 Markdown 默认开启快捷编辑,直接追加内容、修改或删除章节,可按篇关闭。
  • 阅读:章节目录、进度记忆、分屏、三种主题、字体与排版设置。离线阅读支持正文、PDF、图片和附件。
  • 编辑:点击「编辑正文」后编辑;本机暂存草稿,保存冲突时可覆盖或另存为新笔记。支持数学公式和 Mermaid 图表,包括甘特图、流程图和时序图。
  • arXiv 论文:导入正文和插图,逐段翻译、对照阅读。
  • 日记本:按月历书写,追加文字和照片。
  • 书籍:拍照识别书页、逐页讨论、整理读书笔记。
  • 项目:汇总待办、问题和笔记,引用已有文件。
  • 随手记:保存文字和图片,插入正文或转为笔记。
  • 命令行同步:把笔记拉取到本地目录,供 Codex、Claude Code 等工具使用,确认后写回。
  • 青藜与翻译:引用选文、文件和截图提问,保存回复与翻译记录。
  • 资料保护:7 天回收站、当前版本及最近 5 个历史版本、整库备份、本地加密。

正文上限 1 MiB,单文件 50 MB,每篇最多 100 个附件。全库默认 8 GB,历史版本、回收站和上传预留均占用空间。离线时可阅读,正文编辑需联网。

电脑快捷键:Ctrl/Cmd+K 或 / 搜索,N 新建,E 编辑,Q 随手记,? 查看全部快捷键。

本地运行

需要 Node.js 22.12+。

npm ci
npm run dev

脚本生成 .dev.vars、执行迁移并打印首次设置链接。打开链接后设置至少 8 个字符的密码。

Vite 默认端口 5173,Worker 默认端口 8787;占用时顺延,以终端输出为准。可用 NOTE_UI_PORT、NOTE_WORKER_PORT 指定端口。本地资料保存在 .wrangler/state,不要删除它来重置密码。

部署

按部署文档配置 wrangler.selfhost.jsonc 和 Secrets 后运行:

npm run deploy

命令依次构建、迁移 D1、发布 Worker。使用 pnpm 时运行 pnpm run deploy,保留 run。

Android

下载 APK。需要 Android 8.0+、Android System WebView 125+,默认连接 iyi.li,也可填写自己的服务器地址。

构建需要 JDK 21、Android SDK Platform 37 和 Build Tools 37:

npm run android:apk       # 调试包,输出到 artifacts/
npm run install:android   # 构建并覆盖安装到已连接设备

网页部署不会更新已安装的 APK。签名、发布和代理设置见 Android 客户端。

开发检查

npm run check
npm run lint
npm test
npm run test:build
npm run build
npx playwright install chromium
npm run test:e2e

E2E 使用独立的 .wrangler/e2e/state,不清理本地资料。截图和追踪保存在 test-results/。

主题源为 scripts/theme/brand-theme.ts;修改后运行 npm run theme:sync,用 npm run theme:check 检查。图标修改见品牌资源。

许可证

项目代码采用 MIT。第三方依赖和字体遵循各自许可证,打包字体的许可证位于 /licenses/。