URL dell'argomento da includere nella 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 Mi Piace

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 Mi Piace

È possibile farlo tramite un’impostazione del sito o un plugin?

Ciao,

Sono molto un n00b per quanto riguarda Discourse ma anche per i forum in generale e vorrei chiedere e capire se e come è possibile che l’URL di un thread contenga la sua categoria.

Il mio significato è che al momento ho un URL di una categoria come questa:
https://randomname.discourse.group/c/category-name/6

Ma quando clicco su un thread all’interno di quella categoria, ho un URL che non contiene alcun riferimento alla categoria:
https://randomname.discourse.group/t/what-a-great-thread/18

Mi scuso, ma ho provato a cercare e capire la risposta, ma non ho avuto molta fortuna.

L’aiuto sarebbe molto apprezzato.

Molte grazie

Una buona idea per definire correttamente la nomenclatura. In Discourse un thread è chiamato Topic.

L’associazione con una Categoria è implicita quindi non è necessaria.

Inoltre, se il Topic viene spostato in una nuova Categoria, l’URL diventerebbe obsoleto e sostanzialmente non valido.

Di solito non c’è alcun danno nell’aggiungere un parametro query string se proprio devi.

Ma qual è il tuo caso d’uso? Cosa stai cercando di ottenere?

2 Mi Piace

Sto utilizzando un software di terze parti che esegue lo scraping di un forum. Sono limitato dalle sue query e quindi, quando esegue lo scraping di un thread (argomento), deve dedurre a quale categoria appartiene, cosa che sembra fare tramite l’URL.

Dal punto di vista di un’app non ha senso, come ho già sottolineato, ma potresti essere in grado di creare un plugin o uno script per modificare tutti gli URL.

La categoria è chiara nell’HTML delle viste del crawler, credo, quindi forse potresti invece modificare lo strumento per sfruttarla?

2 Mi Piace

Se sei tu a fornire esplicitamente gli URL allo scraper e a definire come estrarrà la categoria da essi, potresti essere in grado di utilizzare quello che Tobias ha suggerito come hack: potresti fornirgli ad esempio /t/category-name__topic-slug/topic-id. Discourse servirà una risposta di reindirizzamento 301 all’URL finale, basata esclusivamente sull’topic-id.

Se invece ottiene gli URL durante il processo di scraping, sembra un sacco di lavoro per una modifica volta solo a soddisfare una limitazione nella strategia di scraping.

Non che io sappia. Servire un percorso /t/category-name/topic-slug/topic_id in un plugin sembra fattibile, ma avere poi un’opzione in modo che tutti i riferimenti agli argomenti in Discourse preferiscano questo percorso alternativo sembra (a me, personalmente) troppo lavoro per un guadagno minimo.

2 Mi Piace

Solo un pensiero, ma hai considerato l’uso dei feed RSS? Discourse ha un output di feed RSS integrato.

2 Mi Piace

Che software è? Puoi ottenere la categoria in diversi modi senza cambiare gli URL (nell’HTML e nel JSON).

Per il JSON, invece di analizzare questo:
https://meta.discourse.org/t/topic-url-to-include-its-category/39996

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

e cerca il campo category_id.

Un’altra possibilità è usare Data Explorer per estrarre ciò di cui hai bisogno.

4 Mi Piace