Topic URL to include its Category

I am investigating the possibility of including the category in the topic URL for retargeting purposes.

For example: https://meta.discourse.org/t/support/where-can-i-create-tags/31094 or https://meta.discourse.org/support/t/where-can-i-create-tags/31094

From previous responses on this subject, it seems as though this will wreck havoc on the routing system, correct?

What about the possibility of including the category in query string? https://meta.discourse.org/t/where-can-i-create-tags/31094/?category=support

Thoughts, suggestions, answers?

I think if you put it before the topic ID at the end there’s no problem… but you can’t add more slashes or other delimiters.

Maybe you can use underscore to delimit if you need it, e.g. these two links go to the same place without any problem:

https://meta.discourse.org/t/topic-url-to-include-its-category/39996

https://meta.discourse.org/t/_support_topic-url-to-include-its-category/39996

your URL with question mark at the end might work - seems to work here. Not sure what the effect of that is.

https://meta.discourse.org/t/where-can-i-create-tags/31094/?category=support

이것이 사이트 설정이나 플러그인을 통해 가능한가요?

안녕하세요,

저는 Discourse는 물론 포럼 자체에 대해서도 초보자인데요, 스레드 URL에 해당 스레드의 카테고리가 포함될 수 있는지, 그리고 그것이 어떻게 가능한지 궁금해서 질문드립니다.

현재 카테고리 URL은 다음과 같은 형태입니다:
https://randomname.discourse.group/c/category-name/6

하지만 해당 카테고리 안의 스레드를 클릭하면 카테고리에 대한 참조가 전혀 없는 URL이 표시됩니다:
https://randomname.discourse.group/t/what-a-great-thread/18

죄송하지만 검색을 통해 답을 찾아보려 했으나 잘 찾지 못했습니다.

도움 주시면 정말 감사하겠습니다.

감사합니다

명명을 올바르게 설정하기 위한 좋은 아이디어입니다. Discourse에서는 스레드를 '토픽(Topic)'이라고 부릅니다.

카테고리와의 관련성은 암묵적으로 처리되므로 별도로 지정할 필요가 없습니다.

게다가 토픽이 새로운 카테고리로 이동하면 URL이 구식이 되어 사실상 유효하지 않게 됩니다.

필요하다면 쿼리 문자열 매개변수를 추가하는 데는 보통 문제가 없습니다.

그런데 사용 사례가 무엇인가요? 무엇을 이루고자 하시나요?

저는 포럼을 스크래핑하는 제3자 소프트웨어를 사용하고 있습니다. 이 소프트웨어의 쿼리 기능에 제한이 있어, 스레드(토픽)를 스크래핑할 때 해당 스레드가 어떤 카테고리에 속하는지 추론해야 합니다. 소프트웨어는 URL을 통해 이를 파악하는 것으로 보입니다.

앞서 지적했듯이 앱의 관점에서는 의미가 없지만, 플러그인이나 스크립트를 만들어 모든 URL을 변경할 수 있을지도 모릅니다.

크롤러 뷰의 HTML에서 카테고리가 명확하게 표시되는 것 같으니, 대신 도구를 수정하여 이를 활용하는 것은 어떨까요?

스크레이퍼에 URL을 직접 제공하고 카테고리 추출 방식을 정의하는 쪽이라면, 토비우스가 제안한 방법을 해킹으로 활용할 수 있을지 모릅니다. 예를 들어 /t/category-name__topic-slug/topic-id를 제공할 수 있습니다. Discourse는 topic-id만을 기준으로 최종 URL에 대한 301 리다이렉트 응답을 반환합니다.

하지만 스크래핑 과정에서 URL을 가져오는 것이라면, 스크래핑 전략의 한계를 충족하기 위한 변경 사항에 비해 너무 많은 작업이 필요해 보입니다.

제가 아는 한, 불가능합니다. 플러그인에서 /t/category-name/topic-slug/topic_id 라우트를 제공하는 것은 가능해 보이지만, Discourse 내의 모든 토픽 참조가 이 대체 라우트를 우선하도록 하는 옵션을 추가하는 것은 (개인적으로) 적은 이득에 비해 너무 많은 작업이 필요해 보입니다.

생각은 이런데, RSS 피드를 사용해 보신 적 있으신가요? Discourse에는 RSS 피드 출력이 기본적으로 내장되어 있습니다.

어떤 소프트웨어를 사용하시나요? URL을 변경하지 않고도 HTML과 JSON을 통해 카테고리를 가져올 수 있는 방법이 몇 가지 있습니다.

JSON의 경우, 이 주소를 스크레이핑하는 것:
https://meta.discourse.org/t/topic-url-to-include-its-category/39996

대신 이 주소를 스크레이핑하세요:
https://meta.discourse.org/t/topic-url-to-include-its-category/39996.json

그리고 category_id 필드를 찾으시면 됩니다.

또 다른 방법으로는 Data Explorer를 사용하여 필요한 데이터를 추출하는 것이 있습니다.