martin
(Martin Brennan)
1
Discourse 很早就支持使用井号(#)链接到分类(Announcements)和标签(release-notes)。随着 Discourse Chat 的推出,我们希望能够通过井号链接到聊天频道,这需要对系统的工作方式进行一些改造,以便通过自动完成来建议频道,并在帖子和聊天消息中进行“烹饪”(渲染)。我们还决定借此机会改造自动完成菜单和“烹饪”后的井号的设计。
此次改造包含的更改摘要:
- 如果启用了聊天功能,则可以搜索聊天频道
- 井号搜索结果优先显示与 slug 完全匹配的结果,并且根据您是在帖子还是聊天消息中使用它们,我们会优先显示不同类型的结果(例如,在帖子中分类排在最前面,但在聊天中频道排在最前面)
- 为每个结果显示一个独特的图标
- “烹饪”后的井号采用新样式,包含独特的图标
新的自动完成结果:
井号自动完成的新“烹饪”样式,与 @mention 样式非常相似。
您可以通过在您的 Discourse 站点上启用 enable_experimental_hashtag_autocomplete 站点设置来选择使用此新版本的井号自动完成和“烹饪”功能:
我们预计将在新年将此功能设为默认,在此之前,它仍被视为一项实验性功能,仍有一些需要修复和完善的地方。
此功能现在也在 Discourse Meta 上启用了 
42 个赞
martin
(Martin Brennan)
2
Meta 上这些新主题标签的一个示例。何不看看 Announcements?或者阅读一些 release-notes!
12 个赞
mcwumbly
(Dave McClure)
5
以下是从帖子链接到聊天频道的快速示例:#general::channel
以下是从另一个聊天频道链接到聊天频道的快速示例:
7 个赞
martin
(Martin Brennan)
22
更新一下——在对标签的处理方式进行了一些更改后,我们现在已将此设置为所有站点的默认设置。我们现在还显示了图标的颜色,包括原始的子类别样式
:\n\n#support Feature #general::channel Announcements > Blog \n\nhttps://github.com/discourse/discourse/pull/21788\n\n很快,引用先前标签系统的旧代码也将被删除。
16 个赞
这看起来非常好。但它对视障人士来说效果如何?我猜\n\n#accessibility General #general::channel #documentation:devs \n\n可能缺少 aria 标签……这是匹配的预览 HTML。\n\n```html
accessibility
General
general
developers
```
7 个赞
martin
(Martin Brennan)
24
感谢您的指正,这是一个很好的观点。至少应该为每个标签添加一些 aria-label。我本周会尝试提交一个补丁。
7 个赞
旧主题在 HTML 重建之前不会使用新的标签和类别格式。是否有办法安全地重建所有主题以使 UI 保持一致?也许可以使用 rake?
类似这样?我还没测试!
./launcher enter app
rake posts:rebake
2 个赞
我认为这个更有针对性:
不过我不确定 bundle exec 部分。我不知道在实际运行的网站上是否需要它?
5 个赞
Canapin
(Coin-coin le Canapin)
30
不使用 bundle exec,在生产站点上似乎也能正常工作 
root@Canapin-app:/var/www/discourse# rake hashtags:mark_old_format_for_rebake
查找匹配旧格式的帖子,这可能需要一些时间...
[!] 您即将标记 0 篇包含旧格式标签的帖子以进行重新烘焙。[CTRL+c] 取消,[ENTER] 继续
完成,将在定期更新任务运行时进行重新烘焙。
6 个赞