Usando o Discourse como plataforma de revisão/discussão de quadrinhos

Tenho um caso de uso um pouco específico sobre o qual não tenho certeza se o Discourse é o meio certo.

Gostaria de hospedar uma plataforma de discussão em torno de 5000-7000 quadrinhos. No entanto, não quero que todas as discussões estejam sob um único tópico, pois é difícil rastrear diferentes tópicos de discussão sob o mesmo quadrinho. Por isso, pensei que poderia criar uma “Categoria” para cada quadrinho e haveria tópicos separados abaixo. Além disso, li que isso pode sobrecarregar tanto o servidor quanto o cliente.

Observe que a navegação não é um problema, cada quadrinho tem um identificador único que os membros da comunidade conhecem, então ninguém estaria navegando pelas categorias. O usuário apenas digitará o identificador para encontrar a categoria.

Existe uma maneira melhor de realizar uma funcionalidade semelhante? O uso de tags ajudaria?

1 curtida

Resumindo: sim, esse é o caminho a seguir.

1 curtida

Posso forçar o uso de tags em cada postagem? Porque, idealmente, o fórum não deve conter nada que não pertença a nenhum dos quadrinhos.

1 curtida

Veja as configurações de Categoria - Tags:

3 curtidas

Posso popular tags programaticamente? Uma ideia que tive foi criar um tópico para cada tag (acho que é a única maneira de criar uma tag), mas não encontrei muita informação sobre a geração procedural de tópicos.

É exatamente isso que faço na minha comunidade de jogos de tabuleiro: sempre que um jogo de tabuleiro é adicionado (ou renomeado em) meu banco de dados, uma tag e dois tópicos personalizados são criados/atualizados.

Se bem me lembro, quando trabalhei nisso, não havia um endpoint específico para criar uma única tag (você pode adicionar uma nova ao criar um tópico), mas consegui usar o upload em lote de tags para fazer isso.

Algo como isto:

const formData = new FormData();
formData.append("file", Buffer.from("the-tag-name,an-optional-tag-group"), {
  contentType: "text/csv",
  filename: "tags.csv",
});
const { data } = await axios.post(`${process.env.DISCOURSE_URL}/tags/upload.json`, formData, {
  headers: {
    ...formData.getHeaders(),
    "Api-Key": process.env.API_KEY,
  },
});
2 curtidas

Entendo, é possível ver como o tags.csv se parece?

Veja What CSV format is needed for importing tags?

2 curtidas

Estava explorando um caso de uso semelhante com tags de um grupo de tags sendo obrigatórias e praticamente usadas como estrutura de nível superior (substituindo categorias).

No momento, as tags apenas têm seu nome armazenado em um atributo de dados. Seria ótimo se o grupo delas também fosse armazenado em um atributo. Assim, poderíamos distinguir os grupos de tags na experiência do usuário.

editar: postei uma solicitação de recurso para isso: Add a data-tag-group attribute for tags

1 curtida

Desculpe por fazer muitas perguntas, mas estou curioso sobre outra funcionalidade relacionada a tags e tópicos.

É possível “fixar” um tópico em uma tag específica, de modo que, quando a tag for selecionada, a primeira coisa que os usuários verão na lista de tópicos será o tópico fixado?

Você não pode fixar um tópico em uma tag a partir da modal de fixação padrão. Duas opções que conheço:

2 curtidas

A segunda opção parece ser exatamente a solução que procuro. É possível definir programaticamente esses tópicos de banner para cada tag por meio de alguma API?

Eu não saberia como fazer isso. Uma coisa a se ter em mente é que parece um pouco lento para renderizar. Eu não sou um desenvolvedor o suficiente para explicar ou até mesmo entender o porquê, mas isso pode deixar seu fórum lento se você o usar para todas as páginas.

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.