새 주제 URL 형식

새 토픽이 생성될 때 생성되는 URL을 미리 예측할 수 있는 방법이 있을까요? 스레드 제목만 있으면 된다는 전제에서 말입니다.

이렇게 질문하는 이유는, 완료 후 새 토픽을 생성하는 마법사(wizard) 설정을 사용 중이기 때문입니다. 사용자 입력 필드에 따라 스레드 제목은 항상 특정 형식을 따릅니다.

여기서 좀 독특한 점이 있습니다. DiscoTOC를 사용하지 않는 이유(사유가 있습니다)가 있는데, 해당 토픽의 1번 게시글에는 많은 정보가 포함되어 있지만, 동시에 목차(Table of Contents)도 함께 있습니다. 이 토픽은 항상 8개의 답변으로 구성되며, 각 답변은 미리 준비된 응답(canned response)을 사용하여 (1~7번) 각 답변의 "제목"을 생성합니다. 마법사를 통해 각 답변에 대한 빈 하이퍼링크와 함께 제목을 생성하도록 설정했습니다. 예를 들면 다음과 같습니다.

[1. 회의 안건](/2)
[2. 회의 파일](/3)
[3. 회의 중 투표](/4)
[4. 회의록 - [초안] 피드백을 위한 예비안](/5)
[5. 회의록 - [최종안] 배포를 위한 검토](/6)
[6. 회의록 - [배포용 사본] 회의록 채택 투표](/7)
[7. 예약됨](/8)

질문하는 이유는 마법사가 토픽을 생성한 후, 사용자에게 이 목차 목록을 남겨두기 때문입니다(이 카테고리에서는 매월 항상 동일합니다). 사용자는 토픽의 URL을 복사한 뒤, /Reply# 앞에 붙여넣어야 합니다. Discourse가 토픽 URL을 생성하는 방식은 URL의 맨 끝에 토픽 번호(동적 값)를 포함하기 때문입니다. 마법사를 사용하면 토픽 ID를 제외한 URL 전체의 구문을 생성할 수 있습니다.

토픽이 생성되기 전에(즉, 아직 토픽 ID가 없는 상태) URL을 생성할 수 있는 방법이 있을까요? Discourse가 토픽 ID가 누락된 것을 무시하되, 여전히 해당 토픽으로 올바르게 링크되도록 하는 경우 말입니다. 이 경우라면 이 방법이 매우 유용할 것이며, 생성 중인 새 토픽 내에서 링크를 자동으로 생성하는 마법사를 사용하는 다른 몇 가지 사용 사례에도 유용할 것입니다.

주제 생성 호출의 응답에는 새로 생성된 주제 URL이 포함되어 있으므로, 마법사가 그 응답을 읽고 해당 URL을 사용자에게 반환하도록 하면 되지 않나요?

토픽이 생성되기 전에 실행되는 마법사(wizard)가 다가올 생성될 URL을 캡처하여 마법사의 작성기에 삽입하는 방법에 대해 정확히 확신이 서지 않습니다.

마법사가 먼저 주제를 생성한 후, ID를 가져와 원하는 정보로 수정하도록 하면 어떨까요?

네, 사용자가 매달 레코드 시스템을 관리해야 하지만 마크다운의 아주 기본적인 기능 이상에는 익숙하지 않은 사람들을 위해 수동 단계를 제거하려고 하는 거예요.

문제는 해당 직무를 담당하는 사람이 역량에 따라 채용되거나 배정되는 게 아니라, 회원 선거를 통해 그 자리에 앉게 된다는 점이에요. 그리고 특정 선출직이 이 업무를 맡고 있죠. 현재로서는 매달 워드 문서를 드롭박스 폴더에 올리는 정도에 불과해요. 저희는 도서관 스타일의 기록 보관 방식을 사용하고 있어서, 디스커스로 전환하는 데는 어느 정도의 학습 곡선이 필요해요.

그래서 사용자가 매달 마법사(wizard)를 완료하는 것 이상을 하지 않아도 되도록 최선을 다하고 있어요.

그럼 API로 해보는 건 어떨까요? 문제가 정확히 뭔지는 잘 모르겠지만, 마치 달걀과 닭의 문제인 것 같습니다. 보통 주제 ID 없이 슬러그만으로도 https://meta.discourse.org/t/new-topic-url-format처럼 사용할 수 있으므로, 이렇게 하면 작동할지도 모릅니다.

제이, 정말 핵심을 찔렀네요..

제 생각에는 마법사(wizard)가 이미 스레드 제목 생성을 담당하고 있기 때문에, 토픽 ID를 제외하면 URL을 완전히 예측할 수 있습니다. 그렇다면 토픽 ID가 URL에 포함되지 않은 경우에도 디스코스가 사용자를 해당 토픽으로 유도할 수 있는 방법이 있나요, 아니면 토픽 ID를 제외하고 URL의 나머지가 모두 일치할 경우 디스코스가 토픽 ID를 무시하도록 허용하는 커스텀 플러그인을 통한 규칙이 있을까요..

슬러그가 고유하고 숫자로 시작하지 않는다면, topic_id 없이도 작동할 것 같습니다.

그렇긴 한데, 마지막 /reply#로 특정 답글에 바로 점프하는 건 불가능해요.

왜냐하면 포맷이 도메인/제목/게시물ID/답글#이거든요.

게시물ID 필드에 아무것도 안 쓰거나, 일반적인 플레이스홀더를 써서 답글로 직접 이동하는 방법을 알아보고 있어요.