主题列表预览(TLP)

不过,无论如何,该组件似乎尚未针对 Glimmer 主题列表进行更新:

3 个赞

我很少使用手机,但我很确定这是对话的一部分。我昨天升级得很晚,用户开始抱怨。几分钟前我应用了你的修复。主题是 Discourse 默认主题。

我在这里检查过,我几乎可以肯定这里也没有使用最新的头像。

它看起来不好看。但这不仅仅是你的问题,两个相似的组件现在都显示了头像和缩略图。当然,我知道如何隐藏头像,所以这是一个简单的解决方案。

老实说,我不知道这里是不是不仅仅是(我的)品味问题。但有些东西已经改变了,否则我的用户不会开始询问。我现在有点早,因为这里才早上 6 点,我还没有得到任何关于实际出了什么问题的确认。

1 个赞

这不是预期行为,恕我直言,这看起来很糟糕,但是我无法重现。

根据我的截图,我的实例上没有发生这种情况。

请确保没有其他组件影响主题列表的显示。这现在是一个 API,如果激活了其他组件,它们可能会干扰。然后看看它是否仍然存在。如果存在,请分享您的设置。

1 个赞

另外,这个主题组件从未设计成与其他影响主题列表的组件兼容,因此您可以随意尝试组合,但不能保证兼容性。

1 个赞

当然,我忘了告诉你,但我一收到就尝试了,这是唯一的组件。因为我相信你使用的是最新的 Discourse,所以我不得不问,你认为这有可能是某个插件引起的吗?

这可能是我遗漏的边缘案例。你能分享一个主题列表项(整行)的HTML吗?

或者私信我网页链接

这么多?

html snippet
<tr data-creator-name="Jagster" id="ember42" class="topic-list-item category-chattifoorumi tag-meemit has-excerpt visited ember-view">
<div class="hidden">
<div class="hidden">
<td class="topic-list-data">
<div class="pull-left">
<a href="/t/meemit-ja-muut-tuplavitsit/1263/549" aria-label="Jagster 用户个人资料,最后发言者" data-user-card="Jagster">
<img alt width="48" height="48" src="/user_avatar/foorumi.katiska.eu/jagster/96/6057_2.png" class="avatar" title="Jagster">
</a>
</div>
<div class="topic-item-metadata right">
<span id="_render_glimmer_25" class="hbr-ember-outlet">
<div class="topic-thumbnail">
<a>
<img class="thumbnail non-tiles-thumbnail" src="https://cdnfoorumi.katiska.eu/optimized/2X/b/b5fdeed33ad48a86cc12ecb1fb0acfc55f62247c_2_536x800.jpeg" loading="lazy">
</a>
</div>
</span>
<div class="main-link">

哦天哪……看起来糟透了。难以阅读。

不过,网址反正也是公开的,而且我不认为一个完整的芬兰论坛会引起任何兴趣——万一有人觉得链接是垃圾信息,之后再编辑也很容易。

https://foorumi.katiska.eu (我们还是别惊动自动系统了)然后向下滚动几行。你就能找到它。如果你想要更干净的视图,主题 测试 是个不错的选择。

2 个赞

好的。
出问题的行是:

<tr> data-creator-name="Jagster" id="ember42" class="topic-list-item category-chattifoorumi tag-meemit has-excerpt liked visited ember-view">

该类应该包含 has-thumbnail 才能让 CSS 隐藏头像……

我再仔细检查一下这个分配是否在最新的 discourse 上生效。

2 个赞

基本上它做了同样的事情,但更短,并且有条件地,我用于手机的是什么?

.topic-list td div.pull-left a {
    display: none;
}
.topic-list td div.right {
    margin-left: 0px;
}
1 个赞

是的:

1 个赞

在最新的提交中,无论是在家里的最新版本还是在分类中,我都无法重现您的问题。:frowning:

请确保“Glimmer 主题列表”设置已启用,而不是自动?

1 个赞

它是在自动模式 :flushed_face: 我会更改它。

编辑

哦,该死——原来是这样。

所以自动(包括启用)不等于启用。是否有某个机制需要明确告知 Glimmer 没问题,除非它回退到旧系统?

3 个赞

这非常有用的信息。

而且令人惊讶!至少我的设置说明是正确的 :slight_smile:

我会和 David 核实一下。

2 个赞

目前,有这个:

我相信它认为某些东西不兼容,因此它会回退到旧系统。

3 个赞

是的,完全正确。“自动”将与“启用”相同,前提是您所有已安装的主题和插件都与升级兼容

如果它们不兼容,那么它将表现得像“禁用”,并且会在浏览器控制台中打印一条消息,解释哪个主题/插件需要升级。

对于我们的官方主题/插件,我们已使其同时兼容旧版和新版主题列表实现,以便用户可以逐个升级其他主题和插件,而无需担心站点设置。一旦最后一个主题/插件准备就绪,实现切换将自动发生。

但是,确保向后兼容性需要大量工作,尤其是在复杂情况下。所以我明白为什么它被跳过了 topic-list-previews :+1:

您可以在这里做一件事 @robert,为人们添加一个清晰的错误提示?类似这样:

import { withSilencedDeprecations } from "discourse/lib/deprecated";

...

withSilencedDeprecations("discourse.hbr-topic-list-overrides", () => {
    api.modifyClass("component:topic-list", {
      init(){
        alert("topic-list-previews 不能与不兼容闪光主题列表的其他主题/插件同时运行。详情请参阅 https://meta.discourse.org/t/209973/521");
        return this._super(...arguments);
      }
    });
  });

这将修改旧版主题列表,以便在与 topic-list-previews 同时运行时弹出错误。

5 个赞

非常有用的,谢谢,我会添加的。

是的,我必须理性地考虑我花费的时间 :sweat_smile: 所以放弃了向后兼容性。

不过,更新已固定,所以是折衷方案。

3 个赞

谢谢你,David,我在我的主题组件中使用了这个。但在我发现这个之前,我在已解决的插件仓库中使用了site.useGlimmerTopicList,它似乎也可以正常工作。这也是个不错的选择吗?我在初始化程序和模板中使用了它。

2 个赞

[引用=“Don, 发布:547, 主题:209973”]
我使用了site.useGlimmerTopicList,似乎也有效。这个也是一个不错的选择吗?
[/引用]
目前来说还可以,但一旦Glimmer话题列表成为唯一选项,它将被删除(即变成undefined)。所以请确保你这样使用

if(!site.useGlimmerTopicList){
  // 执行旧的操作
}

而不是

if(site.useGlimmerTopicList){
  // 执行新的操作
}
4 个赞

顺便说一句,已添加:

非常感谢。

@Jagster 如果您有时间,能否请您更新一下,将其设置为“自动”并检查是否会弹出此信息?

3 个赞

顺便说一句,@david 仅供参考,我认为还需要 eslint 抑制?(还有 pluginId)

2 个赞