تواطؤ - محرر نصوص تعاوني لـ Discourse

Cool, it seems to be working alright on that instance with a cursory test; yes I’ve pushed the changes to the plugin repo. :slight_smile:

If you encounter an issue with the text disappearing again, would you mind PMing me the output of the following command in the rails console?

Topic.find(<topic_id>).posts.first.collusions
إعجاب واحد (1)

I rebuilt the container and now all instances in the Multisite setup have a working Collude!
Kudos @gdpelican.

إعجابَين (2)

Somehow something is wrong. I started to edit, then another person came to see the topic, and the machine load started to run through the roof: all editing was lost. I cannot debug now, probably better next month as I’m rushing towards a hard deadline, but I’d appreciate other reports (of success or failure) with this plugin since I really like the principle. Otherwise I will have to consider running an external CodiMD instance which is also great.

إعجاب واحد (1)

I get the below errors when using collude:

Recent
Message

Uncaught TypeError: Cannot read property 'get' of undefined
Url: http://mercury/assets/plugin-third-party-5d2db6ac05f499c3b3bf48f1732b98542795b2cfffccd977a712385207df13c9.js
Line: 11
Column: 24050
Window Location: http://mercury/t/integralas-a-masterre-rfc/149/6

Backtrace

TypeError: Cannot read property 'get' of undefined
    at i.disabledFor (http://mercury/assets/plugin-third-party-5d2db6ac05f499c3b3bf48f1732b98542795b2cfffccd977a712385207df13c9.js:11:24050)
    at http://mercury/assets/plugin-third-party-5d2db6ac05f499c3b3bf48f1732b98542795b2cfffccd977a712385207df13c9.js:11:24958
    at http://mercury/assets/application-854cd242b33a3d81896cdc71e1e8b74d7af66cb0eb20c47894a900f5854ad957.js:74:1148
    at Array.map (<anonymous>)
    at c (http://mercury/assets/application-854cd242b33a3d81896cdc71e1e8b74d7af66cb0eb20c47894a900f5854ad957.js:74:1125)
    at t.html (http://mercury/assets/application-854cd242b33a3d81896cdc71e1e8b74d7af66cb0eb20c47894a900f5854ad957.js:72:14939)
    at t.m [as draw] (http://mercury/assets/application-854cd242b33a3d81896cdc71e1e8b74d7af66cb0eb20c47894a900f5854ad957.js:74:2198)
    at t.value (http://mercury/assets/application-854cd242b33a3d81896cdc71e1e8b74d7af66cb0eb20c47894a900f5854ad957.js:74:5263)
    at i (http://mercury/assets/vendor-25f91d66eba869fbd399d751711e74544b6d60bf034a5350b61c6c12caad0e2a.js:5:16906)
    at r (http://mercury/assets/vendor-25f91d66eba869fbd399d751711e74544b6d60bf034a5350b61c6c12caad0e2a.js:5:16819)

Env
hostname	mercury-discourse
process_id	9576
application_version	6fec4982d903cbb088f95b5dcae7b67f52a90e99
HTTP_HOST	mercury
REQUEST_URI	/logs/report_js_error
REQUEST_METHOD	POST
HTTP_USER_AGENT	Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36
HTTP_ACCEPT	*/*
HTTP_REFERER	http://mercury/t/integralas-a-masterre-rfc/149/6
HTTP_X_FORWARDED_FOR	192.168.2.234
HTTP_X_REAL_IP	192.168.2.234
	
params	
message	Uncaught TypeError: Cannot read property 'get' of undefined Url: http://mercury/assets/plugin-third-p
url	http://mercury/assets/plugin-third-party-5d2db6ac05f499c3b3bf48f1732b98542795b2cfffccd977a712385207df
line	11
column	24050
window_location	http://mercury/t/integralas-a-masterre-rfc/149/6
stacktrace	TypeError: Cannot read property 'get' of undefined at i.disabledFor (http://mercury/assets/plugin

and


Recent
Message

TypeError: t is undefined
Url: http://mercury/assets/plugin-third-party-5d2db6ac05f499c3b3bf48f1732b98542795b2cfffccd977a712385207df13c9.js
Line: 11
Column: 24021
Window Location: http://mercury/t/egyseges-lehetoleg-cegesen-egyseges-gitlab-workflow/177

Backtrace

disabledFor@http://mercury/assets/plugin-third-party-5d2db6ac05f499c3b3bf48f1732b98542795b2cfffccd977a712385207df13c9.js:11:24021
s/<@http://mercury/assets/plugin-third-party-5d2db6ac05f499c3b3bf48f1732b98542795b2cfffccd977a712385207df13c9.js:11:24958
c/<@http://mercury/assets/application-854cd242b33a3d81896cdc71e1e8b74d7af66cb0eb20c47894a900f5854ad957.js:74:1148
c@http://mercury/assets/application-854cd242b33a3d81896cdc71e1e8b74d7af66cb0eb20c47894a900f5854ad957.js:74:1125
html@http://mercury/assets/application-854cd242b33a3d81896cdc71e1e8b74d7af66cb0eb20c47894a900f5854ad957.js:72:14939
m@http://mercury/assets/application-854cd242b33a3d81896cdc71e1e8b74d7af66cb0eb20c47894a900f5854ad957.js:74:2198
value@http://mercury/assets/application-854cd242b33a3d81896cdc71e1e8b74d7af66cb0eb20c47894a900f5854ad957.js:74:5263
i@http://mercury/assets/vendor-25f91d66eba869fbd399d751711e74544b6d60bf034a5350b61c6c12caad0e2a.js:5:16906
r@http://mercury/assets/vendor-25f91d66eba869fbd399d751711e74544b6d60bf034a5350b61c6c12caad0e2a.js:5:16836
r@http://mercury/assets/vendor-25f91d66eba869fbd399d751711e74544b6d60bf034a5350b61c6c12caad0e2a.js:5:10297
r@http://mercury/assets/vendor-25f91d66eba869fbd399d751711e74544b6d60bf034a5350b61c6c12caad0e2a.js:5:10595
r@http://mercury/assets/vendor-25f91d66eba869fbd399d751711e74544b6d60bf034a5350b61c6c12caad0e2a.js:5:10595
r@http://mercury/assets/vendor-25f91d66eba869fbd399d751711e74544b6d60bf034a5350b61c6c12caad0e2a.js:5:10595
r@http://mercury/assets/vendor-25f91d66eba869fbd399d751711e74544b6d60bf034a5350b61c6c12caad0e2a.js:5:10595
o@http://mercury/assets/vendor-25f91d66eba869fbd399d751711e74544b6d60bf034a5350b61c6c12caad0e2a.js:5:11969
r@http://mercury/assets/vendor-25f91d66eba869fbd399d751711e74544b6d60bf034a5350b61c6c12caad0e2a.js:5:11637
o@http://mercury/assets/vendor-25f91d66eba869fbd399d751711e74544b6d60bf034a5350b61c6c12caad0e2a.js:5:13452
i@http://mercury/assets/vendor-25f91d66eba869fbd399d751711e74544b6d60bf034a5350b61c6c12caad0e2a.js:5:13316
r@http://mercury/assets/vendor-25f91d66eba869fbd399d751711e74544b6d60bf034a5350b61c6c12caad0e2a.js:5:11837
o@http://mercury/assets/vendor-25f91d66eba869fbd399d751711e74544b6d60bf034a5350b61c6c12caad0e2a.js:5:13452
i@http://mercury/assets/vendor-25f91d66eba869fbd399d751711e74544b6d60bf034a5350b61c6c12caad0e2a.js:5:13316
r@http://mercury/assets/vendor-25f91d66eba869fbd399d751711e74544b6d60bf034a5350b61c6c12caad0e2a.js:5:13139
rerenderWidget@http://mercury/assets/application-854cd242b33a3d81896cdc71e1e8b74d7af66cb0eb20c47894a900f5854ad957.js:33:8368
g</t.invoke@http://mercury/assets/ember_jquery-0ae86c6a7527a99c2b9b8a11521273bd9cb4f7d41bc546df081b7ee94f26d9c3.js:16:6927
g</t.flush@http://mercury/assets/ember_jquery-0ae86c6a7527a99c2b9b8a11521273bd9cb4f7d41bc546df081b7ee94f26d9c3.js:16:5930
y</t.flush@http://mercury/assets/ember_jquery-0ae86c6a7527a99c2b9b8a11521273bd9cb4f7d41bc546df081b7ee94f26d9c3.js:16:7980
z</r._end@http://mercury/assets/ember_jquery-0ae86c6a7527a99c2b9b8a11521273bd9cb4f7d41bc546df081b7ee94f26d9c3.js:16:12654
z</r.end@http://mercury/assets/ember_jquery-0ae86c6a7527a99c2b9b8a11521273bd9cb4f7d41bc546df081b7ee94f26d9c3.js:16:9317
z</r._run@http://mercury/assets/ember_jquery-0ae86c6a7527a99c2b9b8a11521273bd9cb4f7d41bc546df081b7ee94f26d9c3.js:16:13143
z</r.run@http://mercury/assets/ember_jquery-0ae86c6a7527a99c2b9b8a11521273bd9cb4f7d41bc546df081b7ee94f26d9c3.js:16:9925
l@http://mercury/assets/ember_jquery-0ae86c6a7527a99c2b9b8a11521273bd9cb4f7d41bc546df081b7ee94f26d9c3.js:12:447
bootbox</c.dialog/<@http://mercury/assets/vendor-25f91d66eba869fbd399d751711e74544b6d60bf034a5350b61c6c12caad0e2a.js:2:515
dispatch@http://mercury/assets/ember_jquery-0ae86c6a7527a99c2b9b8a11521273bd9cb4f7d41bc546df081b7ee94f26d9c3.js:2:19650
add/v.handle@http://mercury/assets/ember_jquery-0ae86c6a7527a99c2b9b8a11521273bd9cb4f7d41bc546df081b7ee94f26d9c3.js:2:17641

Env
hostname	mercury-discourse
process_id	9547
application_version	6fec4982d903cbb088f95b5dcae7b67f52a90e99
HTTP_HOST	mercury
REQUEST_URI	/logs/report_js_error
REQUEST_METHOD	POST
HTTP_USER_AGENT	Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:67.0) Gecko/20100101 Firefox/67.0
HTTP_ACCEPT	*/*
HTTP_REFERER	http://mercury/t/egyseges-lehetoleg-cegesen-egyseges-gitlab-workflow/177
HTTP_X_FORWARDED_FOR	192.168.2.206
HTTP_X_REAL_IP	192.168.2.206
	
params	
message	TypeError: t is undefined Url: http://mercury/assets/plugin-third-party-5d2db6ac05f499c3b3bf48f1732b9
url	http://mercury/assets/plugin-third-party-5d2db6ac05f499c3b3bf48f1732b98542795b2cfffccd977a712385207df
line	11
column	24021
window_location	http://mercury/t/egyseges-lehetoleg-cegesen-egyseges-gitlab-workflow/177
stacktrace	disabledFor@http://mercury/assets/plugin-third-party-5d2db6ac05f499c3b3bf48f1732b98542795b2cfffccd977

Any advice?

Thanks

Same issue, I think:

Details

Uncaught (in promise) TypeError: _.contains is not a function
at t.menuItems (_collude-8cf680b8d5b8b353d07c7a93fc15aa0adf31757fcafde3c597cc540ffb076eb2.js:87)
at t.n. [as menuItems] (_application-f091afbd42ff5aa3c8221ab59e2618145b4275299b034c729a5f616d84fb4852.js:75808)
at t.html (_application-f091afbd42ff5aa3c8221ab59e2618145b4275299b034c729a5f616d84fb4852.js:71464)
at t.value (_application-f091afbd42ff5aa3c8221ab59e2618145b4275299b034c729a5f616d84fb4852.js:76137)
at t.value (_application-f091afbd42ff5aa3c8221ab59e2618145b4275299b034c729a5f616d84fb4852.js:75910)
at i (_vendor-fae393575cd14697b31e9fdbeb8c016d165a8a3af765ec8ca719a454585aedf4.js:18308)
at r (_vendor-fae393575cd14697b31e9fdbeb8c016d165a8a3af765ec8ca719a454585aedf4.js:18291)
at u (_vendor-fae393575cd14697b31e9fdbeb8c016d165a8a3af765ec8ca719a454585aedf4.js:18695)
at i (_vendor-fae393575cd14697b31e9fdbeb8c016d165a8a3af765ec8ca719a454585aedf4.js:18563)
at o (_vendor-fae393575cd14697b31e9fdbeb8c016d165a8a3af765ec8ca719a454585aedf4.js:18639)

@gdpelican this is broken at the moment, is it a plugin you are interested in supporting long term or are you looking to hand it over?

Also noticed there is no license file, is this intended to be MIT?

8 إعجابات

يبدو أن إضافة النسخة التعاونية رائعة حقًا. ستكون مناسبة جدًا لمنصة Discourse التي أستخدمها.
هل هناك أي أخبار عنها؟ هل يخطط أي شخص للعمل عليها لجعلها تعمل مرة أخرى؟
شكرًا لك.

4 إعجابات

@sam إليك رخصة MIT من مشروع Github for Collude كإضافة. شكرًا لك على المشاركة يا @fabien. يبدو أن هذه إضافة مفيدة جدًا! عند دمجها مع Babble Chat - #334 by jrgong يبدو أن هذا يمكنه تكرار تجربة Etherpad بالكامل داخل Discourse بناءً على مستويات الثقة. رائع جدًا.

إعجابَين (2)

كان من الممتع تجربتها، لكني أظن أنه لا فائدة من المحاولة الآن نظرًا لوضعها كـ “إضافة معطلة”.. :frowning:

هل هناك تحديث بشأن المشكلة التي تواجهها هذه الإضافة؟ يبدو أنها غير جاهزة للاستخدام في بيئة الإنتاج، لكن سيكون من المفيد فهم حالة الإضافة.

في العام الماضي، كانت هناك بعض عدم الاستقرار في التعديلات، مما يعني أن محررًا واحدًا قد يفقد تعديلات المحررين الآخرين، ولم يكن هناك شخص لتصحيح المشكلة. ومنذ ذلك الحين، تطورت واجهة برمجة التطبيقات (API) لإضافة Discourse قليلًا، لذا تم التخلي عن الإضافة. ربما يكون لدى @gdpelican مزيد من المعلومات، وربما يكون لديه الرغبة في إعادة تجربة هذه الفكرة الرائعة. لا يزال من الرائع وجود لوحة مدمجة تشبه الويكي، متعددة المحررين، وفي الوقت الفعلي.

انظر هنا:

8 مارس 2020:

9 مارس 2020:

3 إعجابات

سيكون ذلك بالتأكيد رائعًا لمناقشاتنا الطبية، حيث نحتاج إلى تطوير المبادئ التوجيهية الوطنية وما شابهها بشكل تعاوني - وقد تم حظر مستندات جوجل من قبل العديد من المؤسسات الصحية، لذا لا يمكننا استخدامها.

كان سيكون رائعًا لو تم تفعيله وتثبيته في بداية جنون كوفيد-19؛ لكان ذلك عامل جذب حقيقي.

3 إعجابات

لدينا نسخة مشتقة (fork) اختبرها @tshenry ويعمل عليها @mbcahyono.

نحن قريبون جدًا من جعلها بديلًا لـ collude الجديد، وربما نجعلها مدعومة رسميًا في خطتنا الخاصة بالمؤسسات. إنها مشكلة معقدة إلى حد ما وتتطلب الكثير من الاختبارات لنشعر بالثقة تجاه هذه الإضافة.

10 إعجابات

خيار آخر يمكنك استخدامه لاجتياز هذه الفترة وهو ما أستخدمه شخصيًا هو https://hackmd.io - بل إنه يُنتج تنسيق Markdown في النهاية، لذا يمكنك نسخه مباشرة إلى Discourse :grin:

إعجابَين (2)

يبدو ذلك رائعًا حقًا - شكرًا لك. أعتقد أنه يركز كثيرًا على الجانب التقني لفريقنا الأقل خبرة في مجال تكنولوجيا المعلومات؛ سأنتظر بفارغ الصبر هذا الإضافة. سيكون أمرًا مذهلًا إذا تم تنفيذ ذلك بشكل أصلي في Discourse.

3 إعجابات

في الواقع، قام مشروع Librehosters بتفرع المستودع GitHub - fuerst/embed-etherpad-lite: Embed Etherpad Lite pads into Discourse posts using Onebox. · GitHub لدعم CodiMD (وهو “التفرع المجتمعي” لـ HackMD) — والذي يُعاد تسميته مرة أخرى…

استخدامه بسيط للغاية، ويمكنك تفرع librehosters / embed-codimd · GitLab لإعدادك الخاص. سيكون من المفيد وجود إعداد خاص بمضيف اللوحة بدلاً من ذلك، لكن ذلك يتطلب جهدًا أكبر. يستخدم Librehosters مصادقة SAML SSO بين CodiMD وDiscourse، بحيث يمكن لأعضاء المشروع فقط تحرير اللوحات.

4 إعجابات

عند قراءة ملف plugin.rb، يبدو الأمر بسيطًا للغاية - أليس بإمكانك تحقيق ذلك من خلال إدخال في allowed iframes بالإضافة إلى مولّد في مكان ما أو وسوم oEmbed؟

3 إعجابات

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

إعجاب واحد (1)

ومع ذلك، @riking، لقد جعلتني أفكر. كيف يمكنك إنشاء “مولّد في مكان ما”؟

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

وبالطبع، فإن الخيار الأفضل هو أن يقوم المطورون الأساسيون بإصلاح وسوم oEmbed الخاصة بهم بطريقة متوافقة، بحيث يمكننا ببساطة لصق الرابط.

إعجاب واحد (1)