Topic List Previews (legacy)

Видите ли вы lightboxes в файле latest.json под каждым кратким описанием темы? У меня есть подозрение, что Discourse включает это нежелательное HTML-содержимое в сериализованное краткое описание.

1 лайк

Сегодня я обновился до последних версий Discourse и TLP и заметил небольшую, но раздражающую проблему: при клике на некоторые темы происходит «вспышка» или перезагрузка. Вот видео, демонстрирующее этот эффект:

Я обнаружил, что причина в TLP, после проведения нескольких тестов в безопасном режиме и пересборки на моём тестовом сервере. Также я наблюдал тот же эффект на некоторых других сайтах, использующих TLP.

Для воспроизведения:

  1. Перейдите на Blenderartists.org
  2. Кликните на тему с ответами (эффект кажется более выраженным при большем количестве ответов)

Вы также увидите это на следующих сайтах:

После удаления плагина TLP и пересборки «вспышка» исчезает.

1 лайк

Да, об этом сообщалось выше, и я ответил. Есть ли у вас представление о том, как долго это происходит с вашей точки зрения?

Похоже на какую-то странную проблему с Ember (см. выше).

На данном этапе у меня нет решения. URL-адреса генерируются шаблоном Core (не TLP) и соответствуют требованиям. Это также происходит на TC.

1 лайк

Ой, извините, я не заглядывал так далеко назад. Я не обновлялся два месяца (версия 2.7.0.beta1) и заметил это только после сегодняшнего обновления.

2 лайка

Миниатюра не отображается, хотя ссылка почти идентична (полностью совпадает, если вы не читали тему)?

Вот код TLP:

Вот ядро:

Заметите разницу?!

Meta vanilla:

Пример TLP:

Ответы на открытке?

1 лайк

Я не знаю, как работают ссылки в Discourse; они определённо не ведут себя как «обычные» гиперссылки, поскольку вы не покидаете приложение. То, что я заметил: «вторичная загрузка» кажется значительно медленнее. Мне кажется, что после клика по ссылке сначала срабатывает «ссылка внутри приложения», которая быстро загружает контент. На фоне, одновременно, начинается полная перезагрузка страницы, которая требует перезагрузки всего приложения и происходит гораздо медленнее. Не может ли быть так, что к ссылке, помимо атрибута a href, добавлен слушатель событий или обработчик onclick?

1 лайк

Ссылка на заголовок TLP каким-то образом заставляет фреймворк Ember и браузер выполнять полную перезагрузку страницы, тогда как стандартное приложение Discourse просто отправляет XHR-запрос (без обновления страницы). Клик по миниатюре в TLP при этом работает корректно. Я почти уверен, что раньше такого не было, это очень странно.

1 лайк

Сюжет усложняется: браузер сам принимает это решение?

На Meta проблем нет:

image

1 лайк

О, я, кажется, понимаю, в чём дело! Вся поверхность реагирует на клики. Возможно, она «раздражается» от двойного клика. Я проверю.

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

2 лайка

OK @bartv @_diondiondion

Это должно быть исправлено в плагине: FIX: remove topic list item click event to prevent transition conflict · merefield/discourse-topic-previews-sidecar@6064a59 · GitHub
и в теме TC: FIX: remove click event from topic list item component to prevent con… · merefield/discourse-tc-topic-list-previews@7fbe8ca · GitHub

3 лайка

Кажется, что изображение плитки накладывается, когда краткое описание содержит ссылку “inline-onebox”.

“excerpt”: “source: <a href="https://t.co/WMHOR1b1cm\” class="inline-onebox">https://twitter.com/gintarosu/status/1304621851075731457/photo/1 …",

Если я редактирую пост и начинаю новую строку перед ссылкой, проблема наложения исчезает.

“excerpt”: “source: \n<a href="https://t.co/WMHOR1b1cm\” class="onebox" target="_blank" rel="noopener">https://twitter.com/gintarosu/status/1304621851075731457/photo/1 \n ",


Краткое описание содержит ссылку “lightbox”, если в верхней части поста есть изображение. Размер шрифта и стиль текста краткого описания меняются после изображения, но это не вызывает наложения изображения плитки.

“excerpt”: “<a class="lightbox" href="https://whatever.hk/uploads/default/original/2X/c/c42ca98cb9b3b6c6401c89940259cdc84800c70d.jpeg\” data-download-href="https://whatever.hk/uploads/default/c42ca98cb9b3b6c6401c89940259cdc84800c70d\" title="image_title">\n text ",

1 лайк

Вы можете попробовать скрыть якорь с классом lightbox в CSS.

1 лайк

Большое спасибо за вашу помощь. :grinning:

Что касается проблемы со стилем шрифта, сейчас я добавил размер шрифта и цвет во все CSS-темы для блоков с деталями темы, кратким содержанием темы и ссылкой «ещё» в кратком содержании. Похоже, это решило проблему. :smiling_face_with_three_hearts:

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

2 лайка

Да, это помогло, спасибо, Роберт!

2 лайка

Да, я согласен. Я не хочу переопределять бэкенд, так как это должно оставаться нативным. Также я не хочу применять JavaScript для его удаления. CSS — правильный вариант на данный момент, если он работает.

Не стесняйтесь поделиться своим CSS с сообществом здесь :).

1 лайк

Я просто установил размер шрифта и цвет для topic-details, topic-excerpt и topic-excerpt-more. Это предотвращает различия в стиле шрифта в отрывке до и после изображения. :grinning:

.tiles-style .topic-details {
font-size: 14px;
color: var(--primary-high);
}

.tiles-style .topic-excerpt {
font-size: 14px;
}

.tiles-style .topic-excerpt-more {
font-size: 15px;
color: var(--tertiary);
}
2 лайка

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

Вот ответ, который приходит при нажатии кнопки «Выбрать миниатюру»:

1 лайк

Быстрое решение проблемы с «пробелом» заключается в следующем:

.topic-list .topic-excerpt {
    padding-right: 0px;
}

Подозреваю, что это наследие режима без плиток. Возможно, я добавлю это в CSS для плиток.

2 лайка

Да, это не на 100% идеально.

Вот текущий набор критериев. Если вы заметите очевидное упущение, я с радостью рассмотрю его, но этот набор очень близок к тому, который используется в основной логике Discourse.

2 лайка

Ха, конечно, ТЕПЕРЬ всё работает :facepalm:

2 лайка