Был Reddit, который пошёл по тому же пути. Обсуждения действительно находятся под угрозой (никто не слушает, пока не станет слишком поздно, как почти всегда).
У нас точно есть Discourse ![]()
Был Reddit, который пошёл по тому же пути. Обсуждения действительно находятся под угрозой (никто не слушает, пока не станет слишком поздно, как почти всегда).
У нас точно есть Discourse ![]()
Это особенность. Чтобы предотвратить многократную загрузку iframe во время редактирования, я не позволил включить компонент в режиме редактирования.
После установки я заметил, что при переходе к теме сначала открывается «последнее сообщение», затем загружается встроенный твит, и страница автоматически прокручивается назад на несколько сообщений. Это происходит каждый раз.
Есть ли решение этой проблемы?
У нас всё ещё проблема… встраивание пока не работает, хотя всё кажется настроенным… есть какие-нибудь идеи?
Этот компонент темы не использует Twitter API, поэтому в этом аспекте вы не будете ограничены.
Однобокс Twitter был изменён согласно этому коммиту: FIX: Use Twitter API v2 for oneboxes and restore OpenGraph fallback (… · discourse/discourse@24c9053 · GitHub
Я попробовал этот компонент темы на своём тестовом экземпляре, и медиа не отображается:
Это связано?
Этот компонент темы будет работать только в том случае, если onebox не работает
Отлично
.
Я протестировал, и если однобокс не работает корректно (например, не отображает медиа), то необходимо добавить twitter.com в заблокированные домены для однобокса, чтобы компонент работал. ![]()
Было:
Стало:
Я не широко использовал компонент темы и не сталкивался с этой проблемой, но, по моему предположению, Discourse не знает, какой высоты будет iframe Twitter до загрузки контента. Когда iframe загружается, он сдвигает окружающий контент, создавая такое поведение.
Можете снять видео этого процесса?
Однострочный блок снова начал работать для твитов, переопределяя этот компонент. Кто-нибудь заметил это сегодня?
Я запустил пересборку приложения примерно 10 часов назад, текущая версия 3.1.0.beta5 (09feb03056)
Так что это может быть связано с внезапным откатом.
На самом деле мне больше нравится, как работает этот компонент для твитов. Есть ли способ исключить твиты из однострочного отображения?
В настройках я вижу «Разрешённые iframe для однострочного блока», однако я не могу перечислить все возможные src, которые хочу, чтобы просто исключить Twitter. Есть ли способ отключить один или несколько src таким образом? Если нет, то как насчёт этого?
Или, возможно, что-то снова изменилось на стороне Twitter, и всё это совпадение.
Заметил ли это кто-нибудь ещё? @Lhc_fl
@jancernik исправил это после недавних изменений в API Twitter ![]()
Да, именно так. Именно поэтому мы не используем «официальный» виджет Twitter в ядре Discourse — он заставляет темы «прыгать» по мере загрузки iframe.
Эх, надо было прочитать последние несколько постов! ![]()
Да, скачки в темах очень заметны, но честно говоря, я предпочитаю нативный стиль Twitter и отображение родительского твита в ответе. Это избавляет от необходимости публиковать две ссылки на Twitter. Да, иногда текст обрезается, но автор компонента не получит от меня никаких претензий. Я благодарен за альтернативное решение, любые улучшения — это бонус.
Именно так я и думал, что это снова произошло. Это всплывало в различных сборках, насколько я помню Discourse jumps back 20 posts in post history when navigating to new topic
Есть ли способ минимизировать этот сдвиг? Он очень заметен и раздражает, если на загруженной странице несколько ссылок на Twitter. Я посмотрел код плагина и бегло ознакомился с используемым им API. Было бы полезно оценить высоту контента и установить её для элемента blockquote, чтобы уменьшить сдвиг, или всё это всё равно зависит от асинхронного JavaScript Twitter? Я не знаком с API Discourse, поэтому не знаю порядок рендеринга элементов и т. д., и у меня сейчас нет времени углубляться в это, чтобы определить, есть ли разумный способ решить эту задачу.
Этого решения мне было недостаточно, поэтому я добавлю кое-что ещё.
Нам нужно добавить что-нибудь (на самом деле, подойдёт любой случайный набор символов) в twitter consumer key и twitter consumer secret.
Скорее всего, у вас всё ещё был настроен старый API.
После этого компонент темы снова заработает.
Вероятно, у вас всё ещё был подключён старый API
Думаю, у меня его не было, но Twitter очень часто меняет поведение своего ПО (даже результат, который мы получаем через curl). Меня бы не удивило, если бы у вас недавно был другой опыт из-за этого.
Для повторения: используете ли вы компонент темы с включенными ключами потребителей и доменом twitter.com в списке заблокированных доменов для одностраничного отображения?
Насколько я помню, Twitter был в списке заблокированных доменов для onebox, и я не использовал свои учетные данные Twitter в админке. С тех пор я больше не пробовал этот компонент.
В последнем обновлении 3.6.0.beta6 для вставок Twitter снова был возвращён Onebox, несмотря на то, что twitter.com указан в blocked_onebox_domains в настройках.
Этого решения мне было недостаточно, поэтому я добавлю кое-что ещё.
Нужно добавить что-нибудь (на самом деле подойдёт любой случайный набор символов) в поля «Ключ потребителя Twitter» и «Секрет потребителя Twitter».
Возможно, у вас всё ещё был установлен старый API.
После этого компонент темы снова заработает.
В версии beta5 блоки доменов onebox были достаточны, поэтому, что бы ни изменилось в последнем обновлении, приведённый выше дополнительный совет помог снова заставить компонент отображать твиты.