大家好,
本周我们开始了自定义 Discourse 主题的第一个冲刺。由于我们的设计方案与 Discourse 原生主题差异较大,我们预计需要修改相当数量的文件。
我们的方法非常简单:尽量仅通过 SASS 实现所需效果,必要时再覆盖相应的 .hbs/.hbr 模板文件。我们清楚,后者会带来额外的维护风险(如果传递给视图的属性被重命名或移除,我们的模板就会失效)。我们权衡了这种风险与自行维护基础设施的利弊,最终认为托管在 discourse.org 能为我们的非营利客户带来更大价值。我们将为网站添加一些监控代码,并制定应对方案;即便出现问题,我们也认为这通常很容易修复。
接下来进入正题。我们需要弄清楚如何将“主题列表”视图转变为类似信息流的体验,即:在每个主题下方,将回复帖子渲染为评论。
这是我们需要实现的效果示意图(目前每个主题仅显示 1 条评论,但有时我们需要显示更多):
目前进展
@iainbamboo 已深入调研,试图厘清以下问题:
- 主题列表中是否已包含帖子数据,我们只需修改模板即可?→ 答案是否定的。
- 如何将每个主题的帖子数据添加到列表中,以便在模板中渲染?
- 这是否是正确的做法?
- 我们是否应修改 Ruby 代码,将数据添加到发送的模型中(可能通过插件实现),参考思路如下:Discourse Timeline。如果我们创建插件,能否在 discourse.org 上使用?
- 是否可以从 Ember 端获取数据,但需承担因多次 AJAX 请求导致加载变慢的代价(存在触发速率限制的风险)?
- 是否可以在不修改 Ruby 代码的情况下实现此功能?
经过大量查阅——阅读 Discourse 开发指南并浏览源代码后,我们得出结论:需要专家就最佳实现方案提供建议。
现在,我们在这里 ![]()
