Collude: un editor de texto colaborativo para 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 me gusta

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

2 Me gusta

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 me gusta

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 Me gusta

Ese complemento de edición colaborativa se ve realmente genial. Encajaría muy bien en la instancia de Discourse que estoy usando.
¿Hay alguna novedad al respecto? ¿Alguien tiene la intención de trabajar en él para que vuelva a funcionar?
Gracias.

4 Me gusta

@sam aquí está la licencia MIT del proyecto Github para Collude plugin. Gracias por compartir, @fabien. Parece un plugin muy útil. Combinado con Babble Chat - #334 by jrgong, parece que esto podría replicar completamente la experiencia de Etherpad dentro de Discourse basado en niveles de confianza. Muy genial.

2 Me gusta

Me habría encantado probarlo, pero supongo que, como está marcado como “broken-plugin”, no tiene sentido intentarlo por ahora.. :frowning:

¿Hay alguna actualización sobre cuál es el problema con este complemento? Parece que aún no está listo para producción, pero sería útil comprender el estado del complemento.

El año pasado hubo cierta inestabilidad en las ediciones, lo que significaba que un editor perdía los cambios de otros editores y no había nadie para depurar el problema. Desde entonces, la API de plugins de Discourse ha evolucionado un poco, por lo que el plugin fue abandonado. Quizás @gdpelican tenga más información y quizás también la voluntad de retomar esta idea genial. Tener un editor embebido en tiempo real, similar a una wiki y con múltiples editores, seguiría siendo excelente.

Vea aquí:

8 de marzo de 2020:

9 de marzo de 2020:

3 Me gusta

Sin duda sería excelente para nuestros foros médicos, donde necesitamos desarrollar de manera colaborativa las directrices nacionales y similares, y Google Docs está bloqueado por muchas organizaciones de salud, por lo que no podemos usarlo.

Habría sido increíble tenerlo implementado y consolidado al inicio del caos del COVID-19; sería un verdadero atractivo.

3 Me gusta

Tenemos un fork que @tshenry ha estado probando y sobre el que @mbcahyono ha estado trabajando.

Estamos bastante cerca de convertirlo en el nuevo Collude y de posiblemente ofrecerlo como soporte oficial en nuestro plan empresarial. Se trata de un problema bastante complejo y requiere muchas pruebas para sentirnos seguros con este plugin.

10 Me gusta

Otra opción que puedes usar para salir del paso, y que he estado usando personalmente, es https://hackmd.io. Incluso genera Markdown al final, así que puedes copiarlo directamente a Discourse :grin:

2 Me gusta

¡Eso se ve realmente genial, gracias! Creo que está un poco demasiado enfocado en los expertos para mi equipo, que tiene menos conocimientos de TI; definitivamente esperaré con gran expectación este complemento. Sería simplemente increíble poder hacer esto de forma nativa en Discourse.

3 Me gusta

De hecho, Librehosters hizo un fork de GitHub - fuerst/embed-etherpad-lite: Embed Etherpad Lite pads into Discourse posts using Onebox. · GitHub para dar soporte a CodiMD (la «bifurcación comunitaria» de HackMD), que está siendo renombrada nuevamente…

Es muy sencillo de usar y puedes hacer un fork de librehosters / embed-codimd · GitLab para tu propia instalación. Sería útil tener una configuración para el host del pad en su lugar, pero eso implicaría más trabajo. Librehosters utiliza SAML SSO entre CodiMD y Discourse, de modo que solo los miembros pueden editar los pads.

4 Me gusta

Al leer plugin.rb, esto parece extremadamente sencillo: ¿no podrías haber logrado eso con una entrada en allowed iframes + un generador en algún lugar o etiquetas oEmbed?

3 Me gusta

Honestamente, no lo sé y no lo he intentado. Si encuentras una forma de evitar usar un plugin para esto, ¡adelante y compártelo! :slight_smile:

1 me gusta

Dicho esto, @riking, me has hecho pensar. ¿Cómo procederías para crear “un generador en algún lugar”?

Creo que es excesivo reinstalar un plugin específico de onebox para este sitio en particular. En su lugar, debería ser posible utilizar componentes de tema que no requieran reconstruir el contenedor. ¿Alguien ha trabajado ya en un componente de tema onebox (genérico)?

Por supuesto, la mejor opción sería que los responsables de la versión principal (upstream) corrigieran sus etiquetas oEmbed de manera compatible, para que simplemente podamos pegar el enlace.

1 me gusta