Utiliser Discourse comme plateforme de critique/discussion de comics

J’ai un cas d’utilisation un peu spécifique pour lequel je ne suis pas sûr que Discourse soit le bon support.

Je voudrais héberger une plateforme de discussion autour de 5000-7000 bandes dessinées. Cependant, je ne veux pas que toutes les discussions soient sous un seul sujet, car il est difficile de suivre différents sujets de discussion sous la même bande dessinée. J’ai donc pensé que je pourrais créer une « catégorie » pour chaque bande dessinée et qu’il pourrait y avoir des sujets distincts en dessous. De plus, j’ai lu que cela pouvait surcharger le serveur et le client.

Notez que la navigation n’est pas un problème, chaque bande dessinée a un identifiant unique que les membres de la communauté connaissent, donc personne ne naviguera dans les catégories. L’utilisateur tapera simplement l’identifiant pour trouver la catégorie.

Existe-t-il une meilleure façon d’accomplir une fonctionnalité similaire ? L’utilisation de tags aiderait-elle ?

1 « J'aime »

Pour faire court : oui, c’est la voie à suivre.

1 « J'aime »

Puis-je forcer l’utilisation de tags dans chaque publication ? Idéalement, le forum ne devrait rien contenir qui n’appartienne à aucune des bandes dessinées.

1 « J'aime »

Voir les paramètres de Catégorie - Balises :

3 « J'aime »

Puis-je remplir programmatiquement des balises ? Une idée que j’ai eue était de créer un sujet pour chaque balise (je suppose que c’est la seule façon de créer une balise), mais je n’ai pas trouvé beaucoup d’informations sur la génération procédurale de sujets.

C’est exactement ce que je fais sur ma communauté de jeux de société : chaque fois qu’un jeu de société est ajouté (ou renommé) dans ma base de données, une étiquette et deux sujets personnalisés sont créés/mis à jour.

Si ma mémoire est bonne, lorsque j’ai travaillé sur cela, il n’y avait pas de point de terminaison spécifique pour créer une seule étiquette (vous pouvez en ajouter une nouvelle lors de la création d’un sujet), mais j’ai pu utiliser le téléchargement par lots d’étiquettes pour le faire.

Quelque chose comme ceci :

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 « J'aime »

Je vois, est-il possible de voir à quoi ressemble tags.csv ?

Voir What CSV format is needed for importing tags?

2 « J'aime »

J’explorais un cas d’utilisation similaire avec des tags d’un groupe de tags requis et pratiquement utilisés comme structure de niveau supérieur (remplaçant les catégories).

Actuellement, les tags n’ont que leur nom stocké dans un attribut de données. Il serait formidable que leur groupe soit également stocké dans un attribut. Ainsi, nous pourrions distinguer les groupes de tags dans l’expérience utilisateur.

modification : j’ai publié une demande de fonctionnalité à ce sujet : Add a data-tag-group attribute for tags

1 « J'aime »

Désolé de poser autant de questions, mais je me demande s’il existe une autre fonctionnalité liée aux tags et aux sujets.

Est-il possible d’« épingler » un sujet à un tag spécifique de telle sorte que lorsque le tag est sélectionné, la première chose que les utilisateurs verront dans la liste des sujets est le sujet épinglé ?

Vous ne pouvez pas épingler un sujet à une étiquette à partir de la fenêtre contextuelle d’épinglage par défaut. Deux options dont j’ai connaissance :

2 « J'aime »

La deuxième option semble être la solution exacte que je recherche. Est-il possible de définir par programme ces sujets de bannière pour chaque balise via une API ?

Je ne saurais pas comment faire cela. Une chose à garder à l’esprit est qu’il semble un peu lent à rendre. Je ne suis pas assez développeur pour expliquer ou même comprendre pourquoi, mais cela pourrait ralentir votre forum si vous l’utilisez pour chaque page.

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