「Clip To Discourse」Chrome拡張機能

Discourseコミュニティの皆様へ、ささやかな :wrapped_gift: クリスマスのプレゼント :christmas_tree: です。シンプルですが便利で、純粋に私が欲しかったので作成しました。

Simon Willison氏によるLLMを開発に利用することについての素晴らしいブログに触発され、私はクリスマスの間に、社交的なイベント、映画鑑賞、プレゼントのラッピングの合間に、これを勢いでコーディングしました!私はコードを一切書いていませんが、コードをレビューし、LLMを監督しました。すべては spec.mdroadmap.md から駆動されました。

何のためのものか?

私は、自己ホスト型の個人用 Discourseノートブックジャーナル、ブログ、履歴書、Wiki、AIツール、開発者ナレッジベースとして使用しています。頻繁に、ウェブ上のコンテンツ(ページのタイトル + URL)を「クリップ」して、直接Discourseにドロップし、そこからノートやジャーナルエントリに組み込みたいと思うことがあります。

私のニーズはシンプルなので、これはかなり基本的なもので、ページタイトルとURLを投稿するだけですが、将来的には「ページ抜粋を含める」や「ページ全体をクリップする」をオプションとして追加したいと考えています。

プライバシー

  • あなたやあなたのコンテンツに関するデータを一切収集しません。
  • すべてのデータはブラウザからあなたのDiscourseインスタンスに直接送信されます。
  • サードパーティのサーバーは関与しません。
  • オープンソース。GitHubリポジトリ: https://github.com/koloki-co/clip-to-discourse-chromium-extension

特徴

  • ページタイトルとURLをクリップします。「ページ抜粋」または「ページ全体のテキスト」は実装されていますが、少々洗練されていません(ただし、後でDiscourseインスタンス上であなたのDiscourse AIが要約できるかもしれません)。
  • 各クリップで新しいトピックを作成するか、クリップを既存のトピックへの返信として追加します。
  • 複数のプロファイルをサポートし、複数のAPIキー、宛先Discourse、およびデフォルト設定を保存できるため、さまざまなユースケースに対応できます。
  • Clip To Discourseアイコンは、現在選択されているプロファイルのサイトのファビコンを反映するように自動的に変更されるため、どこにクリップしているのかを簡単に確認できます!

制限事項

  • 主な制限は、クリップ先のDiscourseインスタンスで、管理者があなたのためにユーザー スコープのAPIキーを作成する必要があることです。私にとっては、使用するすべてのDiscourseで私が主要な管理者であるため、これは問題になりません。

  • 明らかに、Clip To Discourse機能が多数のユーザーに有効になると、共有または公開のDiscourseインスタンスで大量の低品質な投稿が発生する可能性があります。そのため、私は主に、私のようにDiscourseを個人のノートブックとして使用している皆さんのために、この拡張機能を対象としています。

インストール方法

  • Chromeウェブストアのリンク https://chromewebstore.google.com/detail/clip-to-discourse/copdhiejkkdblhdcdjapcoalldkondhi から、Chromiumベースのブラウザ(Chrome、Edge、Braveなど)にインストールします。

  • (オプションですが推奨)拡張機能をブラウザのツールバーに「ピン留め」します。

  • 以下の粒度のスコープを持つシングルユーザーAPIキーを作成します: トピック: read(接続テストにのみ使用)、write、および update

  • クリップをどのカテゴリに入れるかを決定します。各クリップを新しいトピックにしたい場合は、カテゴリIDのみが必要です。カテゴリを表示しているとき、このIDはURLに次のように含まれています: https://discourse.yourdomain.com/c/CategoryName/CategoryID

  • 返信するトピックを設定することもでき、すべてのクリップがそのトピックへの新しい返信として追加されます。トピックIDもURLから取得できます: トピックを表示しているとき、このIDはURLに次のように含まれています: https://discourse.yourdomain.com/t/TopicTitle/TopicID

  • 拡張機能のアイコンをクリックしてポップアップを表示し、設定に移動してAPIキーを設定し、デフォルトを設定します。使用したいさまざまなDiscourseに対応する複数の「プロファイル」を持てることに注意してください。

  • 設定を保存し、(オプションで)接続をテストします。これにより、API接続が機能することを確認するために1つのトピックが読み込まれます。

  • 設定を閉じて、クリップをテストします!

画像

Clipping Settings
Demo Clip to New Topic
Demo Clipped Topic
Demo Clipped as a Reply

ロードマップ

  • 「ページ抜粋を含める」と「ページ全体をクリップする」は、テストと微調整が必要になる場合があります。あるいは、この機能により、ユーザーがクリップするテキスト領域を選択できるようになるかもしれません。

  • 私はFirefoxやSafariの拡張機能を作成する予定はありません(それらのブラウザを使用しないため)。しかし、誰かがこの拡張機能を移植する作業を引き受けてくれるなら大歓迎です。すべてを1つのリポジトリにまとめ、機能の同等性を維持するために協力できるかもしれません。

  • 管理者によるAPIキーの作成を不要にするために、DiscourseユーザーAPIフローを実装することを検討するかもしれません。ただし、ユーザーAPIはOAuthフローを介して機能するため、すぐに置き換えられるものではありません。

関連ディスカッション

基本的にこのツールを要求するスレッド: https://meta.discourse.org/t/chrome-firefox-extension-share-to-discourse/21104/28

Discourseにクリップする際に、追加機能を示唆する関連投稿: https://meta.discourse.org/t/need-web-clipper-for-discourse-post/45105

ソーシャルシェアは関連する概念ですが、単純なURLを使用します https://meta.discourse.org/t/social-share/89980

フィードバック、アイデア、および貢献

このトピックは、あなたが持っているフィードバックを投稿するのにかなり適した場所です。拡張機能を過度に複雑にせず、私にとっての有用性を損なわない限り、改善のためのアイデアには前向きです!

イシューをオープンしたり、PRを作成したりしたい場合は、GitHubリポジトリはこちらです:

この拡張機能は、私の会社 Koloki.co がDiscourseコミュニティのために作成した、無料のオープンソースでプライバシーを重視したツールです。

「いいね!」 12

この拡張機能、素晴らしいです :clap:

「いいね!」 1

これは私のユースケースにも当てはまるかもしれません。理想的には、新しいトピックにクリップする場合、フィーチャーされたリンクを使用するでしょう。私はこれを多用しています(カスタムレイアウトは無視してください)。

また、クリップするときにページ上の現在選択されているテキストをインポートできればとも思います。これが可能かどうかはわかりません。

私は次のように想像しています。興味深いテキストがあるページ上にいます。テキストを選択し、新しいトピックにクリップすると、それが:

  • ページのリンクをフィーチャーされたリンクとして設定する
  • タイトルをクリップされたページのタイトルに設定する
  • 選択されたHTMLコンテンツを投稿の本文として設定する

編集:最初の2つのステップについては、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の将来のバージョンでは、以下に注力するつもりです。

  • 抜粋としてクリップされるユーザー選択のテキスト範囲
  • その抜粋コンテンツのMarkdown書式設定の改善