# 主题列表预览（TLP）

**URL:** <https://meta.discourse.org/t/topic-list-previews-tlp/209973>\
**Category:** Theme component\
**Created:** [2021年十一月23日 12:25 UTC](https://meta.discourse.org/t/topic-list-previews-tlp/209973 "2021-11-23T12:25:59Z")\
**Posts on this page:** 20\
**Page:** 16

<div class="post-metadata">

**Author:** ![merefield](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/merefield/32/176214_2.png) [@merefield](https://meta.discourse.org/u/merefield)\
**Post date:** [2023年五月6日 09:34 UTC](https://meta.discourse.org/t/topic-list-previews-tlp/209973/307 "2023-05-06T09:34:01Z")

</div>

> [@jordan-violet](#):
>
> 不是一个标准的theme component？

它不是一个theme component。如果它是，它就会被集成。它是一个插件，其目的是修改/扩展/改进核心API，而这仅凭一个theme component是无法实现的。

---

<div class="post-metadata">

**Author:** ![jordan-violet](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jordan-violet/32/281428_2.png) [@jordan-violet](https://meta.discourse.org/u/jordan-violet)\
**Post date:** [2023年五月6日 09:34 UTC](https://meta.discourse.org/t/topic-list-previews-tlp/209973/308 "2023-05-06T09:34:30Z")

</div>

感谢所有回复！谢谢你这么棒的插件，Robert 🙂

---

<div class="post-metadata">

**Author:** ![merefield](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/merefield/32/176214_2.png) [@merefield](https://meta.discourse.org/u/merefield)\
**Post date:** [2023年五月6日 09:37 UTC](https://meta.discourse.org/t/topic-list-previews-tlp/209973/309 "2023-05-06T09:37:17Z")

</div>

没问题。值得指出的是，如果侧边栏足够大，列数会自动减少，您可以将其设置为只有一列，这可能会缓解您对可变高度的担忧。

您可以尝试使用我们的 Layouts 插件或核心的 sidebar 和 sidebar blocks 主题组件。

---

<div class="post-metadata">

**Author:** ![jordan-violet](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jordan-violet/32/281428_2.png) [@jordan-violet](https://meta.discourse.org/u/jordan-violet)\
**Post date:** [2023年五月8日 05:20 UTC](https://meta.discourse.org/t/topic-list-previews-tlp/209973/310 "2023-05-08T05:20:38Z")

</div>

对我来说，这个主题组件在移动设备（Diacourse app，iOS）上会完全移除摘要：

 ![IMG_2007](https://global.discourse-cdn.com/meta/original/4X/4/5/2/45215a02892bb76714acde6f06c3be7748171c44.jpeg)

我觉得我已经检查了所有设置，但似乎找不到原因。

---

<div class="post-metadata">

**Author:** ![merefield](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/merefield/32/176214_2.png) [@merefield](https://meta.discourse.org/u/merefield)\
**Post date:** [2023年五月8日 05:57 UTC](https://meta.discourse.org/t/topic-list-previews-tlp/209973/311 "2023-05-08T05:57:02Z")

</div>

请确保您已在此设置中填充了移动设备变体，如下所示：

 ![image](https://global.discourse-cdn.com/meta/original/4X/8/9/1/891edc0d2b50ba84f2380e14008e67b351a604a3.png)

（在这种情况下，您需要确保拥有 `latest-mobile`）

---

<div class="post-metadata">

**Author:** ![StephaneFe](https://avatars.discourse-cdn.com/v4/letter/s/e9bcb4/32.png) [@StephaneFe](https://meta.discourse.org/u/StephaneFe)\
**Post date:** [2023年七月8日 08:50 UTC](https://meta.discourse.org/t/topic-list-previews-tlp/209973/312 "2023-07-08T08:50:51Z")

</div>

我的网站上的缩略图显示在顶部，而不是像 [https://realtimevfx.com/](https://realtimevfx.com/) 那样显示在左侧。

 ![image](https://global.discourse-cdn.com/meta/original/4X/b/1/5/b150ed22e741d9f753c666fe77c6baea0bc4e7e9.png)

这是否可能是由主题投票组件引起的？  
有办法解决这个问题吗？

---

<div class="post-metadata">

**Author:** ![merefield](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/merefield/32/176214_2.png) [@merefield](https://meta.discourse.org/u/merefield)\
**Post date:** [2023年七月8日 09:04 UTC](https://meta.discourse.org/t/topic-list-previews-tlp/209973/313 "2023-07-08T09:04:28Z")

</div>

> [@StephaneFe](#):
>
> 是否可能是由主题投票主题组件引起的？

移除它能解决问题吗？

---

<div class="post-metadata">

**Author:** ![StephaneFe](https://avatars.discourse-cdn.com/v4/letter/s/e9bcb4/32.png) [@StephaneFe](https://meta.discourse.org/u/StephaneFe)\
**Post date:** [2023年七月8日 09:07 UTC](https://meta.discourse.org/t/topic-list-previews-tlp/209973/314 "2023-07-08T09:07:25Z")

</div>

似乎是这样：没有主题投票：

 ![image](https://global.discourse-cdn.com/meta/original/4X/e/4/7/e4739a5018deff4d0f81589aae79e1d26ddca34b.png)

我能做些什么让它与投票数左侧的缩略图一起工作吗？

---

<div class="post-metadata">

**Author:** ![merefield](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/merefield/32/176214_2.png) [@merefield](https://meta.discourse.org/u/merefield)\
**Post date:** [2023年七月8日 10:04 UTC](https://meta.discourse.org/t/topic-list-previews-tlp/209973/315 "2023-07-08T10:04:49Z")

</div>

恐怕我无法保证这一点。请查看“主题列表缩略图”作为替代方案。

---

<div class="post-metadata">

**Author:** ![jordan-violet](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jordan-violet/32/281428_2.png) [@jordan-violet](https://meta.discourse.org/u/jordan-violet)\
**Post date:** [2023年七月16日 15:26 UTC](https://meta.discourse.org/t/topic-list-previews-tlp/209973/316 "2023-07-16T15:26:49Z")

</div>

我似乎在 `topic list portfolio filter parameter` 尊重子类别方面遇到问题。这可能是一个 bug 吗？

我有一个 slug 为 `blog` 的类别和一个 slug 为 `blog posts` 的子类别。我尝试了 `blog-posts` 和 `blog-blog-posts` 作为值，但过滤器不起作用。

其他一些锦上添花的功能：

- 能够更改“portfolio”一词的文本，包括 URL
- 能够更改按钮使用的图标
- 让按钮尊重网站上的按钮 CSS（请参阅附图）  
 ![image](https://global.discourse-cdn.com/meta/original/4X/2/a/d/2ad7c82629cf732ad6e1d5883aeab87b132f632c.png)

---

<div class="post-metadata">

**Author:** ![merefield](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/merefield/32/176214_2.png) [@merefield](https://meta.discourse.org/u/merefield)\
**Post date:** [2023年七月16日 15:41 UTC](https://meta.discourse.org/t/topic-list-previews-tlp/209973/317 "2023-07-16T15:41:35Z")

</div>

> [@jordan-violet](#):
>
> 我有一个 slug 为 `blog` 的类别和一个 slug 为 `blog posts` 的子类别。我尝试过使用 `blog-posts` 和 `blog-blog-posts` 作为值，但过滤器不起作用。

~~不应该是这样的，这是按标签进行的，所以你需要为你想要包含的每个主题打上标签。这让用户可以自行决定包含什么。~~ 呃，我很久没这样用了，我会再检查一下。

> [@jordan-violet](#):
>
> 让按钮遵循网站上的按钮 CSS（见附图）

这不是一个按钮，它是一个伪装成按钮的链接——但你当然可以用你自己的 CSS 来定位它。

> [@jordan-violet](#):
>
> 能够更改按钮使用的图标

这是可能的，尽管如果你创建一个小的 Theme Component，你可以使用 Discourse Javascript API 自己替换图标，这相当直接。

> [@jordan-violet](#):
>
> 能够更改“portfolio”文本，包括 URL

这不可能实现，这是一个 Theme Component。

---

<div class="post-metadata">

**Author:** ![jordan-violet](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jordan-violet/32/281428_2.png) [@jordan-violet](https://meta.discourse.org/u/jordan-violet)\
**Post date:** [2023年七月16日 15:43 UTC](https://meta.discourse.org/t/topic-list-previews-tlp/209973/318 "2023-07-16T15:43:53Z")

</div>

> [@merefield](#):
>
> 这并非如此运作，它是按标签进行的，所以您需要标记您想要包含的每个主题。这让用户在选择包含哪些内容时有一定的自由度。

主题组件中明确写着：“输入标签或类别 slug（取决于 filter type 设置的值）”。类别 slug 可以使用，但子类别不行。当然，这取决于您是否将 `topic list portfolio filter type` 设置为 category，而我们确实是这样设置的。

> [@merefield](#):
>
> 这不可能实现，这是一个主题组件。

抱歉，我的意思是仅在此主题组件的上下文中（例如路由、个人资料摘要选项卡的标题等）。

---

<div class="post-metadata">

**Author:** ![merefield](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/merefield/32/176214_2.png) [@merefield](https://meta.discourse.org/u/merefield)\
**Post date:** [2023年七月16日 15:45 UTC](https://meta.discourse.org/t/topic-list-previews-tlp/209973/319 "2023-07-16T15:45:37Z")

</div>

> [@jordan-violet](#):
>
> 主题组件中明确写着：“输入标签或类别 slug（取决于 filter type 设置的值）”。类别 slug 可以正常工作，但子类别不行。

😅 我的记性！ 我已经有一段时间没用过这个了。 我会看看的 🙂 谢谢！

> [@jordan-violet](#):
>
> 抱歉，我的意思是仅在此主题组件的上下文中（例如，路由、个人资料摘要选项卡的标题等）

网址更改需要一个插件。 我会检查其他方面是否一致。

---

<div class="post-metadata">

**Author:** ![jordan-violet](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jordan-violet/32/281428_2.png) [@jordan-violet](https://meta.discourse.org/u/jordan-violet)\
**Post date:** [2023年七月16日 15:46 UTC](https://meta.discourse.org/t/topic-list-previews-tlp/209973/320 "2023-07-16T15:46:52Z")

</div>

> [@merefield](#):
>
> URL更改需要一个插件。我会检查其他方面是否一致。

当然，我通过导出此主题组件并自行更改路由，使其正常工作。我还不熟悉主题/组件开发，也不知道它们是否会为您提供路由变量的选项。

我可以修改所有这些内容，但当然，通过请求其他人也可能使用的功能来开始总是很好的 😃

---

<div class="post-metadata">

**Author:** ![merefield](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/merefield/32/176214_2.png) [@merefield](https://meta.discourse.org/u/merefield)\
**Post date:** [2023年七月16日 15:48 UTC](https://meta.discourse.org/t/topic-list-previews-tlp/209973/321 "2023-07-16T15:48:03Z")

</div>

我不太清楚你的意思。你不能在主题组件中添加或修改路由。只有插件才能更改 API。所以我不清楚你说的“更改 URL”是什么意思？

---

<div class="post-metadata">

**Author:** ![jordan-violet](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jordan-violet/32/281428_2.png) [@jordan-violet](https://meta.discourse.org/u/jordan-violet)\
**Post date:** [2023年七月16日 15:50 UTC](https://meta.discourse.org/t/topic-list-previews-tlp/209973/322 "2023-07-16T15:50:22Z")

</div>

关闭主题组件后，路由 `https://{{myurl}}/discuss/u/{{user}}/activity/portfolio` 不存在。

开启主题组件后，该路由存在。也许“路由”在这个上下文中不是正确的术语。

我成功导出了主题组件，并将此路由（或任何合适的术语）修改为 blog，效果很好。

---

<div class="post-metadata">

**Author:** ![merefield](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/merefield/32/176214_2.png) [@merefield](https://meta.discourse.org/u/merefield)\
**Post date:** [2023年七月16日 16:21 UTC](https://meta.discourse.org/t/topic-list-previews-tlp/209973/323 "2023-07-16T16:21:47Z")

</div>

抱歉，我现在明白了你的意思。这是一个为演示增加灵活性的绝佳建议。我会在有时间的时候看一下。

---

<div class="post-metadata">

**Author:** ![jordan-violet](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jordan-violet/32/281428_2.png) [@jordan-violet](https://meta.discourse.org/u/jordan-violet)\
**Post date:** [2023年七月16日 16:38 UTC](https://meta.discourse.org/t/topic-list-previews-tlp/209973/324 "2023-07-16T16:38:51Z")

</div>

没关系。很喜欢这个插件，对我们的用例来说仍然很棒。我们有一个社区运营的博客，社区成员可以在他们的个人资料中展示他们的博客，而且还可以通过用户卡片模态框访问它们，这非常好。

---

<div class="post-metadata">

**Author:** ![merefield](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/merefield/32/176214_2.png) [@merefield](https://meta.discourse.org/u/merefield)\
**Post date:** [2023年七月17日 07:43 UTC](https://meta.discourse.org/t/topic-list-previews-tlp/209973/325 "2023-07-17T07:43:55Z")

</div>

这些天我没有太多时间免费处理事情，但我对此感到好奇。

Route 是正确的术语，我当时记错了它的工作方式。我已经很多年没有接触过 Portfolio 系统了（它对 Discourse 的更改出奇地有弹性 😅 ）

我猜要让它工作，你更改了“portfolio”路由的文件名？

至：

![image](https://global.discourse-cdn.com/meta/original/4X/9/d/7/9d788fe9789200cb593eb8fd1f376bba0a30286e.png)

从：

![image](https://global.discourse-cdn.com/meta/original/4X/3/1/a/31a87194847da0d2fc5f0a1f67b97d18a4a8484b.png)

我认为这是一个阻碍，因为路由名称必须与 EmberJS 中的文件名匹配。

我认为这会阻止我们动态地将 URL 从 `/portfolio` 更改为设置中的 `/blog`，但如果你有不同意见，我很乐意被纠正！

所以我想你能做的最好的就是更改主题 locale 设置中的本地化字符串：

 ![image](https://global.discourse-cdn.com/meta/original/4X/2/3/a/23a254331578c6c0a23e14a43382334bb5944a3f.png)

这将更改活动页面上的按钮文本和列表标题……如果你需要使用 master 分支，就接受 `url`。

如果你能让它在保留相同默认行为的同时，在设置中更改它，欢迎提交 PR。（任何其他你想要做的合理改进也同样适用）。

---

<div class="post-metadata">

**Author:** ![AryaM](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/aryam/32/312508_2.png) [@AryaM](https://meta.discourse.org/u/AryaM)\
**Post date:** [2023年七月20日 08:41 UTC](https://meta.discourse.org/t/topic-list-previews-tlp/209973/326 "2023-07-20T08:41:05Z")

</div>

你好！  
首先，这个主题组件太棒了！  
我其实是 Discourse 的新手，而且没有太多编程背景。其他插件在我安装并添加到主题后会直接实现，但这个插件不是这样工作的。  
有人能帮我指导一下步骤吗？

[上一頁](https://meta.discourse.org/t/topic-list-previews-tlp/209973.md?page=15)

[下一頁](https://meta.discourse.org/t/topic-list-previews-tlp/209973.md?page=17)
