Linux DO 楼中楼阅读
把 LINUX DO 的回复按讨论关系串起来看,也可以切回按楼层顺序阅读的引用模式。
安装 / 更新
- 浏览器安装暴力猴(Violentmonkey)、篡改猴(Tampermonkey)等用户脚本管理器,并允许访问
linux.do。 - 打开完整脚本。管理器若出现安装页,按提示安装;否则复制全部代码,在管理器中新建脚本并完整替换。
- 保存后刷新已经打开的话题。更新旧版时替换原脚本,避免同时启用两份。
暴力猴自动更新:先安装一次 v6.1.3 或更新版本,再在暴力猴设置中启用自动检查更新,并确认该脚本允许更新。脚本已内置 @updateURL 和 @downloadURL,以后仓库发布更高的 @version 时,管理器会按设置的周期检查并更新;也可手动检查更新。更新后刷新话题生效。仅将新版上传到 GitHub,不会给尚未配置更新地址的旧脚本补上设置。
篡改猴若有“自动安装”选项,也需开启。如果提示“有本地修改,需要手动更新”,请通过上面的脚本链接重新安装 / 覆盖更新,并确认警告消失;直接复制代码到编辑器保存,可能触发本地修改保护。
仓库中的脚本保留原始排版,没有压缩。下载文件位于 linuxdo-comments.user.js。
功能
- 楼中楼:同一串讨论放在一起,按真实回复关系递进,同级对齐,浅灰弯折线连接头像;窄屏限制缩进。
- 引用:恢复论坛原来的楼层顺序及进度。保留原有引用,只为缺少同一父评论引用的回复补充上下文。
- 原生操作:点赞、回复、Boost 和解决方案沿用论坛组件。提前准备话题底部的分享、书签、举报、未读、通知设置及推荐话题。评论末尾稳定后,页尾以 180ms 淡入出现;遵循系统减少动态效果设置。回复发布成功后立即同步到对应讨论,保持当前阅读位置;待审核或提交失败时不显示为已发布。
- 自动分页:长帖每批最多 20 条,接近底部继续加载;跳到末尾后,上滑会补取前页并保留当前评论位置。缺少父评论时单独取上下文,不扫描中间几百层。
- 原生时间轴:直接复用论坛时间轴组件、轨道和拖动预览,移除自制滑块。单独提供筛选后的列表,不改写真实帖流和分页数据。楼中楼按顶层回复计数,首帖和楼内回复不重复计算。
19 / 31表示当前第 19 条、共 31 条;实际加载数量另列。可点击或拖动,松手后定位;开始新拖动即作废旧定位请求。已加载目标直接滚动,未加载目标只查询单条楼号再打开附近页面。直接跳末尾不代表中间内容全部读过。 - 日期定位:上方日期回开头,下方日期到整个评论区末端;目标已加载时直接滚动,未加载时允许导航获取。
- 排版:话题发起者标为 OP;欢迎新用户等帖子提示占满内容宽度,窄屏自然换行。
- 新回复:后台检查,标记放在用户名附近;阅读后消失,不占时间位置。阅读标记保存在当前浏览器。
只整理话题评论区。篡改猴菜单中可以临时开启或关闭。
验证
需要 Node.js 20.19+(jsdom 30 的要求)。
npm ci
npm test测试覆盖顶层定位、拖动预览与单条查询、缓存直达、慢请求隔离、原生页尾、短帖日期定位,以及嵌套与深链接、首帖、原生组件调用、漏载补齐、自动分页、快速反向滚动锚点、回复成功、失败、待审核、重复通知、20→21 帖转换和网络等待期间继续滚动。v6.0.13 的浏览器验收另外检查了两万多层长帖、引用切换、历史返回、320 / 390 像素窄屏及桌面溢出;v6.0.14 另以论坛真实回复提交验证了即时同步、阅读位置保持、引用切换和刷新后的正文。v6.0.19 / v6.0.20 在真实 Chrome 核对了页尾等待加载后淡入、原生操作栏、推荐 / 相关各 5 条及切换、拖动定位、模式切换后的顶部 / 底部日期、390 像素宽度和减少动态效果设置。v6.1.0 的 Chrome 验收发现主题覆盖导致重复控件,以及加载边缘的滚动截断问题;v6.1.1 补充了对应回归,并修正窄屏弹层标题与原生收起事件。v6.1.2 已在真实 Chrome 验证首屏和页尾数据共存、末尾与返回开头、推荐 / 相关切换、短话题 4 条顶层回复与原生 6 帖的模式区分、两万多层长帖跳末尾后快速上滑补页,以及加载边缘第 14 条的实际落点。自动化测试不代替所有论坛主题和扩展组合的兼容性验证。
论坛改版可能影响原生组件接口;遇到问题请附话题链接、复现步骤和截图。