调整远端主题组件的新最佳方法是什么?

几个月前(或者更久,我向来不太关注更新),我们可以修改任何主题组件的 HTML/CSS,而不仅仅是本地的那个。

当时只有一个提示:“小心,如果该组件更新,您的自定义修改将会被覆盖。”

说实话,我挺怀念这种行为的(作为论坛管理员,我理应清楚自己在做什么;我有一份文件记录了所有需要重新应用的修改,虽然繁琐,但至少我能做到)。

现在不行了,论坛管理员只能自定义直接在 Discourse 上创建的主题组件,或者通过其专属 Git 仓库访问的组件。

所以,我的问题是:
如果我确实需要自定义其他主题组件,最佳做法是什么?

  • 将原始 Git 仓库 Fork 到一个新的 Git 仓库?
    • 优点:管理原始主题组件的更新相对容易
    • 缺点:比之前更加繁琐
  • 将文件复制粘贴到一个新的本地主题组件中?
    • 优点:没那么繁琐(所有操作都在同一处完成)
    • 缺点:我认为有些文件无法通过管理面板添加
    • 缺点:难以跟进原始主题组件的更新
  • 保留原始组件,并添加一个新组件来修改它?
    • 优点:自动更新
    • 优点:相对安全
    • 缺点:仅适用于某些类型的修改(例如 CSS),并非所有情况(若想修改 Handlebars 组件,几乎必须复制全部内容)
    • 缺点:可能可行,但修改小部件(widget)非常困难(至少我还没找到如何在其中添加几行代码的方法)

您有什么建议吗?

我想您明白了。看来添加您自己的主题组件并进行自定义是最佳解决方案。

我会在“在原 Git 仓库基础上派生一个新的 Git 仓库”和“保留原始组件并添加一个修改原始组件的新组件”之间进行选择。如果您所做的更改足够重大,请派生该组件仓库。但如果您只是进行简单的样式调整,那么创建一个仅包含覆盖内容的新组件更为合理。