إضافة Chrome "Clip To Discourse"

عزيزي مجتمع Discourse، إليكم هديتي الصغيرة لكم بمناسبة عيد الميلاد :wrapped_gift: :christmas_tree:. إنها بسيطة ولكنها مفيدة، وقد تم بناؤها فقط لأنني أردتها.

مستوحى من مدونة سايمون ويليسون الرائعة حول استخدام النماذج اللغوية الكبيرة (LLMs) للتطوير، قمت ببرمجة هذا الشيء خلال عيد الميلاد، بين الفعاليات الاجتماعية ومشاهدة الأفلام وتغليف الهدايا! لم أكتب أي من الأكواد، ولكني راجعت الكود وأشرفت على النموذج اللغوي الكبير. تم توجيه كل شيء من spec.md و roadmap.md.

ما الغرض منه؟

أستخدم نسخة مستضافة ذاتيًا وشخصية من Discourse كـ دفتر ملاحظات و يوميات ومدونة وسيرة ذاتية وويكي وأداة ذكاء اصطناعي وقاعدة معرفية للمطورين. في كثير من الأحيان أجد نفسي أرغب في “قص” محتوى من الويب (عنوان الصفحة + رابط URL) وإسقاطه مباشرة في Discourse الخاص بي، حيث يمكنني دمجه في ملاحظة أو إدخال يوميات.

احتياجاتي بسيطة، لذا فإن هذا بسيط إلى حد ما، فهو ينشر فقط عنوان الصفحة ورابط URL، على الرغم من أنني أود في المستقبل إضافة خيارات “تضمين مقتطف الصفحة” و “قص الصفحة بأكملها”.

الخصوصية

  • لا يجمع أي بيانات على الإطلاق عنك أو عن المحتوى الخاص بك.
  • يتم إرسال جميع البيانات مباشرة إلى مثيل Discourse الخاص بك من متصفحك.
  • لا توجد خوادم تابعة لجهات خارجية متورطة.
  • مفتوح المصدر. مستودع GitHub: https://github.com/koloki-co/clip-to-discourse-chromium-extension

الميزات

  • يقص عنوان الصفحة ورابط URL. يتم تنفيذ “مقتطف الصفحة” أو “نص الصفحة بالكامل” الاختياري ولكنه غير متطور بعض الشيء (ومع ذلك، يمكن لـ Discourse AI الخاص بك تلخيصه لاحقًا على مثيل Discourse الخاص بك؟..)
  • إنشاء مواضيع جديدة مع كل قصة، أو إلحاق القصص كردود على موضوع موجود.
  • يدعم ملفات تعريف متعددة، مما يسمح لك بتخزين مفاتيح API متعددة، ومثيلات Discourse الوجهة، والإعدادات الافتراضية - لحالات استخدام مختلفة.
  • سيتغير رمز Clip To Discourse تلقائيًا ليعكس أيقونة الموقع الخاصة بالملف الشخصي المحدد حاليًا، حتى تتمكن من معرفة إلى أين تقوم بالقص!

القيود

  • القيد الرئيسي هو أن المسؤول يحتاج إلى إنشاء مفتاح API على مستوى المستخدم لك، على مثيل Discourse الذي تقوم بالقص إليه. بالنسبة لي، هذا ليس مشكلة لأنني المسؤول الرئيسي على جميع مثيلات Discourse التي أنوي استخدام هذه الأداة من أجلها.

  • من الواضح أنه إذا تم تمكين قدرة Clip To Discourse للعديد من المستخدمين، فقد ينتج عن ذلك الكثير من النشر منخفض الجودة، على مثيل Discourse مشترك أو عام. لذا، أهدف بشكل أساسي بهذا الامتداد إلى أولئك منكم الذين يستخدمون Discourse، مثلي، كمفكرة شخصية.

كيفية التثبيت

  • قم بالتثبيت على أي متصفح قائم على Chromium (Chrome أو Edge أو Brave، إلخ) عبر الرابط إلى متجر Chrome الإلكتروني https://chromewebstore.google.com/detail/clip-to-discourse/copdhiejkkdblhdcdjapcoalldkondhi

  • (اختياري ولكن موصى به) “تثبيت” الامتداد على شريط أدوات المتصفح.

  • أنشئ مفتاح API للمستخدم الفردي بنطاقات دقيقة كما يلي: المواضيع: read (يستخدم فقط لاختبار الاتصال)، write، و update

  • حدد الفئة التي تريد أن تذهب إليها القصص. إذا كنت تريد أن تكون كل قصة موضوعًا جديدًا، فأنت تحتاج فقط إلى معرف الفئة. عند عرض الفئة، يكون هذا المعرف في عنوان URL هكذا: https://discourse.yourdomain.com/c/CategoryName/CategoryID)

  • يمكنك أيضًا تعيين موضوع للرد عليه، وسيتم إلحاق جميع القصص كردود جديدة على هذا الموضوع. للحصول على معرف الموضوع، تحصل عليه أيضًا من عنوان URL: عند عرض الموضوع، يكون معرف الموضوع في عنوان URL هكذا: https://discourse.yourdomain.com/t/TopicTitle/TopicID)

  • انقر على أيقونة الامتداد للحصول على النافذة المنبثقة، وانتقل إلى الإعدادات لتكوين مفتاح API وتعيين الإعدادات الافتراضية الخاصة بك. لاحظ أنه يمكنك الحصول على “ملفات تعريف” متعددة لمختلف مثيلات Discourse التي قد ترغب في استخدامها.

  • احفظ الإعدادات و (اختياريًا) اختبر الاتصال، والذي سيقرأ موضوعًا واحدًا للتأكد من عمل اتصال واجهة برمجة التطبيقات (API).

  • أغلق الإعدادات واقصص الأشياء للاختبار!

الصور

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

خارطة الطريق

  • قد يحتاج “تضمين مقتطف الصفحة” و “قص الصفحة بأكملها” إلى بعض الاختبار والتنقيح. بدلاً من ذلك، يمكن أن تسمح هذه الميزة للمستخدم بتحديد منطقة النص المراد قصها كمقتطف.

  • لا أخطط لإنشاء امتداد لـ Firefox أو Safari (لأنني لا أستخدم تلك المتصفحات) ولكني سأكون سعيدًا إذا تولى شخص ما مهمة نقل هذا الامتداد. يمكننا التعاون للاحتفاظ بكل شيء في مستودع واحد والحفاظ على تكافؤ الميزات.

  • قد أفكر في تنفيذ تدفق مفاتيح API للمستخدم في Discourse، بحيث لا يضطر المسؤولون إلى إنشاء مفاتيح 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

التعليقات والأفكار والمساهمة

هذا الموضوع هو مكان جيد جدًا لوضع أي تعليقات لديك. أنا منفتح على الأفكار لتحسينات طالما أنها لا تزيد من تعقيد الامتداد و/أو تجعله أقل فائدة بالنسبة لي!

إذا كنت ترغب في فتح مشاكل أو إنشاء طلبات سحب (PRs)، فإن مستودع GitHub موجود هنا:

هذا الامتداد هو أداة مجانية ومفتوحة المصدر وتضع الخصوصية أولاً، تم إنشاؤها لمجتمع Discourse بواسطة شركتي Koloki.co

5 إعجابات

أحسنت على هذا التوسيع :clap: