Clip To Discourse, l'extension Chrome - désormais avec l'API utilisateur !

Chère communauté Discourse, voici mon petit cadeau de Noël :wrapped_gift: :christmas_tree: pour vous tous. C’est simple mais utile, et j’ai créé cet outil uniquement parce que j’en avais envie.

Inspiré par le formidable blog de Simon Willison sur l’utilisation des LLM pour le développement, j’ai « vibe-codé » cela pendant les fêtes, entre les événements sociaux, la visionnage de films et le fait des paquets ! Je n’ai écrit aucune ligne de code, mais j’ai bien relu le code et supervisé le LLM. Tout a été piloté depuis spec.md et roadmap.md.

À quoi ça sert ?

J’utilise un Discourse auto-hébergé et personnel comme Carnet, Journal, blog, CV, wiki, outil IA et base de connaissances pour développeur. Je me retrouve souvent à vouloir « clipper » du contenu depuis le web pour le déposer directement dans mon Discourse, d’où je peux l’intégrer dans une note ou une entrée de journal.

Clip To Discourse prend désormais en charge quatre styles de capture : Titre de la page + URL, Titre + URL + Extrait, Texte intégral de la page, et texte sélectionné.

Confidentialité

Fonctionnalités

  • Capturer une page en tant que Titre + URL, Titre + URL + Extrait, Texte intégral, ou Sélection de texte.
  • Créer de nouveaux Sujets pour chaque capture, ou ajouter les captures en tant que réponses à un Sujet existant.
  • S’autoriser via l’API Utilisateur de Discourse sans avoir besoin qu’un administrateur crée une clé API. Une clé API fournie par un administrateur, limitée à un utilisateur, reste disponible en secours.
  • Prise en charge de plusieurs profils pour différentes instances Discourse, utilisateurs, identifiants, modèles et valeurs par défaut. Les profils peuvent être renommés, dupliqués ou supprimés.
  • Choisir une catégorie de destination parmi celles disponibles pour le compte connecté.
  • Personnaliser les modèles de titre et de corps en utilisant les métadonnées de la page, les extraits, le texte intégral, le texte sélectionné et des espaces réservés pour la date.
  • Choisir l’apparence Système, Clair ou Sombre.
  • Modifier facultativement l’icône de la barre d’outils de Clip To Discourse par l’icône du site (favicon) du profil sélectionné, afin de savoir facilement vous capturez.
  • Ouvrir la fenêtre contextuelle avec Ctrl+Shift+K (Command+Shift+K sur macOS), configurable via chrome://extensions/shortcuts.

Limites

  • Le site Discourse doit activer les clés API Utilisateur et autoriser le groupe de votre compte à les utiliser. Si l’autorisation via l’API Utilisateur n’est pas disponible, un administrateur du site peut fournir une clé API unique avec des permissions granulaires.
  • Évidemment, si la fonctionnalité Clip To Discourse était activée pour trop d’utilisateurs, cela pourrait générer beaucoup de publications de faible qualité sur une instance Discourse partagée ou publique. Je vise donc principalement cette extension vers ceux d’entre vous qui, comme moi, utilisent Discourse comme carnet personnel.

Comment l’installer

  • Installez sur Chrome ou un autre navigateur basé sur Chromium compatible, version 127 ou ultérieure, via le Chrome Web Store : https://chromewebstore.google.com/detail/clip-to-discourse/copdhiejkkdblhdcdjapcoalldkondhi
  • Épinglez facultativement l’extension à la barre d’outils du navigateur.
  • Cliquez sur l’icône de l’extension, ouvrez Paramètres et entrez votre URL de base Discourse.
  • Sélectionnez API Utilisateur et cliquez sur Autoriser Clip To Discourse. Connectez-vous à votre compte Discourse, entrez le code d’appareil affiché si demandé, et approuvez l’accès.
  • Si l’autorisation via l’API Utilisateur n’est pas disponible, utilisez l’onglet Clé API Admin avec une clé API unique fournie par un administrateur. Évitez les clés API globales.
  • Choisissez votre style de capture par défaut, la destination, la catégorie ou l’ID du Sujet existant, et personnalisez facultativement les modèles.
  • Enregistrez les paramètres et testez facultativement la connexion.
  • Fermez les Paramètres et capturez du contenu pour tester !

Autorisation de Clip To Discourse

Capture vers Discourse

Feuille de route

  • Je ne prévois pas d’extension pour Firefox ou Safari (car je n’utilise pas ces navigateurs), mais je serais ravi qu’une personne s’occupe de la tâche de porter cette extension. Nous pourrions collaborer pour tout garder dans un seul dépôt et maintenir la parité des fonctionnalités.
  • Les ajouts possibles à l’avenir incluent les balises, des raccourcis clavier supplémentaires et des affinements supplémentaires du flux de travail de capture.

Discussions liées

Demande pour un outil essentiellement identique : Chrome/Firefox extension “Share to discourse” - #28 by supermathie

Un article lié, suggérant des fonctionnalités supplémentaires lors de la capture d’un Discourse : Need Web Clipper for Discourse Post

Social Share est un concept lié, mais utilise de simples URL : Social Share

Retours, Idées et Contributions

Ce sujet est un bon endroit pour déposer vos retours. Je suis ouvert aux idées d’amélioration tant qu’elles ne compliquent pas excessivement l’extension et/ou ne la rendent pas moins utile pour moi !

Si vous souhaitez ouvrir des tickets ou faire des PR, le dépôt GitHub est ici :

Cette extension est un outil gratuit, open source et axé sur la confidentialité, créé pour la communauté Discourse par mon entreprise Koloki.co

13 « J'aime »

Bravo pour cette extension :clap:

1 « J'aime »

Cela pourrait aussi être mon cas d’utilisation. Idéalement, lors de l’extraction vers un nouveau sujet, cela utiliserait le lien mis en avant, je l’utilise beaucoup (ignorer la mise en page personnalisée) :

Je serais également ravi si l’extraction importait le texte actuellement sélectionné sur la page, je ne sais pas si c’est possible.

J’imagine ceci : Je suis sur une page avec un texte intéressant. Je sélectionne le texte, j’extrais vers un nouveau sujet, et cela :

  • Met le lien de la page comme lien mis en avant
  • Définit le titre comme le titre de la page extraite
  • Définit le contenu HTML sélectionné comme corps du message

Édit : pour les deux premières étapes, l’excellente solution de david fonctionne très bien. Elle m’oblige à publier manuellement le sujet, mais pour mon usage, je pense que ça va :thinking:

1 « J'aime »

J’ai eu la même idée il y a longtemps, mais je n’ai réussi à la mettre en place qu’il y a une semaine.

Séparément de Discourse, la méthode que j’utilise personnellement depuis longtemps est l’extension de navigateur SingleFile. Elle enregistre le site que vous consultez actuellement sous forme de fichier HTML unique, en le préservant aussi fidèlement que possible à ce que vous voyez, afin que vous puissiez le lire hors ligne. D’innombrables fichiers HTML dorment dans mon dossier \~/Téléchargements.

Parce que les informations sur Internet n’y restent pas éternellement, la méthode la plus fiable est de sauvegarder ce que vous voyez actuellement sur votre propre ordinateur exactement tel quel.

J’ai déjà de nombreux fichiers HTML sauvegardés, et beaucoup d’autres seront ajoutés à l’avenir, j’ai donc réfléchi à une fonctionnalité qui me permettrait d’importer ces fichiers dans Discourse pour les visualiser et les gérer.

Si vous prévoyez d’ajouter une fonctionnalité pour « scraper » ou extraire du contenu de sites web, cela chevauchera beaucoup ce que l’extension SingleFile fait déjà bien.

Ce serait formidable s’il existait un moyen de s’intégrer directement à SingleFile ou d’importer des fichiers HTML.

2 « J'aime »

Merci d’avoir partagé l’extension SingleFile - c’est un excellent outil et un outil avec lequel je n’essaierais probablement pas trop de faire concurrence ou de chevaucher. J’ai aussi le même cas d’utilisation - vouloir simplement conserver une version fonctionnelle de la page dans un seul fichier HTML, j’ai donc également installé SingleFile. Je ne connaissais pas cette excellente extension !

Une fois que vous avez ‘Clipped To Discourse’, vous pourriez également télécharger ce fichier HTML en tant que pièce jointe au message. C’est ainsi que je l’utiliserais probablement, comme alternative à archive.org.

Pour les futures versions de Clip To Discourse, je pense que je me concentrerai sur :

  • La plage de texte sélectionnée par l’utilisateur à rogner comme Extrait
  • Le formatage Markdown amélioré de ce contenu d’Extrait

Quelques petites mises à jour de Clip To Discourse dans la version 0.19.2

  • Amélioration du découpage en « Page Complète » (utilise Mozilla Readability pour découper le texte de la page de manière plus précise et lisible).
  • Instauration d’une limite de 50 000 caractères pour le texte des publications (le corps du sujet Discourse ne peut pas dépasser 50k caractères, sinon il renvoie des erreurs)

Source : GitHub - koloki-co/clip-to-discourse-chromium-extension: A Chromium Browser extension which clips web content to your private Discourse. · GitHub
Chrome Web Store : https://chromewebstore.google.com/detail/copdhiejkkdblhdcdjapcoalldkondhi?utm_source=item-share-cb

1 « J'aime »

Mise à jour : v0.19.5 - Prise en charge de la sélection de texte

Nouvelle version de Clip To Discourse publiée

Quoi de neuf

  • Détection automatique de la sélection : lorsque vous avez du texte sélectionné sur une page, l’extension le détecte automatiquement et vous indique exactement ce qui sera copié (nombre de caractères et de mots)
  • Nouveau style de copie « Sélection de texte » : s’ajoute aux options existantes Titre+URL, Extrait et Texte intégral en tant que 4e style de copie
  • Sélection automatique intelligente : lorsque du texte est sélectionné, l’extension passe automatiquement en mode « Sélection de texte » afin que vous sachiez exactement ce que vous copiez
  • Menu contextuel Clic droit : Ajout d’un élément de menu contextuel simple « Clip to Discourse » qui ouvre la fenêtre contextuelle (fonctionne avec ou sans sélection)
  • Modèle personnalisable : Le modèle de sélection de texte peut être personnalisé dans les paramètres, tout comme les autres styles de copie

Cela permet de mettre en surbrillance une citation ou un passage très rapidement et de le copier directement sur votre Discourse avec le contexte approprié (titre de la page + URL + votre texte sélectionné).

Prochainement

Nous travaillons actuellement à l’implémentation du flux d’API utilisateur Discourse, ce qui permettra aux utilisateurs d’autoriser l’extension via OAuth sans avoir besoin qu’un administrateur crée des clés d’API. Cela rendra l’extension beaucoup plus facile à utiliser sur les instances Discourse partagées ou publiques !

1 « J'aime »

Mise à jour significative de l’ergonomie : Clip To Discourse prend désormais en charge l’API utilisateur de Discourse.

Cela signifie que les utilisateurs de Discourse n’ont plus besoin qu’un administrateur crée manuellement une clé API pour eux. Entrez votre URL Discourse, cliquez sur Autoriser Clip To Discourse, connectez-vous, saisissez le code d’appareil affiché si demandé, puis approuvez l’accès.

Le site doit toujours activer les clés API utilisateur à l’échelle du site (portées activées : read et write, et un groupe dont l’utilisateur est membre doit être autorisé à utiliser l’API utilisateur, mais une fois cela configuré, l’expérience d’intégration est considérablement plus simple pour les utilisateurs non administrateurs.

Les clés API à portée utilisateur fournies par l’administrateur restent disponibles en solution de repli pour les sites où l’autorisation de l’API utilisateur n’est pas disponible.

Clip To Discourse sur le Chrome Web Store