Usando Discourse como plataforma de revisión/discusión de cómics

Tengo un caso de uso un poco específico para el que no estoy seguro de si Discourse es el medio adecuado.

Me gustaría alojar una plataforma de discusión para unos 5000-7000 cómics. Sin embargo, no quiero que todas las discusiones estén bajo un solo tema, ya que es difícil rastrear diferentes temas de discusión dentro del mismo cómic. Por lo tanto, pensé que podría crear una “Categoría” para cada cómic y que pudiera haber temas separados debajo. Además, leí que esto puede generar una carga tanto en el lado del servidor como en el del cliente.

Tenga en cuenta que la navegación no es un problema, cada cómic tiene un identificador único que los miembros de la comunidad conocen, por lo que nadie navegará por las categorías. El usuario simplemente escribirá el identificador para encontrar la categoría.

¿Hay una mejor manera de lograr una funcionalidad similar? ¿Ayudaría el uso de etiquetas?

1 me gusta

En resumen: sí, esa es la forma de proceder.

1 me gusta

¿Puedo forzar el uso de etiquetas en cada publicación? Porque idealmente, el foro no debería contener nada que no pertenezca a ninguno de los cómics.

1 me gusta

Ver la configuración de Categoría - Etiquetas:

3 Me gusta

¿Puedo poblar etiquetas mediante programación? Una idea que tuve fue crear un tema para cada etiqueta (supongo que es la única forma de crear una etiqueta), pero no pude encontrar mucha información sobre la generación de temas de forma procedural.

Eso es exactamente lo que hago en mi comunidad de juegos de mesa: cada vez que se añade (o se renombra) un juego de mesa en mi base de datos, se crea/actualiza una etiqueta y dos temas personalizados.

Si mal no recuerdo, cuando trabajé en esto, no había un punto final específico para crear una sola etiqueta (aunque puedes añadir una nueva al crear un tema), pero pude usar la carga masiva de etiquetas para hacerlo.

Algo como esto:

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 Me gusta

Entiendo, ¿es posible ver cómo se ve tags.csv?

Ver What CSV format is needed for importing tags?

2 Me gusta

Estaba explorando un caso de uso similar con etiquetas de un grupo de etiquetas que son obligatorias y prácticamente se usan como estructura de nivel superior (reemplazando categorías).

En este momento, las etiquetas solo tienen su nombre almacenado en un atributo de datos. Sería genial si su grupo también se almacenara en un atributo. Así podríamos distinguir los grupos de etiquetas en la experiencia de usuario.

editar: publiqué una solicitud de función para esto: Add a data-tag-group attribute for tags

1 me gusta

Lamento hacer muchas preguntas, pero me pregunto sobre otra funcionalidad relacionada con las etiquetas y los temas.

¿Es posible “fijar” un tema a una etiqueta específica de tal manera que, cuando se seleccione la etiqueta, lo primero que los usuarios vean en la lista de temas sea el tema fijado?

No puedes fijar un tema a una etiqueta desde el modal de fijación predeterminado. Dos opciones que conozco:

2 Me gusta

La segunda opción parece la solución exacta que estoy buscando. ¿Es posible configurar programáticamente estos temas de banner para cada etiqueta a través de alguna API?

No sabría cómo hacerlo. Una cosa a tener en cuenta es que parece un poco lento de renderizar. No soy suficiente desarrollador para explicar o incluso entender por qué, pero podría ralentizar tu foro si lo usas para cada página.

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