# 新的自动完成样式需要什么rebake？

**URL:** <https://meta.discourse.org/t/what-rebake-is-required-for-the-new-autocomplete-styling/249642>\
**Category:** Support\
**Tags:** hashtag-autocomplete\
**Created:** [2022年十二月17日 21:09 UTC](https://meta.discourse.org/t/what-rebake-is-required-for-the-new-autocomplete-styling/249642 "2022-12-17T21:09:59Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![mcdanlj](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/mcdanlj/32/131829_2.png) [@mcdanlj](https://meta.discourse.org/u/mcdanlj)\
**Post date:** [2022年十二月17日 21:09 UTC](https://meta.discourse.org/t/what-rebake-is-required-for-the-new-autocomplete-styling/249642/1 "2022-12-17T21:09:59Z")

</div>

这里有什么变化，如果有的话，将需要重新烘焙带有标签的帖子？

启用此功能后，是否会有任何必需的重新烘焙自动发生，还是会有明确的重新烘焙迁移步骤？

---

<div class="post-metadata">

**Author:** ![MarcP](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/marcp/32/160184_2.png) [@MarcP](https://meta.discourse.org/u/MarcP)\
**Post date:** [2022年十二月18日 02:26 UTC](https://meta.discourse.org/t/what-rebake-is-required-for-the-new-autocomplete-styling/249642/2 "2022-12-18T02:26:17Z")

</div>

> [@mcdanlj](#):
>
> 启用此功能后，是否会根据启用情况自动进行任何必需的重新烘焙，还是需要进行迁移步骤才能重新烘焙？

启用该功能后，我刚刚通过 rails 运行了 rebake all posts。

> [@Rebake all posts?](https://meta.discourse.org/t/rebake-all-posts/69340/2?u=marcp):
>
> Either one of these should work ./launcher enter app rake posts:rebake or cd /var/discourse ./launcher enter app bundle exec rake posts:rebake

---

<div class="post-metadata">

**Author:** ![mcdanlj](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/mcdanlj/32/131829_2.png) [@mcdanlj](https://meta.discourse.org/u/mcdanlj)\
**Post date:** [2022年十二月18日 02:48 UTC](https://meta.discourse.org/t/what-rebake-is-required-for-the-new-autocomplete-styling/249642/3 "2022-12-18T02:48:23Z")

</div>

我有大量帖子，绝大多数都不需要修改。我曾希望有一个仅重新烘焙受影响帖子的功能，无论是显式还是隐式的。

---

<div class="post-metadata">

**Author:** ![Ed\_S](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/ed_s/32/134015_2.png) [@Ed\_S](https://meta.discourse.org/u/Ed_S)\
**Post date:** [2022年十二月18日 14:48 UTC](https://meta.discourse.org/t/what-rebake-is-required-for-the-new-autocomplete-styling/249642/4 "2022-12-18T14:48:02Z")

</div>

> [@mcdanlj](#):
>
> 我的帖子很多，绝大多数都不需要修改。

重新烘焙甚至可能损害旧帖子：  
[如何避免重新烘焙所有帖子时可能出现的问题？](https://meta.discourse.org/t/how-to-avoid-potential-issues-when-rebaking-all-posts/249271)

---

<div class="post-metadata">

**Author:** ![mcwumbly](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/mcwumbly/32/103861_2.png) [@mcwumbly](https://meta.discourse.org/u/mcwumbly)\
**Post date:** [2022年十二月18日 22:47 UTC](https://meta.discourse.org/t/what-rebake-is-required-for-the-new-autocomplete-styling/249642/5 "2022-12-18T22:47:38Z")

</div>

此功能刚刚推出。目前没有内置的功能可以重新烘焙所有包含类别/标签提及的帖子。我会密切关注大家对此的需求以及在此期间大家想出的解决方案。

---

<div class="post-metadata">

**Author:** ![MarcP](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/marcp/32/160184_2.png) [@MarcP](https://meta.discourse.org/u/MarcP)\
**Post date:** [2022年十二月20日 01:31 UTC](https://meta.discourse.org/t/what-rebake-is-required-for-the-new-autocomplete-styling/249642/6 "2022-12-20T01:31:55Z")

</div>

> [@Ed\_S](#):
>
> 重新烘焙甚至会损害旧帖子，似乎是这样：  
> [如何避免重新烘焙所有帖子时可能出现的问题？](https://meta.discourse.org/t/how-to-avoid-potential-issues-when-rebaking-all-posts/249271)

是否可以有一个模式，我们可以用它来重新烘焙所有帖子，但排除带有嵌入/onebox 的帖子？

> [@Rebake all posts matching a pattern](https://meta.discourse.org/t/rebake-all-posts-matching-a-pattern/48713):
>
> bookmark This guide provides instructions on how to rebake all posts in Discourse that match a specific string or regular expression, utilizing the Rails console for additional advanced options. person_raising_hand Required user level: Administrator warning Console access required Want to rebake all the posts matching a string or regular expression? Let’s get started! Accessing your site To begin, connect to your Discourse Droplet via SSH and enter the Docker container for your Disc…

---

<div class="post-metadata">

**Author:** ![mcdanlj](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/mcdanlj/32/131829_2.png) [@mcdanlj](https://meta.discourse.org/u/mcdanlj)\
**Post date:** [2023年一月3日 14:05 UTC](https://meta.discourse.org/t/what-rebake-is-required-for-the-new-autocomplete-styling/249642/7 "2023-01-03T14:05:15Z")

</div>

我想重新烘焙的是所有 **cooked** 表示形式匹配 `class=\"hashtag\"` 的帖子，据我所知。\n\n我认为 `rebake_match` 在这里没有帮助，因为它匹配的是原始文本，而现有的 rails 任务中没有匹配 cooked 文本的选项。所以我想，这需要实际的编码，无论是通过 rails 控制台还是新的任务。

---

<div class="post-metadata">

**Author:** ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)\
**Post date:** [2023年一月3日 18:31 UTC](https://meta.discourse.org/t/what-rebake-is-required-for-the-new-autocomplete-styling/249642/8 "2023-01-03T18:31:49Z")

</div>

类似

```
 Post.where("cooked like '%class=\"hashtag\"%'").each do |p| p.rebake! end

```

---

<div class="post-metadata">

**Author:** ![mcdanlj](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/mcdanlj/32/131829_2.png) [@mcdanlj](https://meta.discourse.org/u/mcdanlj)\
**Post date:** [2023年一月3日 20:07 UTC](https://meta.discourse.org/t/what-rebake-is-required-for-the-new-autocomplete-styling/249642/9 "2023-01-03T20:07:10Z")

</div>

_非常_像那样！我刚刚在我的暂存网站上成功测试了这一点。

我曾考虑过 `posts:rebake_match` 的延迟选项，但可能它并不重要。

它当然坚持要重新处理受影响帖子中的所有图像，这是不必要的，所以仅为此目的的自动修复可以合理地避免这种情况，但与此同时，有一个前进的方向。

如果一个网站有很多受影响的帖子，我可能会通过反向排序并添加延迟来做到这一点。

---

<div class="post-metadata">

**Author:** ![mcdanlj](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/mcdanlj/32/131829_2.png) [@mcdanlj](https://meta.discourse.org/u/mcdanlj)\
**Post date:** [2023年一月11日 13:09 UTC](https://meta.discourse.org/t/what-rebake-is-required-for-the-new-autocomplete-styling/249642/10 "2023-01-11T13:09:28Z")

</div>

@mcwumbly 既然 3.0 已宣布并将此作为主要功能，您认为是否可以进行一次迁移，只修复文本而不重新处理图像，或者允许您在延迟后重新烘焙受影响的帖子，以免因重新处理图像而堵塞队列？

---

<div class="post-metadata">

**Author:** ![mcwumbly](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/mcwumbly/32/103861_2.png) [@mcwumbly](https://meta.discourse.org/u/mcwumbly)\
**Post date:** [2023年一月13日 03:47 UTC](https://meta.discourse.org/t/what-rebake-is-required-for-the-new-autocomplete-styling/249642/11 "2023-01-13T03:47:07Z")

</div>

@martin 你能在这里分享一些你 _可能_ 如何处理这个问题的想法吗？

简而言之，我认为人们 _理想中_ 想要的是这样的：

- 当我启用新的话题标签功能时，我希望有一种方法可以更新我所有旧话题标签的样式，使之与之匹配，而不会改变现有帖子的内容

而且也许还有：

- 当我禁用它时，我希望有一种简单的方法来做相反的事情。

---

<div class="post-metadata">

**Author:** ![sam](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/sam/32/102149_2.png) [@sam](https://meta.discourse.org/u/sam)\
**Post date:** [2023年一月13日 04:06 UTC](https://meta.discourse.org/t/what-rebake-is-required-for-the-new-autocomplete-styling/249642/12 "2023-01-13T04:06:58Z")

</div>

> [@mcdanlj](#):
>
> 或者，您也可以让受影响的帖子延迟重新烘焙，这样就不会因为图像重新处理而堵塞队列？

您已经可以做到这一点了。

```plaintext
Post.where("cooked like '%class=\\\"hashtag\\\"%'").update_all(baked_version: 0)

```

它将在后台通过计划作业进行处理。

我预计我们将在明年某个时候提高我们的 `baked_version`。

---

<div class="post-metadata">

**Author:** ![martin](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/martin/32/491371_2.png) [@martin](https://meta.discourse.org/u/martin)\
**Post date:** [2023年一月13日 04:29 UTC](https://meta.discourse.org/t/what-rebake-is-required-for-the-new-autocomplete-styling/249642/13 "2023-01-13T04:29:14Z")

</div>

> [@mcwumbly](#):
>
> 简而言之，我认为人们_理想中_想要的是：
> 
> - 当我启用新的标签功能时，我希望有一种方法可以更新我所有旧标签的样式以匹配，而不会改变现有帖子的内容

我将创建一个 rake 任务来执行 @sam 上面建议的操作，以便自托管用户可以运行。

> [@mcwumbly](#):
>
> 也许还有：
> 
> - 当我关闭它时，我希望有一种简单的方法来做相反的事情。

我认为这没有必要，因为我们现在已经为新站点默认启用了此功能，并且很快就会完全删除该选项。如果人们想尝试一下，他们可以启用该设置，在 UI 中手动重新烘焙几篇帖子，然后如果他们不喜欢，就关闭该设置并重新烘焙相同的帖子。

不过，很快就没有选择了。

---

<div class="post-metadata">

**Author:** ![Canapin](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/canapin/32/119591_2.png) [@Canapin](https://meta.discourse.org/u/Canapin)\
**Post date:** [2023年一月13日 06:59 UTC](https://meta.discourse.org/t/what-rebake-is-required-for-the-new-autocomplete-styling/249642/14 "2023-01-13T06:59:47Z")

</div>

> [@martin](#):
>
> 不过，很快就没有选择了。

您知道[彩色分类链接](https://meta.discourse.org/t/add-color-and-subcategory-styling-to-category-and-chat-mentions/249643/4?u=canapin)这个想法是否仍在考虑中？

---

<div class="post-metadata">

**Author:** ![mcwumbly](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/mcwumbly/32/103861_2.png) [@mcwumbly](https://meta.discourse.org/u/mcwumbly)\
**Post date:** [2023年一月13日 09:42 UTC](https://meta.discourse.org/t/what-rebake-is-required-for-the-new-autocomplete-styling/249642/15 "2023-01-13T09:42:27Z")

</div>

> [@Canapin](#):
>
> Do you know if the [colored category links](https://meta.discourse.org/t/add-color-and-subcategory-styling-to-category-and-chat-mentions/249643/4) idea is still considered?

它仍在考虑中，但我们认为它的范围比表面看起来要大，并且还有一些设计细节需要首先解决，所以它不会立即发生。

> [@martin](#):
>
> I will make a rake task to do what @sam suggests above that self-hosters can run.

太棒了，听起来不错！

---

<div class="post-metadata">

**Author:** ![martin](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/martin/32/491371_2.png) [@martin](https://meta.discourse.org/u/martin)\
**Post date:** [2023年一月18日 00:16 UTC](https://meta.discourse.org/t/what-rebake-is-required-for-the-new-autocomplete-styling/249642/17 "2023-01-18T00:16:39Z")

</div>

我刚刚为此合并了一个 rake 任务：

> <https://github.com/discourse/discourse/pull/19876>
>
> Since the new hashtag format has been added, we want site
> admins to be able to …rebake old posts with the old hashtag
> format. This can now be done with \`rake hashtags:mark\_old\_format\_for\_rebake\`
> which goes and marks posts with the old cooked version of hashtags
> in this format for rebake:
> 
> \`\`\`
> \<a class=\\"hashtag\\" href=\\"/c/ux/14\\"\>#\<span\>ux\</span\>\</a\>
> \`\`\`
> 
> c.f. https://meta.discourse.org/t/what-rebake-is-required-for-the-new-autocomplete-styling/249642/12

`bundle exec rake hashtags:mark_old_format_for_rebake`

---

<div class="post-metadata">

**Author:** ![Jonathan5](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jonathan5/32/197134_2.png) [@Jonathan5](https://meta.discourse.org/u/Jonathan5)\
**Post date:** [2023年三月11日 10:23 UTC](https://meta.discourse.org/t/what-rebake-is-required-for-the-new-autocomplete-styling/249642/18 "2023-03-11T10:23:04Z")

</div>

能否提供一份关于如何使用该命令的完整傻瓜指南？

作为用户，有没有办法更改单个帖子（例如，进行少量编辑/保存）？

谢谢。

---

<div class="post-metadata">

**Author:** ![mcdanlj](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/mcdanlj/32/131829_2.png) [@mcdanlj](https://meta.discourse.org/u/mcdanlj)\
**Post date:** [2023年三月11日 12:33 UTC](https://meta.discourse.org/t/what-rebake-is-required-for-the-new-autocomplete-styling/249642/19 "2023-03-11T12:33:43Z")

</div>

这通常是 rake 任务的模式：

```plaintext
cd /var/discourse
./launcher enter app
bundle exec rake hashtags:mark_old_format_for_rebake

```

---

<div class="post-metadata">

**Author:** ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)\
**Post date:** [2023年三月12日 00:52 UTC](https://meta.discourse.org/t/what-rebake-is-required-for-the-new-autocomplete-styling/249642/20 "2023-03-12T00:52:15Z")

</div>

> [@Jonathan5](#):
>
> 作为用户，有没有办法更改单个帖子（例如进行少量编辑/保存）？

这应该可以。如果你是员工，可以点击扳手图标并重建 HTML。

---

<div class="post-metadata">

**Author:** ![Jonathan5](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jonathan5/32/197134_2.png) [@Jonathan5](https://meta.discourse.org/u/Jonathan5)\
**Post date:** [2023年三月12日 09:20 UTC](https://meta.discourse.org/t/what-rebake-is-required-for-the-new-autocomplete-styling/249642/21 "2023-03-12T09:20:30Z")

</div>

> [@pfaffman](#):
>
> 点击扳手并重建 HTML

这很好用，谢谢。就我而言，这似乎比尝试 rake 任务的风险要低。

[下一頁](https://meta.discourse.org/t/what-rebake-is-required-for-the-new-autocomplete-styling/249642.md?page=2)
