Что делает сайт совместимым с предпросмотром onebox?

Я хотел бы помочь разработчикам следующего фреймворка на Python обеспечить совместимость с onebox для нашего экземпляра Discourse, чтобы способствовать его продвижению:

https://docs.sunpy.org/en/v3.0.0/whatsnew/3.0.html

Так что же делает сайт совместимым с onebox? Я поискал onebox в Google и попал на эту страницу на GitHub: GitHub - discourse/onebox: (DEPRECATED) A gem for turning URLs into website previews · GitHub, но для упомянутого мной фреймворка они используют Sphinx для автоматической генерации некоторых страниц. Существуют ли какие-то настройки, которые разработчики могут задать в Sphinx, чтобы сделать их страницу совместимой с onebox?

Если вы попытаетесь вставить ссылку https://docs.sunpy.org/en/v3.0.0/whatsnew/3.0.html в отдельной строке, вы увидите следующее сообщение:

Извините, нам не удалось сгенерировать предварительный просмотр этой веб-страницы, так как не удалось найти следующие теги oEmbed / OpenGraph: description, image

На этой странице тег метаданных OpenGraph description пуст, поэтому мы не можем его встроить. Также для некоторых других тегов OpenGraph, таких как image и url, используются относительные URL-адреса, и я не уверен, поддерживается ли это.

Итак, я переслал эту информацию команде разработчиков SunPy. Они протестировали исправление на этой странице: https://sunpy--5366.org.readthedocs.build/en/5366/. Сервис opengraph.xyz подтвердил, что все теги определены в HTML-файле:

<!-- HTML Meta Tags -->
<title>Документация SunPy</title>
<meta name="description" content="Документация SunPy">

<!-- Facebook Meta Tags -->
<meta property="og:description" content="Документация SunPy">
<meta property="og:image" content="https://raw.githubusercontent.com/sunpy/sunpy-logo/master/generated/sunpy_logo_word.png" />
<meta property="og:site_name" content="Документация SunPy" />
<meta property="og:title" content="Документация SunPy">
<meta property="og:type" content="website">
<meta property="og:url" content="https://docs.sunpy.org/en/stable//index.html" />

<!-- Twitter Meta Tags -->
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:description" content="Документация SunPy">
<meta name="twitter:image" content="https://raw.githubusercontent.com/sunpy/sunpy-logo/master/generated/sunpy_logo_word.png">
<meta name="twitter:title" content="Документация SunPy">
<meta property="twitter:domain" content="https://docs.sunpy.org/en/stable/">
<meta property="twitter:url" content="https://docs.sunpy.org/en/stable//index.html">

Тем не менее, в нашем экземпляре Discourse это всё ещё не работает, и по-прежнему появляется ошибка: oEmbed / OpenGraph tags could not be found:description, image

Что они могут не замечать? Вот наша ветка на GitHub, посвящённая этой проблеме: onebox-compatible documentation for promoting SunPy's features and updates · Issue #5362 · sunpy/sunpy · GitHub

Это действительно запись? Описание должно быть длиннее и содержать часть реального содержимого страницы, а не заглушку вроде «Документация SunPy».

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