GitHub - ppanphper/linuxdo-double-column: Tampermonkey userscript: 在 linux.do 话题列表右侧面板极速预览与交互(Discourse JSON API 直接渲染) · GitHub
Skip to content

About

Tampermonkey userscript: 在 linux.do 话题列表右侧面板极速预览与交互(Discourse JSON API 直接渲染)

Resources

Stars

1 star

Watchers

0 watching

Forks

Latest commit

 

History

12 Commits

Folders and files

Repository files navigation

Linux.do 双栏阅读预览

Tampermonkey 用户脚本:在 linux.do 话题列表页或搜索结果页点击帖子标题时,在右侧面板中直接预览和交互,无需离开当前列表。基于 Discourse JSON API 直接渲染,比 iframe 方案快得多。

安装

  1. 安装 Tampermonkey 浏览器扩展
  2. 点击安装脚本:linuxdo-double-column.user.js
  3. 打开或刷新 linux.do,点击任意话题即可在右侧预览

脚本内置 @updateURL,Tampermonkey 会自动检查本仓库的新版本。

功能

阅读

  • 话题列表点击 → 右侧面板极速预览(JSON API 直接渲染 + 内存缓存 + 悬停预取)
  • 搜索结果标题点击/悬停同样支持预览/预取;保留搜索词、筛选条件和列表滚动位置,支持动态追加的结果
  • 搜索结果带楼层号时定位命中回复(含树状视图及尚未加载的楼层);用户、分类、标签链接及修饰键点击保持原生行为
  • 预览加载失败后,可再次点击列表标题、预览标题或失败提示重新加载
  • 原始楼层/树状评论双视图,树状评论支持热门或时间排序、按分支展开与收起
  • 树状回复索引为空或不全时,自动分页补取回复;多重引用就地预览,暂不可见的回复保留重新加载入口
  • 深层回复缩进封顶:每级 24px,窄面板最多 2 级、较宽面板最多 3 级;保留真实父子关系及完整分支折叠
  • 树状评论显示“回复 #楼层”,点击就地查看直接父帖,支持准确定位父楼层
  • 「只看此分支」以当前评论为阅读起点,支持祖先导航、逐级返回和恢复原阅读位置
  • 双向按需加载楼层(上下滚动自动补载,分页提示可点击重试),支持超长帖
  • 时间线快捷翻页:拖动滑块实时滚动、显示楼层号/日期、首尾日期快跳
  • 「返回」按钮:跳离阅读位置后可一键回到未读楼层(对齐官方逻辑)
  • 打开读过的帖子自动定位到第一条未读楼层
  • 新回复实时推送加载(复用页面 MessageBus,零轮询)
  • 图片点击弹窗查看(默认完整适配视口;上一张/下一张、方向键切换、滚轮缩放、超出视口时可拖动、Esc 关闭)
  • 楼层显示相对时间(x 秒/分钟/小时/天前),悬停看完整日期
  • 用户头衔、群组徽章、管理身份、楼主标签展示
  • 楼层「⋯」菜单支持只看楼主、只看指定用户及恢复全部评论
  • 楼层回复关系:头部显示被回复人头像/昵称(点击跳转),底部「N 个回复」展开官方样式的回复列表
  • 面板宽度拖动调节、放大模式、浏览器前进后退联动

交互

  • 回复主题/回复楼层(Markdown 工具栏:加粗/斜体/链接/引用/代码/列表)
  • 图片粘贴/拖拽/选择上传(官方 /uploads.json)
  • 实时预览(复用页面内 Discourse 渲染器,效果与官方一致)
  • 点赞/取消点赞、楼层收藏(原生书签)、投票、复制楼层链接
  • 标题栏一键收藏/取消收藏话题(原生话题书签),悬停可查看本话题的楼层书签数
  • 通知级别切换(关注/跟踪/普通/免打扰)
  • 阅读时长正常上报(/topics/timings),积分、已读进度与官方一致

说明

  • 仅在 https://linux.do/* 生效;理论上兼容其他 Discourse 站点(需自行修改 @match)
  • 所有 API 请求都通过浏览器原生 fetch 发出,浏览器会自动携带当前浏览器的标准 User-Agent;脚本不会手工覆盖该受保护请求头,并保留 same-origin 登录态 Cookie,以避免破坏 Cloudflare 检测所需的浏览器上下文
  • 未实现:🚀 Boost(消耗型资源,语义不明)、热门回复过滤、Reader Mode

本地验证

在仓库目录运行:

node --check linuxdo-double-column.user.js
python3 -m http.server 8765 --bind 127.0.0.1

打开 深层回复回归页面。页面载入正式脚本的样式和渲染函数,用本地模拟 API 验证 100 层单链、嵌套分叉、缩进上限、父帖预览、分支导航、空索引回退、多重引用、回复分页、加载重试和状态恢复,不向 Linux.do 发送请求。

打开 搜索页回归页面。页面复用 Discourse 搜索结果 DOM 结构及正式脚本启动入口,以本地模拟 API 验证搜索标题预取、点击命中楼层、前进后退、关闭恢复、动态结果、加载中切换结果、失败重试、原列表兼容和窄栏布局。

About

Tampermonkey userscript: 在 linux.do 话题列表右侧面板极速预览与交互(Discourse JSON API 直接渲染)

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages