Repository navigation
v2026.0.8
质量与修复
- 「书籍多语言」翻译含 HTML 表格(如从 Sphinx 文档采集的
<table class="docutils">)等大量标签的章节不再失败:只含标签的行、相邻的标签合并处理,属性分多行书写的标签整体保留;个别段落仍无法保留格式时改为逐块翻译,个别块保留原文、章节照常完成,并在进度中用提示说明,不再整章失败。 - 整站采集的目录标题改为取自站点导航的链接文字(如「Getting Started」「New To Gluten」),不再在导航链接的样式名含 nav 时退回为网址片段(如「getting started」「NewToGluten」),与原站目录一致。
- 修复首次保存通知设置时关闭的开关被存成开启的问题。
- 用户菜单在屏幕较矮时显示不全:宽屏改为两列,菜单不超过可视高度、超出时可滚动,「退出登录」固定在底部;窄屏顶栏只显示头像,菜单不再超出屏幕。
列表分页
- 所有分页列表的页码保存在地址栏(如
?page=2),刷新、分享链接、前进后退都保持当前页;同一页面中的多个列表各用独立参数(如个人主页的书单listsPage),弹窗内的分页不受影响。 - 翻页时被点击的页码或「上一页 / 下一页」按钮显示加载状态,整条分页在加载完成前不可再点(如「我的文件」此前翻页没有任何加载提示);加载失败也会恢复。
会员与成长
- 「我的成长」与「我的会员」页中的「我的权益」改为标题旁的帮助图标,点击弹出各项权益的生效值与来源(按需加载,Esc 或点击外部关闭),不再占用页面正文。
AI 用量
- 「我的 AI 用量」新增本月估算费用(含按功能分布),调用记录的每条操作与每次调用也显示估算费用,按站点设置的模型单价估算、仅供参考;管理员可在「AI 服务」设置中关闭「向用户展示估算费用」。
站点设置
- 系统设置新增「自定义 HTML」:可配置「HTML Head 额外内容」(追加到每个页面的
<head>,支持 meta、link、script、style、noscript、base、title,适合统计脚本与站点所有权验证)与「HTML Footer 额外内容」(原样追加到</body>前);在服务端渲染时注入,搜索引擎验证可直接读取;单项不超过 64 KB,修改记入审计日志。 - 站点设置中的「编辑器帮助文档」「用户协议」「隐私政策」改为一个选择框:点击后左侧搜索书籍、右侧筛选并点选章节(同名书籍显示访问路径加以区分),已选章节显示为「书名 / 章节名」;底部仍可直接填写任意地址。
- 章节选择框在读取设置与解析书名、章节名期间显示加载状态,不再先闪现原始地址再变为「书名 / 章节名」;刚选中的章节直接显示名称。
内容采集
- 管理后台新增「内容采集 · 采集规则」:原有的清理行为整理为可逐项启用/停用的内置规则(页头页脚导航侧栏、页内目录、文档站装饰、标题永久链接、空标题与孤立符号行、页尾反馈提问);可添加自定义规则(删除元素、删除行、替换文本),并限定只对某些站点生效;「试采」可用未保存的规则预览采集结果。规则对所有用户的单页采集、网页导入与整站采集生效。
- 新增内置规则「去除空标题与孤立符号行」,去掉采集时混入的只剩 # 号的空标题与单独一行的 #、¶(代码块内不受影响);文档站装饰规则同时去掉正文中的按钮(如「Copy page」)。
存储
- 修改「存储配置」后(如从本地磁盘换成阿里云 OSS),如有文件不在当前存储中会询问是否迁移:后台逐个文件上传到新存储,并把章节正文、版本记录、书籍封面与简介、头像、站点设置以及成就、等级、标签、会员方案、问答、全书概览中的地址改为新地址,可选迁移成功后删除原存储中的文件;进度显示在「我的任务」与存储设置页,完成后发送站内通知。早期上传、没有文件记录但仍被引用的本地文件也会一并迁移。
书单
- 发现页新增「精选书单」:管理员在书单页点「设为精选」即可展示在发现页(不带搜索与标签筛选的第一页),没有精选时展示收藏最多的书单;精选书单带「精选」标记。
我的文件
- 点击「我的文件」中的图片改为在全屏图片查看器中打开:支持缩放(按钮、滚轮、键盘)、拖动查看、适应窗口与实际大小、旋转与翻转查看、上一张 / 下一张、图片信息(尺寸、大小、来源、上传时间、引用)、复制链接、下载与删除。
- 查看器中可编辑 PNG、JPEG、GIF 图片:旋转、水平 / 垂直翻转、拖动裁剪框裁剪,另存为新图片(原图与正文中的引用不变,新图片计入个人存储)。
双向链接
- 书籍设置「章节链接」新增「关系图」(默认)与「列表」两种查看方式:关系图以章节为节点、链接为带箭头的边,被引用越多的章节越大,草稿为灰色;可拖动画布与章节、滚轮缩放、搜索并定位章节,点击章节高亮其关联并在侧栏列出「链接到」与「被引用」,可直接编辑或阅读;可选显示没有链接的章节与目录结构(虚线)。
模板
- 新增模板插件(默认关闭):新建书籍时可选择书籍模板,创建后按模板生成章节目录与正文(均为草稿)并打开第一章;写作台工具栏与
/菜单可插入章节模板到光标处,也可把当前章节存为模板。 - 站点模板由管理员在后台「站点模板」维护,首次启用时预置产品文档、技术教程、团队知识库三份书籍模板,以及会议纪要、接口文档、教程章节、版本发布说明、常见问题五份章节模板;作者可在「我的模板」新建章节模板,或把自己的书保存为书籍模板(可选是否包含正文)。
- 模板支持变量:日期、时间、书名、章节名、作者名,使用时按浏览器时区替换为实际值。
- 新增权益「个人模板数量」(默认 50),可由会员方案与成长等级提升。
备份与恢复
- 新增站点备份(系统设置 · 备份):一键备份或按计划每天 / 每周自动备份,自动备份保留最近若干份;备份为 zip,包含全部业务数据(与数据库类型无关的逐表导出)、可选的本地上传文件与站点密钥,进度显示在备份页与「我的任务」中,完成或自动备份失败时发送站内通知。
- 下载备份需要管理员权限与短时下载凭证,开启二次认证时按「导出数据」验证;删除按「删除」验证。备份含站点密钥与各类接口密钥,只保存在服务器数据目录中,不上传到公开访问的对象存储。
- 安装向导新增「从备份恢复」:选择一个空数据库并上传备份,按进度建表、写入数据、恢复文件,完成后用原账号登录,原有登录状态仍然有效;可以恢复到与备份时不同的数据库(如从 SQLite 换成 PostgreSQL);拒绝来自更新版本的备份。
运行指标
- 新增运行指标(系统设置 · 运行指标,默认关闭):开启后
/metrics以 Prometheus 格式输出请求量与耗时、正在处理的请求、事件流连接数、模型调用次数 / tokens / 估算费用 / 耗时、后台任务积压与最早任务等待时长、在线实例、数据库连接池、用户 / 书籍 / 章节总数及版本与运行时指标;抓取需携带访问令牌(只显示一次,可重新生成),页面提供 Prometheus 抓取配置示例与当前指标预览。
安装为应用与离线阅读
- 站点可以安装为应用(添加到手机主屏幕或桌面,独立窗口打开),用户菜单中出现「安装应用」(浏览器支持时)。
- 读过的章节自动保存到浏览器,断网时仍可打开;书籍详情页新增「离线阅读」,可一次下载全部章节(含正文图片与页面脚本),也可更新或移除;离线时底部提示正在显示已保存的内容,未保存的页面显示离线页。
- 离线期间的阅读进度在联网后自动补传;断网时不再因校验登录失败而退出登录。离线内容只保存在当前浏览器,登录或退出登录时清除。
- 站点设置新增「允许安装为应用并离线阅读」(默认开启),关闭后浏览器中的离线缓存在下次访问时清除。
协作写作
- 写作台显示同时在编辑这本书的协作者(顶栏头像,悬停可见各自所在章节与是否有未保存修改),目录中标出协作者正在编辑的章节;同一章节有其他人打开时给出提示。
- 保存冲突保护:保存时检查打开章节后是否有其他人保存过;有则以打开时的内容为基准自动合并双方互不冲突的修改,改到同一处时弹出合并对话框,逐处选择保留自己的、采用对方的或两者都保留,也可以放弃自己的修改改用对方版本。不会再出现后保存的人覆盖他人修改。
- 他人保存了正在打开的章节时:没有未保存修改则自动载入新内容,有修改则提示保存时将自动合并;他人新建、删除、移动或改名章节时目录自动刷新。
- 修复:保存过程中继续输入的内容在保存完成后被显示为「所有更改已保存」。
- 新增写作批注:在写作台选中正文,点工具栏的批注按钮或按 ⌘/Ctrl + Alt + M 添加批注;批注侧栏按「未解决 / 已解决」列出讨论串,可回复、修改、删除与标记解决,点击原文在正文中选中对应位置(正文修改后按上下文重新定位,找不到时提示原文已修改)。批注只有书籍作者与协作者可见,不出现在阅读页;目录中标出各章节未解决的批注数;新批注与回复会通知书籍作者与讨论中的其他人,并实时同步到其他人的写作台。
- 新增协作者角色「建议者」:可以进入写作台查看草稿、批注,修改正文后点「提交修改建议」(可附说明)交给作者审阅,不能直接保存,也不能新建或调整章节。作者在批注侧栏的「修改建议」中审阅,按改动块对比原文与建议、逐处勾选采纳(标题修改单独选择)或全部不采纳;采纳的部分与当前版本合并后保存,建议提交后正文已被改动时互不冲突的部分自动合并、冲突处由作者选择。目录标出各章节待处理的建议数,提交与处理结果会通知对方,建议者可撤回未处理的建议。
- 批注中输入 @ 可选择书籍作者与协作者,被提及的人收到「提到了你」的通知,批注中的提及会高亮显示。
- 新增章节分工:在写作台的章节设置中为每章指定负责人(作者或协作者)、阶段(未开始 / 写作中 / 待审阅 / 已定稿)与截止日期,修改即时保存;目录显示阶段色点与负责人头像(悬停可见详情,逾期标红),并可筛选「分配给我的 / 待审阅 / 未定稿」章节(地址中的 ?filter=)。分配章节时通知负责人,章节进入「待审阅」时通知作者与编辑者,分工变化实时同步到其他人的写作台;建议者可以查看分工。
- 编辑者也可以在写作台顶栏打开「建议模式」(按书记住),修改以建议提交给其他协作者审阅,关闭后恢复直接保存。
- 写作台新增「协作」侧栏(?team=activity|tasks):「动态」按天列出谁修改了哪一章(新增 / 删除行数,连续保存合并为一条)、新建或删除章节、恢复历史版本、批注与回复、处理修改建议、调整分工,实时刷新,可直接打开相关章节,保留 180 天;「分工总览」按阶段统计章节数、逾期与未指定负责人的章节数,并列出全部章节的负责人与截止日期。
邮件摘要
- 通知设置新增「邮件发送方式」:每条即时发送、每日摘要、每周摘要或不发送邮件。选择摘要后,通知在服务器时间每天 8:00(每周摘要为周一)汇总成一封邮件,按类型分组并遵守逐类型开关,同时附上你参与写作的书籍中他人的协作动态(修改、批注、修改建议、分工调整次数);可随时给自己发送一封预览。
- 摘要邮件附一键退订链接(签名校验,无需登录),退订后改为不发送邮件,站内通知不受影响;多实例部署时只由一个实例发送。
AI 朗读
- 新增「AI 朗读」插件(默认关闭):读者在阅读页点「朗读」即可收听章节,逐段播放并高亮当前段落,可调语速、切换音色,读完自动进入下一章;支持锁屏与耳机按键控制。只朗读读者有权阅读的内容(付费章节需解锁)。
- 「AI 服务」新增语音合成配置(OpenAI 兼容接口,可沿用对话服务的地址与密钥)、可选音色、按字计价与连通测试;朗读用量按字数记入 AI 用量。
- 每月朗读字数为权益,可由会员方案与成长等级提升,同一段当月重复收听不重复计数;已合成的音频缓存在服务器数据目录复用(不上传对象存储),管理员可设置缓存上限或清空缓存。
团队空间
- 新增「团队空间」插件(默认关闭):可以创建团队、邀请成员(所有者 / 管理员 / 成员),对方在「我的团队」中接受邀请;团队主页分书籍、成员、设置三栏,支持转交与解散团队、退出团队。
- 作者可以把自己的书加入团队(在团队主页或书籍设置的协作者页):所有者与管理员自动获得编辑权限,其他成员按每本书设置的编辑、建议或只读权限参与,成员与角色变动时自动同步;书籍协作者中标记「来自团队」,直接邀请的协作者优先。
- 每人可创建的团队数与每个团队的成员数为权益,可由会员方案与成长等级提升;管理员可在后台查看与解散团队。
- 团队会员:会员方案可开启「可按团队购买」,团队所有者与管理员在「我的会员 › 团队会员」按席位开通,团队中按次序(所有者、管理员,再按加入时间)的前 N 名成员享有方案权益;与个人会员同时有效时每项权益取较高值。有效期内可续期,或按剩余天数折算增加席位;退款撤销时按比例扣回天数或席位,到期前提醒购买人。
- 成员在「我的会员」中可以看到通过团队享有的会员,席位已满时提示联系团队管理者;管理员可在「会员 › 团队会员」中调整方案、席位与到期时间,或立即取消。
完整提交记录(31 条)
- fix(web): keep the user menu within the viewport (3970f69)
- feat(membership): add seat-based team memberships (f1ab608)
- feat(teams): add team spaces with members and shared books (55dd0f7)
- feat(read-aloud): add AI read-aloud plugin for chapters (e312ee2)
- feat(notify): add daily and weekly email digests (8825453)
- style(files): gofmt the image edit test (6539875)
- feat(writer): add a team panel with activity and assignment overview (96b34a9)
- feat(writer): add chapter assignments and an editor suggest mode (e1d0ae3)
- feat(writer): add suggester role, change review and mentions (da1a28d)
- feat(writer): add comments for authors and collaborators (ea4c994)
- feat(writer): add collaborator presence and safe concurrent saves (12b0869)
- feat(pwa): make the site installable and readable offline (5038890)
- feat(metrics): expose Prometheus metrics behind an access token (345fbd6)
- feat(backup): add site backups and restore from the install wizard (26e0d61)
- feat(templates): add book and chapter templates plugin (fb77aa5)
- test(backlinks): cover the relationship graph in the links e2e (3478c6f)
- feat(backlinks): add a chapter relationship graph to chapter links (f6575f3)
- feat(files): open images in a viewer with basic editing (cb79339)
- fix(web): show loading in the chapter picker until resolved (c6f5e49)
- feat(booklists): feature lists on the explore page (82eceaf)
- feat(storage): migrate existing files after changing storage (3a33b90)
- feat(contentcollect): add configurable collection rules (98ddf7b)
- feat(web): pick linked chapters from a searchable cascade (6124525)
- feat(site): add custom head and footer html settings (6d4a0c2)
- feat(ai-usage): show estimated cost in my ai usage (57a6269)
- feat(web): open my entitlements from a help icon (92cebd2)
- feat(web): keep list pages in the url and show paging progress (0e80b78)
- fix(contentcollect): take site crawl titles from nav link text (4a4cf7d)
- fix(book-translations): translate chapters with html tables (45ada69)
- chore(deploy): commit the next version after a release (a6769bc)
- chore: start version 2026.0.8 (9aa165f)
完整更新日志见 CHANGELOG.md。