모든 블로그 게시물에 주제를 자동으로 생성하지 않습니다

안녕하세요, 웹사이트에 블로그 게시물을 게시할 때마다 자동으로 주제를 생성하지 않으면서도 토론 섹션은 유지할 수 있는 방법이 있을까요?

특정 블로그 게시물에 댓글이 달리는 경우에만 자동으로 주제를 생성하는 것이 더 합리적이라고 생각합니다. 현재 로직은 사람들이 댓글을 달기 전에 주제가 먼저 존재해야 한다는 것입니다.

미리 감사드립니다!

원하시는 것이 이것과 같은 건가요?

그렇다면 아래를 참고하세요:

답변 주셔서 감사합니다. 네, 특정 조건에서만 Discourse에 게시물을 트리거하고 싶었습니다.

다만, 저희 웹사이트는 WordPress로 만들어지지 않았습니다. Hugo로 구축되었습니다.

이를 달성할 수 있는 방법이 있을까요?

우리가 Discourse 이외의 다른 댓글 시스템을 사용하지 않는다는 점을 명확히 하고 싶습니다. 따라서 우리가 원하는 것은 아래처럼 Discourse에 빈 토픽이 여러 개 생성되는 것이 아니라, 실제로 게시물에 댓글이 있을 때만 토픽을 생성하는 것입니다:

잘 전달이 되셨나요?

이 기능을 위한 설정이 있나요?

별로… 주제가 어딘가에 게시되지 않은 상태라면, 사용자들은 어떻게 주제에 답글을 달아야 한다는 건가요? 모든 주제는 0개의 답글로 시작해야 합니다. 제가 뭔가 놓치고 있는 것 같네요 :thinking:

제가 생각하기에 원하시는 것은 웹사이트에서 Discourse로 가져온 모든 주제를 unlisted(비공개) 상태로 표시하는 것입니다. 주제가 댓글을 받으면 자동으로 listed(공개) 상태로 변경되어야 합니다. Unlisted 주제는 주제 목록에 표시되지 않으므로, 이 설정을 통해 사이트의 주제 목록이 답변이 없는 주제들로 가득 차는 것을 방지할 수 있습니다.

이러한 설정은 블로그 게시물 아래에 표시되는 “토론 시작” 링크를 클릭하여 Discourse 주제에 접근하는 사이트에서 합리적입니다. Discourse에는 이 기능을 위한 설정이 없지만, 합리적인 기능 요청이라고 생각합니다. Discourse WordPress 플러그인에는 이 기능이 있지만, 주제를 비공개 및 공개 처리하기 위해 Discourse API를 사용합니다.

@simon 바로 우리가 원하는 것이었네요! 답변해 주셔서 감사합니다. 문제는 저희 사이트가 WordPress로 구축되어 있지 않다는 점입니다. 하지만 Discourse API를 살펴볼 수는 있습니다.

기능 요청 건으로, Discourse에 이 요청을 어디서 올릴 수 있을까요?

@Canapin 그러면 블로그 게시물이 Discourse 주제로 목록에 표시되기 전에 먼저 댓글을 받도록 하자는 건가요? 해당 게시물은 우리 사이트에 이미 존재하는 거죠?

좋은 아이디어입니다. 다른 옵션은 사용자가 클릭하여 진입할 때까지 주제를 생성하지 않는 것이지만, 제안해 주신 방법이 더 쉽다고 생각합니다. @eviltrout 님이 이 문제를 이번 릴리스(다음 주)의 가능한 작업으로 고려해 주실 수 있을까요?

그리고 API를 통해 ‘비공개’ 상태로 설정하는 방법은 무엇인가요? 댓글 embedding.js에서 관련 API를 찾을 수 없습니다. 감사합니다.

가장 쉬운 방법은 이 가이드에 나와 있는 단계를 따라가면서 Discourse 사용자 인터페이스를 통해 주제를 비공개로 설정했다가 다시 공개로 설정해 보는 것입니다: How to reverse engineer the Discourse API.

API를 통해 이 과정을 자동화하려면 포스트 이벤트를 수신하기 위한 웹훅(webhook)을 설정해야 합니다. 임베드(embed) 카테고리의 첫 번째 포스트가 생성되었다는 웹훅을 수신하면, 해당 주제를 비공개로 설정하는 API 요청을 보내야 합니다. 주제 내 두 번째 포스트가 생성되었다는 웹훅을 수신하면, 해당 주제를 공개로 설정하는 API 요청을 보내면 됩니다.

위에서 언급했듯이, 더 나은 접근 방식은 사용자가 블로그 사이트에서 해당 주제로 넘어오는 첫 번째 클릭 시 주제가 자동으로 비공개로 설정되도록 하는 것입니다. 이렇게 하면 첫 번째로 댓글을 남기는 사용자가 해당 주제가 비공개로 표시되어 있는 것을 보지 않게 됩니다. 이 방법은 설정이 다소 복잡할 수 있지만, Discourse 주제 링크에 대한 클릭 이벤트를 수신하여 API를 통해 구현할 수 있습니다.

이것은 Embed Discourse comments on another website via Javascript 주제에서 수년 동안 요청되어 왔던 것입니다.

응, @eviltrout 나도 이걸 해야 한다고 생각해. 최소한 더 쉬운 방식(기본값이 비공개, 답변이 도착하면 공개되는 방식) 정도는 가능하지 않을까?

네, 도움 주셔서 감사합니다.

이 새로운 기능이 기대됩니다. 정말 필요했던 기능인 것 같아요. 출시되면 어떻게 알 수 있을까요?

이상적으로는 해당 기능이 사용 가능해지면 이 주제가 업데이트됩니다. 그렇게 되면 이 주제의 알림 수준을 '주시(Watching)'로 설정해 두셨다면 관련 알림을 받으실 수 있습니다.

이 기능에 대한 PR을 준비했습니다:

좋은 정보네요! 감사합니다!

와, 정말 인상적이네요! 너무 빠르네요.

방금 이 기능을 실제로 확인했어요! @codinghorror와 @eviltrout에게 감사의 인사를 전합니다. 사용자들의 요청에 이렇게 빠르게 응답해 주셔서 감사합니다.