토픽 템플릿 플레이스홀더 텍스트 테마 컴포넌트

오래된 버전에서 테스트하기가 매우 어렵습니다. 이 작업은 최신 tests-passed에서 동작하도록 만들어졌습니다. 오래된 Discourse 인스턴스와 단순히 호환되지 않을 가능성이 매우 높습니다.

콘솔에서 JavaScript 오류가 발생하고 있나요? 그것이 불완전한 렌더링을 일으키는 원인일 수 있습니다. 이것은 스타일링 Component가 아닙니다 :slight_smile:

드물게 Core에서 매우 큰 변경 사항이 이루어져, 오래된 코드베이스를 지원하지 않는 방식으로 필요한 오버라이드를 수정해야 하는 경우가 있습니다. 그렇다고 해도, 제 PR에는 Core의 변경 사항에 대해 견고해야 할 매우 신중한 오버라이드가 많이 포함되어 있었습니다. 하지만 할 수 있는 데에는 한계가 있습니다.

@merefield 답글 감사합니다.

콘솔에 표시되는 이 오류는 실제로 관련이 있는 것 같습니다:

네, 꽤 기본적인 호환성 문제입니다. 기존 가져오기 위치가 비추천(deprecated)으로 지정되었기 때문에 이제 데코레이터를 새로운 위치에서 가져오도록 변경되었습니다. 아마도 이전 설치 환경에는 해당 위치가 존재하지 않을 가능성이 높습니다.

Discourse를 더 최신 버전으로 업데이트할 때까지 기다리시는 것을 권장합니다.

멋지네요! 걱정 마세요, 빠른 답변 감사합니다 @merefield :smiley:

1개의 좋아요

@Ryan_NR - 그 사이에, 동일한 의존성이 필요하지 않을 수도 있는 원래 버전을 시도해 볼 수 있습니다.

1개의 좋아요

테마 분기(Theme branching)가 작동한다고 생각하므로, 동일한 테마에서 3개의 분기(tests-passed, beta 및 stable)를 유지하는 것이 가능할 수 있습니다.

그러나 이를 통해 모든 문제를 포착할 수는 없으며, 특히 유지 관리자가 자원봉사자인 경우 유지 관리와 정상 작동 상태를 유지하기 위해 상당한 추가 작업이 필요합니다.

@merefield 감사합니다. 브랜칭이 혼란을 줄까 봐 새 저장소를 만들었습니다. @Ryan_NR의 버전 의존성이 제거되는지 확인해 보려고요.

1개의 좋아요

이번 경우에는 당신의 해결책이 더 간단합니다. 저는 그저 전략적으로 내 생각을 말한 것뿐이에요 :slight_smile:

한번 시도해볼게요! 감사합니다 @Rhidian :smiley:

1개의 좋아요

알겠습니다… 완벽하게 작동하네요!

둘 다 정말 감사합니다! :smiley: :smiley:

천만에요. 도와드릴 수 있어서 기뻐요 :blush:

혹시 다른 분들도 같은 문제를 겪고 계실까 봐 설명서를 업데이트했어요.

2개의 좋아요

방금 깨달았는데요, 이 텍스트는 새 주제를 만들 때뿐만 아니라 게시글에 답글을 쓸 때도 표시됩니다. 적어도 제 상황에서는 이게 꽤 불편한데, 현재 주제 템플릿처럼 새 주제만 만들 때에만 표시되도록 할 수 있는 방법이 있을까요?

3개의 좋아요

잘 지적해 주셨네요. 원본 버전은 정상적으로 작동합니다. 즉, 주제 템플릿과 동일한 방식으로 새 주제에만 표시됩니다.

원본 버전은 여기서 다운로드할 수 있습니다.

원본 버전 저장소: https://github.com/naidihr/discourse-topic-template-placeholders_original

이는 템플릿 텍스트가 템플릿 텍스트와 일치하는 경우에만 해당 텍스트를 플레이스홀더로 이동시키는 간단한 Jquery 스위치였습니다.

@merefield 이 문제를 다시 확인해 주실 수 있으신가요?

네. 그러면 이 동작은 첫 번째 게시물에서만 일어나도록 하려는 건가요? 이후 게시물에서도 동작하게 하고 싶은 상황이 있을까요?

로버트, 감사합니다. 아까 설명드린 대로 그대로입니다. 원래 동작 방식과 동일하게 작동해야 합니다. 커스텀 템플릿 텍스트가 컴포저에 있는 텍스트와 일치할 때만, 플레이스홀더 텍스트로 표시하기 위해 변환을 수행해야 합니다.

그것이 제가 처음에 jQuery 해킹을 한 이유입니다. 렌더링이 완료된 후에야 그 체크를 어떻게 수행할 수 있는지 파악할 수 있었거든요?

해결했고, 첫 번째 게시물로 제한하는 설정을 추가했습니다. 기본값은 TRUE입니다.

이로 인해 기능이 추가되었는데, 원할 경우 주제 템플릿(또는 사용자 지정 플레이스홀더 텍스트)을 모든 게시물에 적용할 수 있습니다 :slight_smile:

개발 환경과 운영 환경에서 상당히 충분히 테스트해 보았지만, 확인해 주셔도 됩니다.

4개의 좋아요

로버트, 감사합니다. 해당 변경 사항을 병합하여 테스트해 보았습니다.

설명된 문제는 해결되었지만, 새로운 문제가 발생했습니다. 초안이 있다면 다시 열려 주세요. 현재 초안 텍스트가 사라져 있습니다. 확인해 주실 수 있을까요?

정상적인 동작은, 컴포저에 표시될 텍스트가 템플릿 텍스트와 일치할 경우에만 변환이 이루어져야 한다는 것입니다.

아직 재현하지 못했습니다 … 이 문제를 발견했을 당시의 정확한 설정을 포함한 정확한 재현 방법(STR)을 알려 주시겠어요? 제 초안 답글과 새 주제 초안은 정상적으로 복원되었습니다.

커스텀 템플릿이 있는 주제에 접속하면 이런 현상이 발생합니다. 초안을 작성한 후 사이트를 떠났다가 다시 돌아와 오른쪽 위 아바타 로고와 이름을 클릭한 뒤 초안을 선택합니다.

그다음 저장된 초안에 있는 재개를 클릭합니다.

텍스트가 표시되지 않고 대신 플레이스홀더 텍스트가 나타납니다.

Discourse 4.4.3

1개의 좋아요

@merefield와 함께 작업한 결과, 이 문제와 또 다른 문제를 이제 수정한 것으로 보입니다.

@davidkingham - 확인해 주시겠습니까?