Collude - a collaborative text editor for 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

같은 문제인 것 같습니다:

상세 정보

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 현재 이 부분이 깨져 있습니다. 장기적으로 지원할 플러그인인지, 아니면 넘겨줄 계획인지 궁금합니다.

또한 라이선스 파일이 없는데, MIT 라이선스로 배포할 예정인가요?

8개의 좋아요

그 협업 편집 플러그인이 정말 멋있어 보이네요. 제가 사용하는 디스커스 인스턴스에 아주 잘 어울릴 것 같아요.
관련해서 새로운 소식이 있나요? 다시 작동하도록 작업을 진행할 의사가 있는 사람이 있을까요?
감사합니다.

4개의 좋아요

@sam 여기는 Github for Collude 플러그인 프로젝트의 MIT 라이선스입니다. 공유해 주셔서 감사합니다, @fabien. 매우 유용한 플러그인인 것 같습니다. Babble Chat - #334 by jrgong 과 결합하면, 신뢰 수준에 기반하여 Discourse 내에서 etherpad의 경험을 완전히 재현할 수 있을 것 같습니다. 정말 멋집니다.

2개의 좋아요

이걸 한번 해보고 싶었는데, 'broken-plugin’으로 표시되어 있으니 지금은 시도해볼 가치가 없는 것 같네요.. :frowning:

이 플러그인의 문제가 무엇인지에 대한 업데이트가 있나요? 프로덕션 환경에 아직 준비가 되지 않은 것으로 보이지만, 플러그인의 상태를 파악하는 데 도움이 될 것 같습니다.

지난해 편집 과정에서 불안정성이 있었는데, 이는 한 편집자가 다른 편집자들의 편집 내용을 잃어버리는 상황이 발생했고, 문제를 디버깅할 사람이 없었기 때문입니다. 그 이후 Discourse 플러그인 API가 조금 변경되면서 해당 플러그인은 방치되었습니다. 아마 @gdpelican 님이 더 많은 정보를 가지고 계실 수도 있고, 이 훌륭한 아이디어에 대해 두 번째 시도를 해볼 의지도 있으실지 모릅니다. 실시간으로 여러 사람이 함께 편집할 수 있는 위키형 내장 패드를 가질 수 있다면 여전히 멋진 일이 될 것입니다.

여기 확인해 보세요:

2020년 3월 8일:

2020년 3월 9일:

3개의 좋아요

국가 지침 등을 공동으로 개발해야 하는 우리의 의료 포럼에는 정말 훌륭할 것입니다. 구글 독스는 많은 의료 기관에서 차단되어 있어 사용할 수 없거든요.

코로나19 대혼란 초기에 이 기능이 이미 구축되어 있었다면 정말 좋았을 것입니다. 사용자를 끌어들이는 강력한 매력이 될 것입니다.

3개의 좋아요

@tshenry가 테스트해 온 포크가 있습니다. 이 포크는 @mbcahyono가 개발해 왔습니다.

이 포크가 새로운 collude로 전환되고, 엔터프라이즈 티어에서 공식적으로 지원되는 것이 가능해질 때까지 꽤 근접해 있습니다. 이는 상당히 복잡한 문제이며, 이 플러그인에 대해 확신을 가질 만큼 많은 테스트가 필요합니다.

10개의 좋아요

개인적으로 임시 대안으로 사용해 온 또 다른 옵션은 https://hackmd.io 입니다. 최종적으로 Markdown 형식으로 내보낼 수 있어서 Discourse에 바로 복사해서 붙여넣을 수 있습니다 :grin:

2개의 좋아요

정말 멋진 것 같습니다. 감사합니다. 다만 제 팀원들 중 IT에 익숙하지 않은 분들이 있어, 이 정도는 좀 너무 전문적인 느낌이에요. 이 플러그인을 정말 손꼽아 기다리고 있습니다. Discourse에서 네이티브로 이런 기능을 사용할 수 있다면 정말 최고일 텐데요.

3개의 좋아요

사실 Librehosters는 CodiMD(HackMD의 “커뮤니티 포크”)를 지원하기 위해 GitHub - fuerst/embed-etherpad-lite: Embed Etherpad Lite pads into Discourse posts using Onebox. · GitHub 를 포크했습니다 – 그리고 CodiMD는 다시 이름이 바뀌는 중입니다…

사용이 매우 간단하며, 자체 설정을 위해 https://lab.libreho.st/librehosters/embed-codimd 를 포크할 수 있습니다. 대신 패드 호스트를 설정할 수 있는 옵션이 있으면 유용할 것 같지만, 더 많은 작업이 필요합니다. Librehosters는 CodiMD와 Discourse 사이에 SAML SSO를 사용하므로, 회원만 패드를 편집할 수 있습니다.

4개의 좋아요

plugin.rb를 읽어보니 매우 단순해 보이는데, allowed iframes 항목에 추가하고 어딘가에 생성기를 배치하거나 oEmbed 태그를 사용하는 방식으로 구현할 수는 없었나요?

3개의 좋아요

솔직히 나는 잘 모르겠고 시도도 해본 적이 없습니다. 플러그인 없이 이 문제를 해결할 방법을 찾으신다면, 공유해 주세요! :slight_smile:

1개의 좋아요

그렇다고 해서 @riking, 당신은 내게 생각할 거리를 주셨습니다. "어딘가의 생성기"를 어떻게 만들어 보시겠습니까?

이것저것 사이트를 위해 특정 onebox 플러그인을 다시 설치하는 것은 과하다고 생각합니다. 대신 컨테이너를 다시 빌드할 필요가 없는 테마 컴포넌트를 사용할 수 있도록 해야 합니다. 이미 (범용) onebox 테마 컴포넌트에 대해 작업하신 분이 계신가요?

가장 좋은 옵션은 물론, 업스트림이 oEmbed 태그를 호환되는 방식으로 수정하여 우리가 단순히 링크를 붙여넣을 수 있도록 하는 것입니다.

1개의 좋아요