Greasy Fork

来自缓存

Greasy Fork is available in English.

Discourse 话题快捷切换器

增强 Discourse 论坛体验,提供即时话题切换、当前话题高亮和上一个/下一个话题的快速导航功能

作者
Pipecraft
日安装量
0
总安装量
1
评分
0 0 0
版本
0.3.2
创建于
2025-09-28
更新于
2025-09-30
大小
53.1 KB
许可证
MIT
适用于

Discourse 话题快捷切换器

一款强大的用户脚本,为 Discourse 论坛带来无缝话题导航、当前话题高亮显示和上一个/下一个话题的快速导航功能。让您以更快的速度和更高的效率浏览您喜爱的论坛。

screencapture

功能特点

  • 话题列表缓存:当您访问列表页面时自动缓存话题列表
  • 快速访问:通过以下方式从任何话题页面访问缓存的列表:
    • 右下角的悬浮按钮
    • 键盘快捷键(反引号键 `
  • 用户友好界面
    • 显示缓存时间和来源信息
    • 从弹出面板直接导航到话题
    • 通过 ESC 键、关闭按钮或点击面板外部关闭
    • 当前话题高亮显示,方便识别
    • 自动滚动到列表中的当前话题
    • 提供上一个话题和下一个话题的快速导航按钮
    • 自动跳过隐藏的话题进行导航
    • 设置面板,自定义您的体验,包括语言偏好和导航按钮显示选项
  • 自适应主题
    • 根据系统和网站偏好自动调整明/暗模式
  • 缓存管理
    • 1小时缓存过期时间,带有视觉指示器
    • 源链接可返回原始列表页面

实现原理

此脚本完全在客户端运行,注重效率和最小资源使用:

  1. 客户端缓存:当您访问话题列表页面时,脚本捕获话题列表的HTML内容并将其存储在浏览器的本地存储中。

  2. 零额外服务器请求:脚本仅使用浏览器已加载的内容工作,不会对Discourse服务器造成任何额外负担。

  3. SPA导航:脚本利用Discourse的单页应用架构在话题之间导航,无需完整页面重载,使导航几乎瞬时完成。

  4. DOM操作:通过精心的DOM操作显示缓存的话题列表,创建与论坛当前主题匹配的无缝覆盖层。

  5. 基于事件的交互:所有用户交互(键盘快捷键、按钮点击)通过高效的事件监听器处理。

设计理念优先考虑性能和服务器友好性 - 脚本提供便捷导航,同时不会产生任何超出Discourse正常需求的额外服务器请求。

局限性

由于脚本使用缓存机制,存在以下局限性:

  1. 非实时数据:缓存的话题列表中显示的回复数量和浏览次数不是实时数据,而是缓存时的数据。
  2. 缓存时效性:话题列表仅在您访问列表页面时更新,如果长时间未访问列表页面,缓存的数据可能与实际情况有较大差异。

  3. 新话题不会自动显示:在您缓存列表后发布的新话题不会出现在快速切换器中,直到您再次访问列表页面刷新缓存。

  4. 有限的话题数量:快速切换器只能显示您最后访问的列表页面中包含的话题,通常是一页的内容。

这些局限性是为了保持脚本的轻量级特性和零额外服务器请求的优势而做出的设计选择。

安装

  1. 安装用户脚本管理器,如 TampermonkeyViolentmonkey
  2. 点击此处安装此脚本
  3. 访问任何 Discourse 论坛,享受增强的导航体验!

使用方法

  1. 缓存话题列表

    • 访问任何 Discourse 论坛话题列表页面(最新、新建、分类等)
    • 脚本会自动缓存当前列表
  2. 查看缓存的列表

    • 在查看话题时,可以:
      • 点击右下角的悬浮按钮
      • 按下反引号键(`
    • 将出现一个弹出窗口,显示缓存的话题列表
  3. 在话题间导航

    • 点击弹出窗口中的任何话题以导航到该话题
    • 选择后弹出窗口将自动关闭
  4. 关闭弹出窗口

    • 点击 × 按钮
    • 按下 ESC 键
    • 点击弹出窗口外部

配置

您可以在脚本顶部修改以下设置:

const CONFIG = {
  // 键盘快捷键(默认为反引号键)
  HOTKEY: '`',
  // 缓存键名
  CACHE_KEY: 'discourse_topic_list_cache',
  // 缓存过期时间(毫秒)- 1小时
  CACHE_EXPIRY: 60 * 60 * 1000,
  // 是否在话题页显示悬浮按钮
  SHOW_FLOATING_BUTTON: true,
  // 路由检查间隔(毫秒)
  ROUTE_CHECK_INTERVAL: 500,
  // 是否自动跟随系统深色模式
  AUTO_DARK_MODE: true,
}

兼容性

此脚本适用于所有 Discourse 论坛,并已在以下浏览器上测试:

  • Chrome
  • Firefox
  • Safari

发布记录

v0.3.0

  • 添加设置对话框,用于自定义用户体验
  • 添加语言选择选项
  • 添加导航按钮显示切换功能

v0.2.0

  • 添加上一个话题和下一个话题的快速导航按钮
  • 添加自动跳过隐藏话题的导航功能

v0.1.1

  • 添加国际化支持,支持英文和中文翻译

v0.1.0

  • 初始发布
  • 基本话题列表缓存功能
  • 快速访问的悬浮按钮
  • 键盘快捷键支持
  • 缓存过期指示器
  • 添加当前话题高亮显示功能
  • 添加自动滚动到当前话题的功能
  • 添加点击列表外部关闭列表的功能
  • 改进深色模式支持,增加自动主题适配

更多实用脚本

以下是一些其他有用的脚本,可以增强您的浏览体验:

🏷️ UTags - 为链接添加用户标签

  • 链接Greasy Fork
  • 功能:为用户、帖子、视频和其他链接添加自定义标签和备注
  • 亮点:支持特殊标签过滤(如垃圾、屏蔽、标题党等),数据导出/导入,自动标记已查看帖子
  • 支持网站:V2EX、X(Twitter)、Reddit、GitHub、哔哩哔哩、知乎、Linux.do、Youtube 等 50+ 网站
  • 描述:超级实用的标签管理工具,可为论坛用户或帖子添加标签,轻松识别或屏蔽低质量内容

🔗 链接助手

  • 链接Greasy Fork
  • 功能:在新标签页中打开第三方网站链接,将文本链接解析为超链接
  • 亮点:支持自定义规则,解析 Markdown 和 BBCode 格式,将图片链接转换为图片标签
  • 支持网站:适用于所有网站,包括谷歌、YouTube、GitHub、V2EX 等
  • 描述:增强链接浏览体验,自动处理各种链接格式,使网页浏览更加便捷

🔍 查找适用于当前网站的脚本

  • 链接Greasy Fork
  • 功能:快速查找当前网站的用户脚本
  • 亮点:支持多个流行的脚本仓库,轻松发现有用的脚本
  • 支持网站:适用于任何网站,查找相关用户脚本
  • 描述:一个方便的工具,用于发现和安装专为您访问的网站设计的用户脚本

许可证

MIT License - 详见 LICENSE 文件

贡献

欢迎贡献!请随时提交拉取请求。

相关链接