Clip To Discourse Chrome拡張機能 - いまやUser API対応!

Discourseコミュニティの皆さんへ、私の小さな:wrapped_gift:クリスマスプレゼント:christmas_tree:です。シンプルですが実用的で、私が欲しかったからという理由だけで作りました。

Simon Willison氏のLLMを開発に活用する素晴らしいブログに触発され、クリスマスの間に、社交行事や映画鑑賞、プレゼントのラッピングの合間に、Vibe Codingでこれを作りました。コードは一切自分で書いていませんが、コードのレビューとLLMの監督は行いました。すべてはspec.mdroadmap.mdから駆動されています。

用途

私はセルフホストの個人的なDiscourseを、ノートブックジャーナル、ブログ、履歴書、ウィキ、AIツール、そして開発者向けナレッジベースとして使用しています。頻繁に、Webからコンテンツを「クリップ」してDiscourseに直接投入したくなり、そこからノートやジャーナルエントリに組み込みたいと感じます。

Clip To Discourseは現在、4つのクリップスタイルをサポートしています:ページタイトル+URL、タイトル+URL+抜粋、ページ全体テキスト、選択テキスト。

プライバシー

機能

  • ページをタイトル+URL、タイトル+URL+抜粋、ページ全体テキスト、または選択テキストとしてクリップします。
  • 各クリップで新しいトピックを作成するか、クリップを既存のトピックへの返信として追加します。
  • 管理者がAPIキーを作成する必要なく、Discourse User APIを通じて認証を行います。管理者が提供するユーザースコープのAPIキーはフォールバックとして利用可能です。
  • 異なるDiscourseインスタンス、ユーザー、認証情報、テンプレート、デフォルト設定用の複数プロファイルをサポートします。プロファイルは名前の変更、複製、削除が可能です。
  • 接続されたアカウントが利用可能なカテゴリから、宛先カテゴリを選択します。
  • ページメタデータ、抜粋、全文、選択テキスト、日付プレースホルダーを使用して、タイトルと本文のテンプレートをカスタマイズします。
  • System、Light、Darkの外観を選択します。
  • Clip To Discourseのツールバーアイコンを、選択されたプロファイルのサイトファビコンに変更し、クリップの宛先を簡単に識別できるようにできます(オプション)。
  • ポップアップをCtrl+Shift+K(macOSではCommand+Shift+K)で開きます。chrome://extensions/shortcutsで設定可能です。

制限事項

  • DiscourseサイトはUser APIキーを有効にし、アカウントのグループがそれらを認証することを許可している必要があります。User API認証が利用できない場合、サイト管理者が細かな権限を持つ単一ユーザーAPIキーを提供できます。
  • 明らかに、Clip To Discourse機能が多くのユーザーに対して有効化されると、共有またはパブリックなDiscourseインスタンスで低品質な投稿が大量に発生する可能性があります。そのため、この拡張機能は私のようにDiscourseを個人的なノートブックとして使用している方を主な対象としています。

インストール方法

  • Chromeまたは他の互換性のあるChromiumベースのブラウザ(バージョン127以降)で、Chrome Web Storeからインストールします: https://chromewebstore.google.com/detail/clip-to-discourse/copdhiejkkdblhdcdjapcoalldkondhi
  • オプションで、拡張機能をブラウザのツールバーに「ピン留め」します。
  • 拡張機能のアイコンをクリックし、設定を開き、DiscourseのベースURLを入力します。
  • User APIを選択し、Clip To Discourseを認証をクリックします。Discourseアカウントにサインインし、求められた場合は表示されたデバイスコードを入力して、アクセスを承認します。
  • User API認証が利用できない場合は、Admin API Keyタブを使用し、管理者が提供する単一ユーザー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

Social Shareは関連する概念ですが、シンプルなURLを使用します: Social Share

フィードバック、アイデア、コントリビューション

このトピックは、フィードバックを投稿するのによい場所です。拡張機能を複雑にしすぎず、かつ私にとって有用性を損なわない限り、改善のアイデアにはオープンです!

Issueを開いたりPRを送ったりしたい場合は、GitHubリポジトリはこちらです:

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

「いいね!」 13

この拡張機能、素晴らしいです :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書式設定の改善

Clip To Discourse のバージョン 0.19.2 のいくつかの小さなアップデート

  • 「全ページ」クリッピングの改善(Mozilla Readability を使用して、ページテキストをより正確かつ読みやすくクリッピングします)
  • 投稿内のテキストに 50,000 文字の制限を設けました(Discourse のトピック本文が 50k 文字より大きいとエラーが返されるため)

ソース: GitHub - koloki-co/clip-to-discourse-chromium-extension
Chrome ウェブストア: https://chromewebstore.google.com/detail/copdhiejkkdblhdcdjapcoalldkondhi?utm_source=item-share-cb

「いいね!」 1

アップデート: v0.19.5 - テキスト選択のサポート

Clip To Discourse の新しいバージョンをリリースしました

新機能

  • 自動選択検出: ページ上でテキストが選択されている場合、拡張機能がそれを自動的に検出し、クリップされる内容(文字数と単語数)を正確に表示します。
  • 新しい「テキスト選択」クリップスタイル: 既存のタイトル+URL、抜粋、全文のオプションに加えて4番目のクリップスタイルとして追加されました。
  • スマートな自動選択: テキストが選択されると、拡張機能は自動的に「テキスト選択」モードに切り替わり、クリップする内容を正確に把握できます。
  • 右クリックコンテキストメニュー: シンプルな「Discourseにクリップ」コンテキストメニュー項目が追加され、ポップアップが開きます(選択の有無にかかわらず機能します)。
  • カスタマイズ可能なテンプレート: テキスト選択のテンプレートは、他のクリップスタイルと同様に設定でカスタマイズできます。

これにより、引用文や抜粋をハイライトして、適切なコンテキスト(ページタイトル + URL + 選択したテキスト)とともに直接Discourseにクリップすることが非常に素早く行えるようになります。

近日公開予定

現在、Discourse ユーザーAPIフローの実装に取り組んでいます。これにより、管理者がAPIキーを作成する必要なく、ユーザーがOAuth経由で拡張機能を承認できるようになります。これにより、共有または公開されているDiscourseインスタンスでの拡張機能の使いやすさが大幅に向上します!

「いいね!」 1

大きな使いやすさの改善: Clip To DiscourseはDiscourse User APIに対応しました。

これにより、通常のDiscourseユーザーは、管理者が手動でAPIキーを作成してもらう必要がなくなりました。DiscourseのURLを入力し、Authorize Clip To Discourseをクリックしてログインし、必要に応じて表示されるデバイスコードを入力して、アクセスを承認してください。

サイト全体で**User APIキー**が有効にされている必要があります(有効なスコープ: readwrite、またユーザーが所属するグループがUser APIの使用を許可されている必要があります)。ただし、この設定が完了すれば、非管理者ユーザー向けのオンボーディング体験は大幅にシンプルになります。

User APIの認可が利用できないサイト向けに、管理者が提供したユーザー範囲のAPIキーは引き続きフォールバックとして利用可能です。

Chrome Web StoreでのClip To Discourse