Discourse Open Graph

Patrocinado por Netwrix

:information_source: Resumen Actualiza tus datos de Open Graph mediante programación y mejora tu SEO
:hammer_and_wrench: Enlace del Repositorio GitHub - discourse/discourse-open-graph
:open_book: Guía de Instalación Cómo instalar plugins en Discourse

Características

Este plugin te permite anular tus etiquetas de Open Graph, Twitter, título y descripción.

Configuración

Este plugin viene con una sola configuración: Open graph overrides (Anulaciones de Open Graph), que se abre en esta ventana modal:

Tienes una propiedad URL, que coincidirá y se utilizará para anular tus etiquetas meta; este será tu ID.

Title (Título): Anulará las etiquetas title, og:title y twitter:title. Si está vacío, se utilizará el valor original por defecto.

Description (Descripción): Anulará las etiquetas description, og:description y twitter:description. Si está vacío, se utilizará el valor original por defecto.

Ajustes

Incluye una tabla de ajustes y descripciones de los ajustes.

Nombre Descripción
discourse_open_graph_enabled Habilita el plugin de Open Graph
open_graph_overrides Editor para tus anulaciones
8 Me gusta

Me entusiasma mucho que esto exista. Sin embargo, el pensamiento que se me ocurrió fue: ¿funciona esto para los temas?

Supongo que no, porque entonces uno podría tener que escribir manualmente la información de Open Graph para cada tema.

Luego pensé: ¿y si la descripción del tema fuera generada automáticamente por Discourse AI resumiendo el tema?

Tal vez usando Discourse AI Topic Summary 🤖

El título podría ser el mismo y la descripción el resumen de la IA. Y tal vez se pueda ajustar si la gente quiere editarlo, similar a como se hace en WordPress con Yoast.

¿Alguna idea sobre esto?

1 me gusta

¡Creo que sí! Pero sería necesario agregar una anulación para cada tema.

Quizás esta podría ser una característica para Resumen de Temas de IA: podría anular el contenido de metadatos basándose en si tenían el resumen de IA en el tema mismo.

Algo de pseudocódigo, inspirado en este fragmento del plugin Open Graph:

  register_modifier(:meta_data_content) do |content, property, opts|
    next content if property == :url # no queremos anular la url
    url = opts[:url]
    override = Topic.find_by_url(url)[:ai_meta_data_override]
    if override
      content = override[property] if override[property] # puede ser :title o :description
    end
    content
  end
2 Me gusta

No es necesario incorporar IA aquí; todo lo que necesitas para imágenes OG dinámicas es poder pasar parámetros del tema a la URL, como ?title=Hola+Mundo&date=2025-04-27

Podría ser un sistema de plantillas como {{topic.author.username}} o lo que consideres apropiado aquí.

Eso permitirá al usuario conectarse a cualquier servicio existente que genere imágenes OG, o conectarse a uno propio, o a una oferta futura de Discourse si deseas soporte de primera clase.

1 me gusta

Como alguien bastante nuevo en Discourse, ¿no se puede hacer esto ya en la configuración de Discourse?

2 Me gusta

Con esta precisión (regexing) no.

Y eventualmente podríamos añadir imágenes dinámicamente.

2 Me gusta

Oh, está bien, ¿te importaría darme un caso de uso en el que te gustaría anular la configuración? ¿Es cuando compartes un enlace de tu foro, por ejemplo, un tema que se verá diferente o principalmente por motivos de SEO?

2 Me gusta

¡Claro! Un muy buen ejemplo es la página de lista de categorías:

Podemos anular tanto el título como la descripción para que sean más descriptivos.

O para temas muy específicos que quieras tener un texto diferente al compartir en redes sociales:

Podríamos cambiarlo para que sea solo el título y algún tipo de descripción breve.

2 Me gusta

Eso es muy bueno. Sé que algunas empresas tienen imágenes dinámicas impresionantes añadidas a Open Graph para hacerlo más atractivo. Espero que esta función se añada al núcleo de Discourse o como un plugin estándar. ¡Gran trabajo!

2 Me gusta

Sí, me encantaría conectarlo al servicio placid.app que uso y que devuelva la imagen que luego se utiliza.

Quizás juegue con él cuando tenga algo de tiempo libre.

2 Me gusta