URL do tópico para incluir na sua Categoria

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?

1 curtida

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
3 curtidas

Isso é possível através de uma configuração do site ou de um plugin?

Olá,

Sou um completo novato em relação ao Discourse, mas também em fóruns em geral, e gostaria de perguntar e entender se e como é possível que o URL de um tópico contenha sua categoria.

O que quero dizer é que, no momento, parece que tenho um URL de uma categoria como esta:
https://randomname.discourse.group/c/category-name/6

Mas, ao clicar em um tópico dentro dessa categoria, tenho um URL que não contém nenhuma referência à categoria:
https://randomname.discourse.group/t/what-a-great-thread/18

Desculpem, mas tentei pesquisar e entender a resposta, mas não tive muita sorte.

Qualquer ajuda seria muito apreciada.

Muito obrigado.

Uma boa ideia para acertar a nomenclatura. No Discourse, um tópico é chamado de Tópico.

A associação com uma Categoria é implícita, então não é necessária.

Além disso, se o Tópico for movido para uma nova Categoria, o URL ficará desatualizado e essencialmente inválido.

Geralmente não há problema em adicionar um parâmetro de string de consulta, se você precisar.

Mas qual é o seu caso de uso? O que você está tentando alcançar?

2 curtidas

Estou utilizando um software de terceiros que raspa um fórum. Sou limitado pelas suas consultas e, portanto, quando ele raspa um tópico (tópico), ele precisa inferir a qual categoria pertence, o que parece fazer através da URL.

Não faz sentido do ponto de vista do aplicativo, como eu apontei, mas você pode ser capaz de criar um plugin ou script para alterar todas as URLs.

A categoria está clara no HTML das visualizações do rastreador, acredito, então talvez você possa alterar a ferramenta para aproveitá-la em vez disso?

2 curtidas

Se você for quem fornece explicitamente as URLs para o scraper e define como ele extrairá a categoria delas, talvez você possa usar o que Tobias sugeriu como um hack – você poderia fornecer a ele /t/nome-da-categoria__slug-do-tópico/id-do-tópico, por exemplo. O Discourse responderá com um redirecionamento 301 para a URL final, com base unicamente no id-do-tópico.

Se ele obtiver as URLs durante o processo de scraping, no entanto, parece muito trabalho para uma alteração destinada apenas a suprir uma limitação na estratégia de scraping.

Pelo que sei, não. Servir uma rota /t/nome-da-categoria/slug-do-tópico/id-do-tópico em um plugin parece viável, mas ter uma opção para que todas as referências a tópicos no Discourse prefiram essa rota alternativa parece (para mim, pessoalmente) muito trabalho para pouco ganho.

2 curtidas

Só uma sugestão, mas você já considerou usar feeds RSS? O Discourse tem saída de feed RSS integrada.

2 curtidas

Que software é? Você pode obter a categoria de algumas maneiras sem alterar os URLs (no HTML e JSON).

Para JSON, em vez de raspar isto:
https://meta.discourse.org/t/topic-url-to-include-its-category/39996

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

e procure pelo campo category_id.

Outra possibilidade é usar o Data Explorer para extrair o que você precisa.

4 curtidas