新增“默认主页”网站设置

目前,要更改 Discourse 站点的首页,您需要配置站点设置 top menu(顶部菜单),并将您想要的首页作为列表中的第一个选项。对于新管理员来说,这种行为相当不直观。

今天,我们合并了一项更改,添加了一个新的 default homepage(默认首页)站点设置,以使这一过程更加清晰和简便。

现有站点无需执行任何操作,因为此新设置的默认值为 first item in top menu(顶部菜单中的第一项),这与我们一直以来的功能相同。新设置中也保留了相同的选项。如果您选择一个仅对登录用户可用的首页(例如 new),我们仍将回退到匿名用户可用的第一个 top menu 项。

此新设置解锁的一项更改是,您现在可以拥有一个未出现在顶部菜单中的首页。例如,您可以将 categories(分类)设置为首页,并从 top menu 设置中移除它,因为所有分类的链接也可在侧边栏中找到。

未来我们可能会添加一些新的首页选项,敬请期待更多更新!

20 个赞

Kris,这是一个非常棒的补充!:clap:

由于我们即将通过 custom-homepage 插件接口推出新的首页,我很好奇这个新设置是否会在插件或主题组件引入自定义首页时将其包含在内。因为我计划更新用户偏好设置,将首页设置重置为默认值 -1

那么,顺带问一下,这个新设置是否也会更新用户偏好设置中的首页选项?

最后,如果“默认首页”设置为“顶部菜单中的第一项”,并且通过 api.addNavigationBarItem() 添加了一个自定义链接并置于首位,它实际上会被视为第一项吗?

4 个赞

不,情况仍然相同。用于自定义主页的主题修饰符会完全覆盖站点设置。这有点复杂,因为如果站点有多个可用主题,而其中一个没有自定义主页,我们就必须处理回退逻辑。这是我们需要考虑的问题。

还没有……不过选项仍然与顶部菜单相同。但有一个变化是,default(默认)现在在用户偏好设置中始终可用(以前是有条件的)。用户偏好设置中的“默认”将遵循站点设置。

这里也是“尚未实现”——除了主题中的自定义主页外,Discourse 站点的主页仍然有各种要求,必须是主题列表页面(或 /categories),而 api.addNavigationBarItem() 的要求要宽松得多。

3 个赞

谢谢 Kris。我对此投入了很多精力,也很想知道它接下来的发展情况。

我可以分享的一个观察是:当主题组件引入自定义主页时,那些设置了个性化主页的用户将永远看不到它。

与顶部菜单项不同,自定义主页没有路径,因此我无法为其创建自定义菜单项。

这正是尽管我觉得这是一个极端的决定,我还是计划重置用户偏好以使用默认值 -1 的原因。据我所知,这将是我让所有用户都能看到新主页的唯一选择。之后,他们仍然可以在自己的偏好设置中进行个性化调整。

2 个赞

我认为路径是 /custom

2 个赞

今日学到的。谢谢 @Moin,这确实有效。

不过,/custom 并不是我首选的主页路径 :))

你可以使用 permalinks 来实现类似 /home 的路径

是的,谢谢,但这会“重定向”请求,最终仍然会落在 /custom

1 个赞