회전하는 Composer 플레이스홀더

:discourse2: 요약 Rotating Composer Placeholder는 Discourse 컴포저에 동적으로 회전하는 플레이스홀더 텍스트를 추가하여, 컴포저가 열릴 때마다 다른 프롬프트를 표시합니다.
:hammer_and_wrench: 리포지토리 링크 https://github.com/Ethsim12/discourse-rotating-composer-placeholder
:open_book: Discourse 테마를 처음 사용하시나요? Discourse 테마 사용 입문가 가이드

이 테마 컴포넌트 설치

기능

  • 컴포저가 열릴 때마다 컴포저 플레이스홀더 텍스트를 회전시킵니다
  • 다음 항목에 작동합니다:
    • 답변
    • 새 주제 컴포저
  • 테마 컴포넌트 설정을 통해 완전히 설정할 수 있습니다
  • 플러그인 불필요
  • 클라이언트 사이드 전용 (안전하고 가볍습니다)
  • 최신 api-initializers를 사용합니다

설치

  1. Discourse 관리자에서 다음으로 이동하세요:
    관리자 → 외관 → 테마 및 컴포넌트 → 컴포넌트 → 3개 점

  2. 설치를 클릭하세요.

  3. Git 리포지토리에서를 선택하세요.

  4. 이 리포지토리 URL을 붙여넣고 설치를 클릭하세요.

테마 컴포넌트 활성화

테마 컴포넌트를 설치한다고 해서 자동으로 활성화되지 않습니다.
테마에 연결해야 합니다.

  1. 다음으로 이동하세요:
    관리자 → 외관 → 테마 및 컴포넌트 → 컴포넌트 → Rotating Composer Placeholder

  2. 활성 테마를 클릭하세요
    (예: “기본값”, “데스크톱” 또는 사용자 정의 테마).

  3. 초록색 체크박스를 누르세요.

  4. 브라우저를 새로고침하세요.

활성화되면 해당 테마에 컴포넌트가 즉시 적용됩니다.

컴포넌트 설정

  1. 여전히 테마 컴포넌트 페이지 내에서 작업하세요.

  2. rotating_placeholders 목록을 편집하세요.

예시 값:

  • 무엇을 시도해 보셨나요? 재현 단계를 포함해 주세요.
  • 답변당 하나의 아이디어만. 새로운 문제라면 새 주제를 시작하세요.
  • 다음 내용을 포함해 주세요: 예상 결과, 실제 결과, 오류 내용.
  • 팁: ```삼중 백틱``` 안에 로그를 붙여넣으세요.

참고:

  • 각 목록 항목은 가능한 플레이스홀더가 됩니다.
  • 빈 항목은 무시됩니다.
  • 목록이 비어 있으면 기본 플레이스홀더가 사용됩니다.

알려진 제한 사항

  • UI 전용 개선 사항
  • 게시물 콘텐츠에 영향을 주지 않습니다
  • 플레이스홀더는 컴포저가 열릴 때 회전합니다
  • 향후 컴포저 리팩토링 시 셀렉터의 소규모 업데이트가 필요할 수 있습니다

호환성

  • 최신 Discourse 버전을 위해 설계되었습니다
  • 권장 최소 버전: Discourse 3.2+
  • 지원되는 테마 API만 사용합니다
4개의 좋아요

사용 사례의 예시를 공유해 주시겠습니까?

1개의 좋아요

예시들이 사용 사례를 잘 보여준다고 생각합니다. 메시지를 작성할 때 고려해야 할 사항이 많습니다. 하나만 넣으면 금세 무시당하게 됩니다. 반면, 모든 것을 다 넣으면 아무도 읽지 않을 것입니다. 매번 다른 내용을 넣으면 누군가가 읽고 고려할 가능성이 높아집니다.

재미있는 이스터 에그를 넣는 것도 좋은 방법입니다.

4개의 좋아요

아, 맞다, 예제조차 못 봤네요.

Game of Thrones: The Walk of Shame

3개의 좋아요

감사합니다! 발견한 좋은 점은 리치 텍스트 편집기와도 깔끔하게 작동한다는 것입니다. 이 경우에도 플레이스홀더가 여전히 올바르게 회전합니다.

이 컴포넌트는 편집기 자체의 내부 구조가 아닌 편집기 생명주기에 연결되므로, 마크다운 전용 선택자에 의존하지 않습니다. 이는 다양한 편집기 모드에서 호환성을 유지하는 데 도움이 됩니다.

향후 Discourse가 편집기를 다시 리팩토링하더라도, 이로 인한 깨짐의 범위가 상당히 작을 것으로 기대됩니다.

1개의 좋아요

잘하셨네요 @Ethsim2 :clap:

아마도 카테고리별 플레이스홀더가 유용한 추가 기능이 될 수 있을 것 같습니다. (어딘가에 이미 그 기능을 수행하는 컴포넌트가 있는 것 같기도 하네요.)

사실 제 포럼 중 하나에서 이걸 써서 전부 재미있게 만들려고 합니다…

“너 대체 무슨 일이야? 읽을 줄을 모르니???”
“검색도 안 하고 글 올리는 사람과 게으른 놈의 차이는 뭐지?”
“버그를 보고할 때는 먼저 그게 거미가 아닌지 확인하세요.”
“짐을 안 짊어진 제비의 비행 속도는 얼마인가?”

5개의 좋아요

별거 아니에요! :slightly_smiling_face:

카테고리별 플레이스홀더는 정말 좋은 아이디어네요 - 특히 "지원 / 버그"와 “일반 채팅” 같은 카테고리처럼, 사용자에게 보여주고 싶은 프롬프트가 완전히 다른 경우에 특히 유용할 것 같습니다.

구현 측면에서, 컴포저 컨텍스트는 이를 깔끔하게 처리하기에 충분한 정보를 제공합니다:

• 새 주제: 컴포저 모델에서 선택된 categoryId를 기준으로 설정

• 답글: 주제 컨텍스트에서 카테고리를 유도

따라서 v1 버전은 다음과 같이 구성될 수 있습니다:

category_id → 플레이스홀더 목록을 매핑하는 테마 설정

• 카테고리 매칭이 없으면 전역 rotating_placeholders로 폴백

생각하고 계신 기존 컴포넌트를 기억하신다면 링크를 주시면 감사하겠습니다. 그렇지 않다면, 여기 기능 요청으로 추가하고 관심도를 파악해 보겠습니다 (이미 존재하는 경우 작업을 중복하지 않도록 하기 위함입니다).

그리고 - 당신의 “ALL funny” 목록은 제가 염두에 두고 있던 바로 그 ‘카오스 굿’ 그 자체네요 :joy:

(아마도 몇 개의 진지한 항목을 섞어 넣어서, 가끔씩 유용한 알림이 슬쩍 보여지도록 할 것 같습니다!)

Topic Template Placeholder Text theme component 에서는 카테고리 템플릿을 플레이스홀더로 사용할 수 있습니다.

2개의 좋아요

감사합니다! 정말 유용한 링크네요.

해당 컴포넌트(“Topic Template Placeholder Text”)는 이 컴포넌트가 수행하는 방식과 약간 다릅니다. 카테고리 주제 템플릿을 플레이스홀더로 사용하므로 플레이스홀더가 카테고리별로 다르지만, 기본적으로 템플릿 내용을 사용하는 것입니다.

이 테마 컴포넌트는 작성기(composer)가 열릴 때마다 짧은 프롬프트 목록을 순환하며 표시합니다(새 주제뿐 아니라 답변에도 적용됨). 따라서 전역 목록으로의 폴백(fallback)과 함께 카테고리별 순환 목록을 원한다면 “카테고리별 플레이스홀더”가 여전히 유용한 추가 기능이 될 수 있습니다. 특히 “Support/Bug”와 “General chat”의 경우 그렇습니다.

하지만 누군가의 목표가 구체적으로 “내 카테고리 템플릿을 플레이스홀더로 표시하는 것”이라면, 다른 TC가 이를 이미 잘 해결해 주고 있습니다.