您可能可以使用一些 CSS 来实现这一点。
在最后一条消息之前,我尝试了以下操作。它解决了功能字体大小的问题,但它使主页主题列表的其余部分的字体大小变得非常小。
.featured-topic {
font-size: 9px;
}
您指的是这些链接吗?

如果我更改了它,我看不到页面其余部分的任何变化。
应用上述 CSS 代码后,您可以在下面看到主题列表。字体变得非常小。

移除了 CSS 代码后,主题列表中的字体大小恢复正常。

好的。试试这个:
.featured-topic h3 a {
font-size: 9px;
}
谢谢!它奏效了!
功能请求:请添加显示主题摘要的功能
使用受限的标签组(Tag Group)时,标签功能(Tag-Feature)是否存在错误或行为异常?
我创建了一个具有以下限制的标签组:
标签对所有人可见,但只有以下组可以使用它们
- 管理员(Admins),版主(Moderators)

我将此组件的“featured”标签添加到了这个组中。
以下是我的组件设置:
当我以管理员身份创建带有“featured”标签的主题时,该标签对我、对版主可见,但对其他用户组不可见。对于其他注册用户,它只显示为:
Tag1, Tag2,
对于管理员和版主,“featured”标签会正确显示:
Tag1, Tag2, featured
另一个问题:如果标签被隐藏,我认为不应该显示逗号。这会使用户感到困惑。
另外,我不确定这是否相关,但帖子位于仅对注册用户可见、对访客(Guests)不可见的分类中。
哦,顺便说一句:感谢这个组件,工作很出色!除了这个微小的功能之外,它对我来说运行完美!
哈哈,我在搜索一个小烦恼时,竟然找到了我自己以前的帖子 ![]()
我刚刚意识到(再次),实际加载的图片与它们实际渲染的尺寸相比大得离谱。以我的情况为例,它加载的是 1000x1000 像素的图片,但渲染尺寸却不到 200 像素。
我检查了一些数据,如果我能用 400x400 像素的版本替换它们,带宽(对于特色行)大约可以节省 83%,总共节省 1.6MB。我知道这些图片有缓存,但这肯定会影响初始页面加载速度,而且我想这也不会加快页面渲染速度吧?我在论坛的每个页面上都使用了这些特色图片,所以我认为影响是实实在在的。
是否可以在 TC 的配置中添加一个选项,让我们选择使用哪种图片尺寸,这样每个人都可以根据自己的主题进行调整?
抓得好!我有一段时间没看这个组件了,所以趁机做了一次整体优化:
https://github.com/discourse/discourse-homepage-feature-component/pull/96
这次更新让图片使用了 srcset,这样系统会自动选择适合容器的图片。可以通过新的 featured_image_sizes 设置来指定可用的图片尺寸。
我还修复了 hide featured tag 设置(之前无法正常工作,导致标签始终隐藏),并将输入方式从纯文本输入改为了标签类型设置。这意味着现在可以根据需要使用多个标签。
太好了,谢谢!我认为这也解决了那个令人困惑的缺失特色标签问题。
不过有一件事:更新之后,它触发了大量的图像处理任务——我现在有超过 2 万个任务在排队。这是预期的吗?这似乎有点浪费,因为我只需要最新的 5 个。
嗯,你说得对,很遗憾没有办法避免这个问题。我认为因为这个原因,回滚那部分代码可能是值得的。我在这里进行回滚:
现实情况是,我无法通过这种方式从主题中生成一组针对优化的缩略图,只能全部处理或完全不处理。因此,我们需要其他方法来优化像这样更有限的情况。
明白了。那些不需要的缩略图之后会自动删除吗?
而且看起来我的主题已经包含了许多可能完全适用的不同图片格式——比如 400x400 或 500x500。能不能让这些尺寸可选?与当前使用的 1024x1024 相比,这已经能带来不错的带宽节省,而且不会增加额外的处理或存储开销。
(忽略由 TC 更新添加的 300x300、600x600 和 900x900 那些):
-rw-r--r-- 1 1000 www-data 723K Jun 23 21:32 80c77ac08d5671a1dc6d2a15ddea28e6d56f98c9_2_1000x1000.jpeg
-rw-r--r-- 1 1000 www-data 757K Jun 23 21:32 80c77ac08d5671a1dc6d2a15ddea28e6d56f98c9_2_1024x1024.jpeg
-rw-r--r-- 1 1000 www-data 30K Jun 23 21:32 80c77ac08d5671a1dc6d2a15ddea28e6d56f98c9_2_200x200.jpeg
-rw-r--r-- 1 1000 www-data 68K Jun 23 21:32 80c77ac08d5671a1dc6d2a15ddea28e6d56f98c9_2_300x300.jpeg
-rw-r--r-- 1 1000 www-data 118K Jun 23 21:32 80c77ac08d5671a1dc6d2a15ddea28e6d56f98c9_2_400x400.jpeg
-rw-r--r-- 1 1000 www-data 185K Jun 23 21:32 80c77ac08d5671a1dc6d2a15ddea28e6d56f98c9_2_500x500.jpeg
-rw-r--r-- 1 1000 www-data 263K Jun 23 21:32 80c77ac08d5671a1dc6d2a15ddea28e6d56f98c9_2_600x600.jpeg
-rw-r--r-- 1 1000 www-data 417K Jun 23 21:32 80c77ac08d5671a1dc6d2a15ddea28e6d56f98c9_2_750x750.jpeg
-rw-r--r-- 1 1000 www-data 470K Jun 23 21:32 80c77ac08d5671a1dc6d2a15ddea28e6d56f98c9_2_800x800.jpeg
-rw-r--r-- 1 1000 www-data 595K Jun 30 22:18 80c77ac08d5671a1dc6d2a15ddea28e6d56f98c9_2_900x900.jpeg
我想不会,因为源图像仍在被使用,而这些是优化后的版本。除了占用一些存储空间外,没有其他实际危害。
你可以从 Rails 控制台清理这些文件,这涵盖了该设置默认包含的尺寸,并且不会删除由其他地方修饰器生成的图像。
# 1. 查看实际存在的内容与仍然合法注册的内容之间的差异
still_needed = Topic.thumbnail_sizes +
ThemeModifierHelper.new(theme_ids: Theme.pluck(:id)).topic_thumbnail_sizes
TopicThumbnail.group(:max_width, :max_height).count
# 2. 移除不需要的尺寸(文件 + 记录)
[[300, 300], [600, 600], [900, 900]].each do |w, h|
next if still_needed.include?([w, h]) # 不要触碰其他东西仍在使用的尺寸
TopicThumbnail
.where(max_width: w, max_height: h)
.find_each { |tt| tt.optimized_image&.destroy! }
# 没有优化图像的尝试记录不会级联删除
TopicThumbnail.where(max_width: w, max_height: h).delete_all
end
哦,是的,好主意——我可以检查是否已经存在缩略图,如果存在,就使用最佳尺寸。如果只有原始图像可用,那将始终作为后备方案。
在这里进行:
太棒了,我今晚就测试一下!
我刚才回来是想重新提一个旧请求:是否有可能添加一个选项,按标记日期对精选行进行排序?我们的精选顺序既不是由主题的创建日期决定的,也不是由最新活动决定的——对我们来说,应该由我们应用标记的时刻来决定顺序。我之前没意识到,但我们现在的精选行有点乱糟糟的 ![]()
恐怕这不太可能……我们无法根据标签添加时间来排序主题列表。一种变通方法是编辑主题的时间戳?
别担心。我现在正用一点“胶带”临时解决这个问题:我 Fork 了你的 TC,并创建了一个 Data Explorer 查询,按标签日期排序获取精选主题,并包含图片 URL。一个小型的外部 Web 脚本加载并缓存这些数据,然后将 JSON 返回给 TC。运行起来非常完美,虽然有点丑陋 ![]()
如果任何人需要,我很乐意分享我的代码和查询。
更新:好吧,我意识到这实际上只是我问题的一半。我们还使用首页功能 TC 来展示精选艺术作品的画廊。而画廊的排序现在不再与我们精选行的排序一致,这让访问者感到困惑(也让我很恼火)。因此,画廊也需要按标签日期排序——而不仅仅是按主题创建日期或最后活动日期排序。
这时候我就“不守规矩”了,转而求助 Claude Code 来帮我。首先,我让它创建了一个小插件,添加了一个按标签日期排序标签列表的选项,比如 /tag/featured?order=tag_date。
一旦这个功能生效,我就通过在首页功能 TC 中添加 tag_date 来扩展排序选项。我还将小部件从复选框改为下拉菜单:
瞧!现在我有了一个按我期望的方式(说实话,也是我认为它应该的方式
)运行的精选行,并且画廊也与之匹配:
如果任何人想尝试,这是我的代码:
你可以在 https://blenderartists.org/ 上看到它的实际效果。
温馨提示:这些都是 Claude Code 的工作。我审查了力所能及的部分,但最终我在这方面并非专家。由于它们是我们 3D 图形社区的关键部分,我会根据需要更新这些内容。
祝玩得开心!


