主题列表预览(旧版)

你能在每个主题的摘要下的 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 个赞

好的 @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 个赞

您可以尝试在 CSS 中隐藏带有 lightbox 类的锚点。

1 个赞

非常感谢您的帮助。:grinning:

关于字体样式问题,目前我已在所有主题 CSS 中为 tiles-style 的 topic-details、topic-excerpt 和 topic-excerpt-more 添加了 font-size 和 color。这似乎解决了问题。: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 个赞

哈,当然现在它才管用:脸palm。

2 个赞