Discourse Retort

@Hifihedgehog 님의 스폰서십과 커뮤니티에 큰 감사를 드립니다 :pray:

https://forum.tabletpc.review/

이제 다시 호환성이 확보되어 3.2 버전에서 더 이상 깨지지 않습니다.

참고: The Team과 Sam에 따르면, Reactions 플러그인이 향후 이 플러그인의 추가 기능(주요하게는 여러 개의 리액션 기능)을 채택할 예정이며, 이는 (아직 확인되지는 않았지만) 마이그레이션 도구 제공을 포함할 것으로 기대됩니다.

9개의 좋아요

문제가 있는 것 같네요 :sweat_smile: - 확인해 보겠습니다.

3개의 좋아요

수정 사항이 병합되었습니다:

8개의 좋아요

관심 있는 분들을 위해, SJTU Shuiyuan 커뮤니티 스태프가 유지 관리하는 이 포크도 작동합니다. (:warning: 이 버전을 설치하면 메인 저장소에서 사용하던 데이터가 삭제되니 주의하세요. :warning: 자세한 내용은 아래 @merefield의 게시물을 참조하세요)

왜 PR이 없었나요?

또한 이 포크에는 다음 항목들이 없습니다:

  • 프론트엔드 테스트
  • 정상 작동하는 백엔드 테스트
  • GitHub 워크플로
  • 최신 린팅 설정

이들은 이제 메인 저장소에서 구현되어 있습니다 :+1:

:warning: 이 버전을 설치하면 메인 저장소에서 사용하던 데이터가 손상됩니다 :warning:

README에서 이에 대한 경고가 보이지 않습니다.

따라서 히스토리가 없는 새 인스턴스에서 실행하거나, 미래에 저자가 프로젝트를 유지보수할 의사가 있는 경우를 제외하고는 그 포크를 시도해 보라고 추천할 수 없습니다 …

3개의 좋아요

아마도 그들은 오픈소스에 완전히 열려 있지 않거나, 단순히 게을러서 그런 것일까요? :sweat_smile:

음 … 상당한 노력이 투입된 것은 분명하지만, 이 작업을 커뮤니티와 적극적으로 소통하고 공유하지 않는 것은 이상적입니다. 그 이유는 일정 수준의 중복을 초래할 뿐만 아니라, 이 경우 주 저장소에서 사용되는 데이터를 파괴하기 때문입니다. 그 사실만으로도 PR을 통해 접근 방식을 검토하고 포크 간에 조화를 이룰 수 있도록 해야 할 충분한 이유가 되었을 것입니다. 이제 이 포크들은 호환되지 않으며, 이 포크를 설치하면 되돌릴 수 없습니다! :man_facepalming:

11개의 좋아요

이 플러그인을 몇 년째 사용해 왔습니다.

문제를 망친 변경 사항이 있었는데, 반박(retort)을 게시글 제어 버튼과 같은 줄로 이동시켰습니다. 이로 인해 모바일에서는 완전히 망가졌습니다. 이 게시글 Discourse Retort - #383 by Vaping_Community 에서처럼 반박 컨테이너가 게시글 제어 버튼 위에 남아 있었다면 여전히 훌륭했을 것입니다. 여러 번 반박할 수 있는 기능은 모두가 즐겼던 기능이었거든요.

새로운 반응(Reaction) 플러그인은 좋지만, 하나의 반응만 표시합니다.

반박 컨테이너의 위치를 결정하는 코드가 바로 이 줄인가요?

api.decorateWidget("post-menu:before-extra-controls", (helper) => {

모바일에서는 이렇게 해야 하는 건가요?
api.decorateWidget("post-contents:after-cooked", (helper) => {

CSS로 뭔가 해보려 했지만 효과가 없었습니다.

음, 뭔가 해 보긴 했는데 내가 뭘 하는 건지 전혀 모르겠어요… 이 플러그인을 2018년부터 써 왔거든요

@merefield 제 GIT에 크레딧을 어떻게 표기해야 하는지 조언해 주세요. 어떻게 돌아가는 건지 정말 아무것도 모르거든요

Git 링크: https://github.com/GrubbyVc/Retort-Reloaded

retort 플러그인을 클론해서 컨트롤 위에 retort-container가 다시 표시되도록 수정했습니다. 이렇게 하면 모바일에서 여러 개의 retort를 사용할 수 있습니다. 모바일에만 변경하고 싶었는데 방법을 몰랐습니다.

참고: 제가 한 유일한 변경 사항입니다

변경 사항

retort-init.js.es6 파일의 이 줄을 변경했습니다

api.decorateWidget("post-menu:before-extra-controls", (helper) => {

아래처럼 바꿨습니다

api.decorateWidget("post-contents:after-cooked", (helper) => {

데스크톱

모바일

CSS

공통

.topic-post.retort, button.post-retort {
    padding: 8px !important;
}

.post-retort {
    border: none;
    padding: 2px !important;
    background: rgb(0, 0, 0, 0);
    
    &:hover .post-retort__tooltip {
    opacity: 1;
  }

  &__tooltip {
       opacity: 0;
    transition: .5s opacity;
    position: absolute;
    bottom: 65px;
    font-size: 12px;
    text-align: center;
    min-width: 125px;
    max-width: 150px;
    background: var(--primary);
    color: var(--secondary);
    font-weight: bold;
    padding: 5px;
    border-radius: 5px;
    word-wrap: normal;
    left: auto;
    transform: translate(-50%, 0);
    z-index: 1;
    pointer-events: none;
    word-break: break-word;
    &:after {
      content: " ";
      width: 7px;
      height: 7px;
      bottom: -5px;
      left: 44%;
      transform: rotate(45deg) translate(-50%, 0);
      position: absolute;
      background: var(--primary);
    }
}

&__count {
    font-size: 12px;
    padding: 1px;
    position: relative;
    bottom: 1px;
    left: 1px;
    font-weight: bold;
    color: var(--primary-medium);
  }
}

.post-retort-container {
    background: rgb(0, 0, 0, 0);
}

.emoji-picker.opened.has-limited-set {
    height: 159px;
    background-color: #333 !important;
}

모바일

.emoji-picker.opened.has-limited-set {
    top: 400px;
}
1개의 좋아요

일반적으로 새 이름으로 새 저장소를 만드는 것은 권장하지 않는 관행입니다.

대신 메인 저장소를 포크하는 것을 고려해 보세요(이 과정은 매우 간단하며, 버튼 하나만 클릭하면 됩니다). 포크한 저장소에 변경 사항을 적용한 뒤, 모든 작업이 완전히 만족스러울 때, 그리고 해당 변경 사항이 일반적으로 유용할 수 있다고 판단되면 메인 저장소에 PR을 제출합니다. 누군가(보통 “메인터너”)가 PR을 검토하고, 필요 시 몇 가지 제안을 하며, PR을 업데이트할 수 있도록 한 후 메인 저장소에 병합합니다.

이것이 최선의 관행입니다.

5개의 좋아요

아, 바로 확인해볼게요. 조언해 주셔서 감사합니다 :+1:

1개의 좋아요

이렇게 하는 주된 이유는 모든 유지보수 작업을 하나의 저장소에 집중할 수 있기 때문에 훨씬 더 효율적이기 때문입니다. (깨어지는 변경 사항이 발생했을 때 이를 깨닫게 될 수도 있습니다!)

4개의 좋아요

아주 말이 된다

2개의 좋아요

안녕하세요. 저희 커뮤니티에서는 Retort를 매우 좋아합니다. 최근 Discourse 버전에서 해당 플러그인이 호환되지 않는 문제가 발생하고 있습니다. 여기를 참고해 주세요. 플러그인을 제대로 업데이트하려고 천천히 노력하고 있지만, 제 JavaScript 실력이 부족해서 잘 작동하게 만드는 데 어려움을 겪고 있습니다.

Discourse 코드베이스를 지속적으로 개선하기 위해 레거시 “위젯” 렌더링 시스템의 사용을 제거하고, 이를 Glimmer 컴포넌트로 대체하고 있습니다.

누구든 플러그인과 이 공지 사항을 살펴봐 주시고, 무엇이 필요한지에 대해 코멘트나 조언을 해 주실 수 있을까요? 제가 직접 해결할 수도 있지만, 이 플러그인이 좀 더 세심한 관리가 필요하다는 점을 알려드리고 싶었습니다. 도움이든 기여든 감사하겠습니다. 제가 올바르게 진행했는지 확신은 없지만, 분명히 진행 중인 작업인 초안 PR을 열어 두었습니다.

1개의 좋아요

제가 이해하기로는, 공식 Reactions 기능은 여전히 한 사용자가 여러 개의 리액션을 남기는 것을 지원하지 않는 것 같습니다. 우리 중 일부가 처음부터 주장해 온 것처럼, 이는 처음부터 잘못된 디자인 결정이었습니다. 사용자는 여러 개의 리액션을 표현할 수 있어야 하며, 이를 지원하는 도구들은 단순히 더 나은 경험을 제공합니다.

Reactions에서 이것이 어떻게든 바뀌기 전까지, Retort를 잃는 것은 비극이 될 것입니다. 누군가가 이를 업데이트하여 계속 작동하게 해주기를 바랍니다. 이 문제를 해결하거나 고려해 주시는 분께 감사의 말씀을 전합니다…

정말 상황에 따라 다릅니다. 많은 플랫폼은 게시물에 직접 사용할 수 있는 반응(이모지)을 1개만 제공합니다. 커뮤니티에 따라 이모지가 난무하는 혼란을 방지하기 위해 이 방식을 선호하기도 합니다.

개인적으로는 Retort를 좋아합니다. 당시에는 단순하고 평범한 '좋아요’보다 더 큰 효과를 볼 수 있었거든요. 사실 제 포럼 중 하나에서는 일반 이모지 반응과 Retort를 동시에 사용하기도 했습니다. 대부분의 사용자가 이모지를 절제해서 사용했기 때문에 잘 작동했습니다.

위 게시물에 대해 관련 지식이 있으시다면, Retort가 다시 작동하도록 하는 데 도움이 될 수 있습니다.
팀에서 여러 반응 기능을 추가할 계획이라고 했으니 언젠가 도입될 것이라고 확신합니다. 다만 현재 진행 중인 다른 프로젝트들이 우선순위가 높기 때문에, 이 기능이 우선순위 목록에 높게 올라 있지는 않을 수 있습니다.

대규모 변경 사항으로 인해 공식 Customization > Plugin, Customization > Theme, #customization:theme-component는 물론 코어 자체를 업데이트하는 데도 내부 마감 기한을 맞추기 위해 상당한 리소스가 소모되고 있기 때문입니다.

2개의 좋아요

Retort의 가장 큰 장점 중 하나는 커뮤니티가 의미 있는 리액션의 수를 제한적으로 설정할 수 있다는 것입니다. 그 범위를 벗어나면, 일반 댓글에서 원하는 이모지를 자유롭게 사용할 수 있습니다.

즉, 선택지가 '단 하나’와 ‘무한정’ 사이에서 갇혀 있는 것이 아닙니다.

다중 리액션에 대한 공식 지원이 조속히 도입되기를 진심으로 바랍니다. Retort를 잃을 위험에 처한 사용자들에게는 그 전환 과정이 매우 어색하고 불편할 수 있습니다. 현재와 미래에 이 문제를 해결하는 데 도움을 주실 모든 분들께 깊이 감사드립니다.

1개의 좋아요

이 플러그인이 언젠가 돌아올 기회가 있을까요?

@gdpelican 이 MR이 특정 문제로 인해 막혀 있나요? 도움이 필요하신가요? Updates based on new post menu in discourse. https://meta.discourse.o… - Pull Request #92 - gdpelican/retort - GitHub

새로운 Discourse 반응 시스템은 이 시스템과 비교하면 정말 아쉽습니다.

음, 이 기능을 추가하기 위한 PR이 이미 열려 있습니다:

개인적 의견으로는, Retort를 필수적으로 만든 요인은 이모지 하나를 사용할 수 있다는 것이 아니라, 사용자당 여러 개의 리액션을 할 수 있다는 점이었습니다. 사용자가 리액션을 단 하나만 사용할 수 있다는 아이디어는 매우 나쁜 설계라고 생각합니다. 공식 Reactions가 궁극적으로 이를 지원할 의도는 봤지만, 처음부터 이를 위해 설계되지 않았기 때문에 이를 구현하려면 대규모 재설계가 필요합니다.

3개의 좋아요