Collude - um 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 curtida

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

2 curtidas

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 curtida

Estou recebendo os seguintes erros ao usar o 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

e


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

Alguma sugestão?

Obrigado

Mesmo problema, acredito:

Detalhes

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 isso está quebrado no momento. Você está interessado em apoiar esse plugin a longo prazo ou está pensando em passá-lo adiante?

Também notei que não há um arquivo de licença. Isso deve ser MIT?

8 curtidas

Esse plugin de edição colaborativa parece muito legal. Ele se encaixaria perfeitamente na instância do Discourse que estou usando.
Há alguma novidade sobre isso? Alguém pretende trabalhar nele para fazê-lo funcionar novamente?
Obrigado.

4 curtidas

@sam, aqui está a licença MIT do projeto Github for Collude plugin. Obrigado por compartilhar, @fabien. Parece um plugin muito útil! Combinado com Babble Chat - #334 by jrgong, parece que isso poderia replicar totalmente a experiência do Etherpad dentro do Discourse com base nos níveis de confiança. Muito legal.

2 curtidas

Adoraria experimentar isso, mas acho que, como está marcado como “broken-plugin”, não adianta tentar agora… :frowning:

Há alguma atualização sobre qual é o problema com este plugin? Parece que ele ainda não está pronto para produção, mas seria útil entender o status do plugin.

No ano passado, houve alguma instabilidade nas edições, o que significava que um editor perdia as edições de outros editores, e não havia ninguém para depurar o problema. Desde então, a API de plugins do Discourse evoluiu um pouco, e o plugin foi abandonado. Talvez @gdpelican tenha mais informações e talvez a vontade de tentar novamente essa ideia incrível. Ter um bloco de notas incorporado, em tempo real, com múltiplos editores e estilo wiki, ainda seria ótimo.

Veja aqui:

8 de março de 2020:

9 de março de 2020:

3 curtidas

Certamente seria brilhante para nossos fóruns médicos, onde precisamos desenvolver colaborativamente diretrizes nacionais e afins — e o Google Docs é bloqueado por muitas organizações de saúde, então não podemos usá-lo.

Teria sido incrível tê-lo implementado e consolidado no início da loucura da COVID-19; seria uma grande atração.

3 curtidas

Temos um fork que @tshenry tem testado e que @mbcahyono tem trabalhado.

Estamos muito perto de torná-lo o novo collude e possivelmente torná-lo oficialmente suportado em nosso plano empresarial. É um problema bastante complexo e exige muitos testes para termos confiança nesse plugin.

10 curtidas

Outra opção que você pode usar para se virar, e que tenho usado pessoalmente, é https://hackmd.io — ela até gera Markdown no final, então você pode copiá-lo diretamente para o Discourse :grin:

2 curtidas

Isso parece muito legal — obrigado. Acho que está um pouco focado demais em geeks para minha equipe, que é menos familiarizada com TI; com certeza ficarei na expectativa ansiosa por esse plugin. Seria simplesmente incrível fazer isso nativamente no Discourse.

3 curtidas

Na verdade, o Librehosters fez um fork do GitHub - fuerst/embed-etherpad-lite: Embed Etherpad Lite pads into Discourse posts using Onebox. · GitHub para dar suporte ao CodiMD (o “fork da comunidade” do HackMD) — que está sendo renomeado novamente…

É muito simples de usar e você pode fazer um fork do librehosters / embed-codimd · GitLab para sua própria configuração. Seria útil ter uma configuração para o host do pad, mas isso exigiria mais trabalho. O Librehosters utiliza SAML SSO entre o CodiMD e o Discourse, para que apenas membros possam editar os pads.

4 curtidas

Lendo o plugin.rb, isso parece extremamente simples — você não poderia ter feito isso com uma entrada em allowed iframes + um gerador em algum lugar ou tags oEmbed?

3 curtidas

Sinceramente, não sei e nem tentei. Se você encontrar uma maneira de evitar o uso de um plugin para isso, à vontade e compartilhe! :slight_smile:

1 curtida

Dito isso, @riking, você me fez pensar. Como você procederia para criar ‘um gerador em algum lugar’?

Acho que é exagero reinstalar um plugin específico do Onebox para este e aquele site. Em vez disso, deveria ser possível usar componentes de tema que não exijam a reconstrução do contêiner. Alguém já trabalhou em um componente de tema do Onebox (genérico)?

A melhor opção seria, claro, que o projeto upstream corrigisse suas tags oEmbed de forma compatível, para que pudéssemos simplesmente colar o link.

1 curtida