Open Graph для Discourse

Спонсируется Netwrix

:information_source: Краткое описание Программное обновление данных Open Graph для улучшения SEO
:hammer_and_wrench: Ссылка на репозиторий GitHub - discourse/discourse-open-graph · GitHub
:open_book: Руководство по установке Как установить плагины в Discourse

Возможности

Этот плагин позволяет переопределять теги Open Graph, Twitter, заголовок и описание.

Конфигурация

Плагин поставляется с единственным параметром: Переопределения Open Graph, который открывает следующее модальное окно:

У вас есть свойство URL, которое будет использоваться для сопоставления и переопределения ваших мета-тегов — это будет вашим идентификатором.

Заголовок — переопределяет теги title, og:title и twitter:title. Если поле пустое, будет использоваться исходное значение.

Описание — переопределяет теги description, og:description и twitter:description. Если поле пустое, будет использоваться исходное значение.

Параметры

Таблица параметров и их описаний:

Название Описание
discourse_open_graph_enabled Включает плагин Open Graph
open_graph_overrides Редактор для ваших переопределений
8 лайков

Я очень рад, что это существует. Только что пришла в голову мысль: а работает ли это для тем?

Думаю, нет, потому что тогда, возможно, придётся вручную вводить информацию Open Graph для каждой темы.

Затем подумал: а что, если описание темы будет автоматически генерироваться ИИ Discourse, суммирующим тему?

Может быть, используя Discourse AI Topic Summary 🤖

Заголовок может оставаться прежним, а в качестве описания — сводка от ИИ. И, возможно, её можно будет редактировать, если пользователи захотят, аналогично тому, как это реализовано в WordPress с плагином Yoast.

Что думаете по этому поводу?

1 лайк

Думаю, да! Но для каждой темы потребуется добавить переопределение.

Возможно, это может стать функцией для AI Topic Summary — она могла бы переопределять содержимое метаданных, если в самой теме есть AI-резюме.

Некоторый псевдокод, вдохновленный этим фрагментом в плагине Open Graph:

  register_modifier(:meta_data_content) do |content, property, opts|
    next content if property == :url # мы не хотим переопределять url
    url = opts[:url]
    override = Topic.find_by_url(url)[:ai_meta_data_override]
    if override
      content = override[property] if override[property] # это может быть либо :title, либо :description
    end
    content
  end
2 лайка

Здесь не требуется встроенный ИИ — для динамических OG-изображений достаточно передавать параметры из темы в URL, например ?title=Hello+World&date=2025-04-27.

Это может быть шаблонная система вроде {{topic.author.username}} или любой другой вариант, который вы сочтете уместным.

Таким образом пользователь сможет подключиться к любому существующему сервису генерации OG-изображений, использовать собственный сервис или обратиться к будущему предложению от Discourse, если вы захотите обеспечить поддержку первого класса.

1 лайк

Как человек, относительно новый в Discourse, неужели это уже нельзя сделать в настройках Discourse?

2 лайка

С такой точностью (регулярные выражения) — нет.

И в конечном итоге мы могли бы добавлять изображения динамически.

2 лайка

О, понятно. Не могли бы вы привести пример ситуации, когда вы хотели бы переопределить настройки? Это происходит, когда вы делитесь ссылкой с вашего форума, например, темой, которая будет выглядеть иначе, или это в основном связано с вопросами SEO?

2 лайка

Конечно! Отличный пример — страница списка категорий:

Мы можем переопределить как заголовок, так и описание, сделав их более подробными.

Или для очень конкретных тем, для которых вы хотите указать другой текст при публикации в социальных сетях:

Мы могли бы изменить это, оставив только заголовок и какое-то краткое описание.

2 лайка

Это очень круто. Я знаю, что некоторые компании используют впечатляющие динамически добавляемые изображения для Open Graph, чтобы сделать их более привлекательными. Надеюсь, эта функция будет добавлена в ядро Discourse или станет стандартным плагином. Отличная работа!

2 лайка

Да, я бы хотел интегрировать это с сервисом placid.app, который я использую, чтобы получать изображение, которое затем будет использоваться.

Возможно, я попробую это сделать, когда у меня появится свободное время.

2 лайка