Clip To Discourse Chrome 扩展 - 现已支持用户 API!

亲爱的 Discourse 社区朋友们,这是我为大家准备的圣诞小礼物 :wrapped_gift:。它很简单但很实用,完全是因为我自己想要才做的。

Simon Willison 关于使用 LLM 进行开发的精彩博客 的启发,我在圣诞节期间,在参加社交活动、看电影和包装礼物之余,用“氛围编程”(vibe-coding)的方式完成了这个项目。我没有编写任何代码,但我确实审查了代码并监督了 LLM。所有内容都是由 spec.mdroadmap.md 驱动的。

它是做什么的?

我使用自托管的个人 Discourse 作为 笔记本日记、博客、简历、Wiki、AI 工具以及开发者知识库。我经常发现自己希望从网页上“剪藏”(clip)内容,并直接将其放入我的 Discourse 中,以便将其整合到笔记或日记条目中。

Clip To Discourse 现在支持四种剪藏样式:页面标题 + URL、标题 + URL + 摘录、完整页面文本以及选中文本。

隐私

功能

  • 将页面剪藏为标题 + URL、标题 + URL + 摘录、完整页面文本或选中文本。
  • 每次剪藏都创建新主题,或者将剪藏内容作为回复添加到现有主题中。
  • 通过 Discourse 用户 API 进行授权,无需管理员创建 API 密钥。管理员提供的用户范围 API 密钥仍可作为备用方案。
  • 支持多个配置文件,用于不同的 Discourse 实例、用户、凭据、模板和默认设置。配置文件可以重命名、复制或删除。
  • 从连接账户可用的类别中选择目标类别。
  • 使用页面元数据、摘录、全文、选中文本和日期占位符来自定义标题和正文模板。
  • 选择系统、浅色或深色外观。
  • 可选地将 Clip To Discourse 工具栏图标更改为所选配置文件的站点 favicon,以便轻松识别您正在剪藏到哪里
  • 使用 Ctrl+Shift+K(macOS 上为 Command+Shift+K)打开弹出窗口,可在 chrome://extensions/shortcuts 中配置。

局限性

  • Discourse 站点必须启用用户 API 密钥,并允许您账户所在的组进行授权。如果无法使用用户 API 授权,站点管理员可以提供具有细粒度权限的单用户 API 密钥。
  • 显然,如果 Clip To Discourse 功能被启用给太多用户,它可能会在共享或公共 Discourse 实例上产生大量低质量的帖子。因此,我主要将该扩展程序面向像我一样将 Discourse 用作个人笔记本的用户。

如何安装

  • 通过 Chrome 应用商店在 Chrome 或其他兼容的基于 Chromium 的浏览器(版本 127 或更高)中安装:https://chromewebstore.google.com/detail/clip-to-discourse/copdhiejkkdblhdcdjapcoalldkondhi
  • 可选地将扩展程序“固定”到浏览器工具栏。
  • 点击扩展程序图标,打开设置,并输入您的 Discourse 基础 URL。
  • 选择用户 API 并点击授权 Clip To Discourse。登录您的 Discourse 账户,如果要求,请输入显示的设备代码,并批准访问。
  • 如果无法使用用户 API 授权,请使用管理员 API 密钥选项卡,并输入管理员提供的单用户 API 密钥。避免使用全局 API 密钥。
  • 选择您的默认剪藏样式、目标、类别或现有主题 ID,并可选地自定义模板。
  • 保存设置并可选地测试连接。
  • 关闭设置,剪藏一些内容以进行测试!

授权 Clip To Discourse

剪藏到 Discourse

路线图

  • 我不打算开发 Firefox 或 Safari 扩展程序(因为我不使用这些浏览器),但我很乐意看到有人接手移植此扩展程序的任务。我们可以合作,将所有内容保留在一个仓库中并保持功能对等。
  • 可能的未来添加包括标签、额外的键盘快捷键以及进一步的剪藏工作流程改进。

相关讨论

请求基本上是这个工具的帖子:Chrome/Firefox extension “Share to discourse” - #28 by supermathie

一个相关的帖子,建议在剪藏 Discourse 帖子时增加额外功能:Need Web Clipper for Discourse Post

社交分享是一个相关的概念,但使用简单的 URL:Social Share

反馈、想法和贡献

这个主题是一个放置您任何反馈的好地方。只要这些改进不会使扩展程序过于复杂和/或对我变得不那么有用,我就对改进的想法持开放态度!

如果您想打开问题或提交 PR,GitHub 仓库在这里:

此扩展程序是一个免费、开源且注重隐私的工具,由我的公司 Koloki.co 为 Discourse 社区创建。

13 个赞

为这个扩展干得漂亮 :clap:

1 个赞

这可能也是我的用例。理想情况下,当剪辑到新主题时,它会使用精选链接,我大量使用此功能(忽略自定义布局):

如果剪辑能导入页面上当前选定的文本,我也会很高兴,我不确定这是否可行。

我可以想象这样的场景:我在一个有有趣文本的页面上。我选择文本,剪辑到一个新主题,然后它会:

  • 将页面链接作为精选链接
  • 将标题设置为剪辑页面的标题
  • 将选定的 HTML 内容设置为帖子正文

编辑:对于前两个步骤,david 的出色解决方案效果非常好。它要求我手动发布主题,但对于我的用途来说,我认为可以接受 :thinking:

1 个赞

我很久以前就有过同样的想法,但直到上周才终于成功设置好。

与 Discourse 无关,我个人长期使用的方法是 SingleFile 浏览器扩展程序。它可以将您当前正在查看的网站保存为单个 HTML 文件,尽可能保留您所看到的内容,以便您可以离线阅读。我的 ~/Downloads 文件夹里有无数个沉睡的 HTML 文件。

由于互联网上的信息不会永远存在,最可靠的方法是将您当前看到的内容原封不动地保存在您自己的计算机上。

我已经保存了很多 HTML 文件,将来还会添加更多,所以我一直在考虑一个功能,可以让我将这些文件导入到 Discourse 中进行查看和管理。

如果您计划添加一个“抓取”或剪辑网站内容的功能,它将与 SingleFile 扩展程序已经做得很好的功能有很大的重叠。

如果有一种方法可以直接与 SingleFile 集成或导入 HTML 文件,那就太棒了。

2 个赞

感谢您分享 SingleFile 扩展程序——这是一个很棒的工具,我可能不会过多地尝试复制或与之重叠。我也有同样的使用场景——希望将一个可用的页面以单个 HTML 文件的形式保存下来,所以我刚刚也安装了 SingleFile。我之前不知道有这么棒的扩展程序!

一旦您使用“Clipped To Discourse”保存后,您也可以将该 HTML 文件作为附件上传到帖子中。这可能是我会使用它的方式,作为 archive.org 的替代方案。

对于 Clip To Discourse 的未来版本,我想我会专注于:

  • 用户选择的文本范围作为摘录(Excerpt)被剪辑
  • 改进该摘录内容的 Markdown 格式化

Clip To Discourse 在 0.19.2 版本中进行了一些小的更新

  • 改进了“整页”剪辑(使用 Mozilla Readability 更准确、更易读地剪辑页面文本)。
  • 对帖子中的文本设置了 50,000 个字符的限制(Discourse 主题正文不能超过 50k 字符,否则会返回错误)

来源: GitHub - koloki-co/clip-to-discourse-chromium-extension: A Chromium Browser extension which clips web content to your private Discourse. · GitHub
Chrome 网上应用店: https://chromewebstore.google.com/detail/copdhiejkkdblhdcdjapcoalldkondhi?utm_source=item-share-cb

1 个赞

更新:v0.19.5 - 文本选择支持

刚刚发布了新版本的 Clip To Discourse

新增内容

  • 自动选择检测:当您在一个页面上选中文字时,扩展程序现在会自动检测到它,并向您显示将被剪辑的确切内容(字符数和词数)
  • 新的“文本选择”剪辑样式:与现有的标题+URL、摘要和全文选项并列,成为第四种剪辑样式
  • 智能自动选择:当选中文字时,扩展程序会自动切换到“文本选择”模式,以便您确切知道正在剪辑的内容
  • 右键上下文菜单:添加了一个简单的“Clip to Discourse”上下文菜单项,用于打开弹出窗口(有无选择均可使用)
  • 可定制模板:文本选择模板可以在设置中自定义,就像其他剪辑样式一样

这样可以非常快速地突出显示一个引用或段落,并将其直接剪辑到您的 Discourse 中,同时附带适当的上下文(页面标题 + URL + 您选择的文本)。

即将推出

目前正在努力实现 Discourse 用户 API 流程,这将允许用户通过 OAuth 授权扩展程序,而无需管理员创建 API 密钥。这将使扩展程序在共享或公共 Discourse 实例上更易于使用!

1 个赞

一项重要的可用性更新:Clip To Discourse 现已支持 Discourse 用户 API。

这意味着普通 Discourse 用户不再需要管理员手动为其创建 API 密钥。只需输入您的 Discourse URL,点击 Authorize Clip To Discourse,登录账户,如提示请输入显示的设备代码,然后批准访问权限即可。

站点仍需全局启用 用户 API 密钥(已启用的权限范围:readwrite,且您所属的用户组必须被允许使用用户 API)。一旦完成此配置,非管理员用户的入门体验将大大简化。

管理员提供的、针对特定用户范围的 API 密钥仍可作为备用方案,适用于无法使用用户 API 授权的站点。

Chrome 网上应用店中的 Clip To Discourse