Система встраивания в Discourse позволяет отображать комментарии к темам на внешних сайтах через iframe, но до сих пор этот функционал был доступен только для чтения. Посетителям приходилось переходить на ваш сайт Discourse, чтобы ответить, поставить лайк или взаимодействовать с обсуждением.
Мы добавили полный режим приложения для встраивания, который загружает полное приложение Discourse внутри iframe. Ваши посетители могут отвечать, ставить лайки, цитировать и взаимодействовать с темами, не покидая ваш блог или веб-сайт.
Перейдите в раздел Администрирование > Дополнительно > Встраивание, и вы увидите новый переключатель в верхней части страницы для включения полного режима приложения.
При включении:
Фрагмент конфигурации встраивания автоматически включает параметры fullApp: true и embedHeight: '800px'
Настройка сайта для включения этого режима автоматически активируется
Эта настройка также доступна на вкладке Встраивание > Настройки под именем embed_full_app.
Что изменится для посетителей
При включенном полном режиме приложения встроенный iframe загружает полный интерфейс Discourse вместо статического списка ответов. Посетители на вашем внешнем сайте смогут:
Отвечать на тему напрямую
Ставить лайки и цитировать сообщения
Перемещаться внутри темы так же, как на вашем форуме
Это обеспечивает вашим читателям блога полноценный опыт обсуждения без необходимости покидать страницу.
Это потрясающе! Хотя возможность редактировать прямо на исходной странице сама по себе приятна, с моей точки зрения, ещё большим улучшением является то, что математика отображается во встроенной версии! С нетерпением жду возможности использовать это на своём сайте.
Чтобы попробовать, я перешёл к одной из демонстрационных тем, на которые вы дали ссылку, и заметил несколько небольших проблем при ответе там:
Переключатель редактора Markdown/Rich не отображался в панели инструментов редактора,
После публикации я попытался отредактировать пост на сайте и получил предупреждение о том, что пост редактируется в другом окне, хотя у меня не было открыто другого окна для редактирования, и
Я не смог удалить свой ответ. Очевидно, его удалило сообщество.
Мы убрали его, а также множество других элементов интерфейса, чтобы упростить работу с встроенным редактором. Если вам это необходимо, вы можете легко вернуть эту функцию на свой сайт с помощью небольшого компонента темы.
Как и в случае с любыми новыми функциями, мы стремились найти оптимальный баланс и создали решение, которое подойдёт большинству блогов. При этом Discourse, как вы и ожидаете, остаётся полностью настраиваемым.
Кажется, что здесь три комментария. Когда я навожу курсор, я вижу крошечную серебристую полоску полосы прокрутки по умолчанию в правом верхнем углу (Firefox, Linux).
Так что, если я не знаю, что такое Discourse, я предполагаю, что сейчас есть три ответа, и что кнопка ответа рядом с именем Джей — это обычная кнопка ответа на тему. К сожалению, в результате Джей будет получать уведомления о новом ответе каждый раз, когда кто-то совершает эту ошибку.
Интересно, есть ли:
a) способ всегда показывать кнопку «Ответить на тему»?
b) способ сделать прокрутку более заметной, сохраняя при этом элегантность и ненавязчивость
Это отличные предложения. В более общем смысле, возможно, элементы интерфейса стали слишком размытыми? Когда я отвечал на вчерашний пост в блоге об уровнях доверия, мне пришлось долго прокручивать страницу, прежде чем я смог просмотреть свой ответ, так как элемент прокрутки временной шкалы отсутствует.
К сожалению, как видно на одном из ваших примеров, это всё ещё требует от пользователя прокрутки потенциально ошеломляющего количества комментариев внутри iframe (что имеет множество недостатков), прежде чем он дойдёт до конца и сможет написать комментарий первого уровня. Есть ли способ добавить комментарий, который не является ответом, прямо сверху?
Можно ли добавить домены в белый список? (Чтобы встраивание было возможно только с наших доменов)
Будет ли загружаться полное приложение Discourse на каждой странице, где есть встраивание, или оно останется в памяти после первой загрузки? Например, если у меня есть mydomain.com/page1, /page2, /page3 и т.д., придется ли загружать его заново для всех страниц?