tad
(Tad)
1
你好,
我刚开始接触 Discourse 和开源项目。我不是程序员(除了 HTML/CSS),但通常可以凭直觉知道如何剪切/粘贴代码,让某个元素出现在不同的位置。除了我能通过现有功能实现的内容外,我的自定义需求也就到此为止了。
我创建了一个用户字段,希望它直接显示在用户卡片上的“用户全名”下方,而不是标准用户字段下方的默认位置。因此,我有一个非常小的自定义需求,但它也引出了我更大的疑问:如何访问主题/代码?
在尝试回答这个(非常基础)的问题时,我认为我找到了本地安装中需要操作的代码文件:discourse/app/assets/javascripts/discourse/templates/components/user-card-contents.hbs。但我选择将新论坛托管在 discourcehosting.com 上,由于无法直接访问文件,我不确定该如何编辑该文件。
我为这个问题过于基础、以及我在此过程中可能显得多么无知而道歉。但我保证这完全是出于善意。
谢谢。
maiki
(maiki)
2
tad
(Tad)
3
谢谢你的链接,maiki。我保证过去几天已经把那份指南反复看了十几遍,以确保自己没有忽略任何明显的地方。我了解如何以及在哪里访问头部、正文等部分的样式和代码自定义设置,但我希望澄清一下:我所想做的改动,本质上是否等同于创建一个“新主题”(其实我只是想微调某些元素在少数情况下的显示位置)。
maiki
(maiki)
4
我会说这是一个主题组件。
别想太多,直接创建一个主题吧。这很有趣!你一定能搞定的。
tad
(Tad)
5
我能够修改本地文件 discourse/app/assets/javascripts/discourse/templates/components/user-card-contents.hbs 来实现预期效果。只是不确定如果不是自行托管,该如何编辑该文件。
RGJ
(Richard - Communiteq)
6
可以通过主题组件覆盖 HBS 模板,这可以从管理 Web 界面完成。
具体操作如下:Developing Discourse Themes & Theme Components
因此,在您的情况下,您可以创建一个新的主题组件,并将以下内容输入其中:
<script type="text/x-handlebars" data-template-name="components/user-card-contents">
</script>
然后将您修改后的文件内容复制粘贴到这些 script 标签之间。
直接编辑 Discourse 文件:a) 在我们的托管环境中不可行;b) 通常也不推荐,因为升级时会导致您的站点完全无法运行。上述方法是最佳选择——无论您是否使用我们的托管服务!
如果您只是想在用户卡片中添加一个用户字段,可以考虑使用插件出口(plugin outlet),相关说明见 同一篇文章中稍靠上的部分 以及 此处。使用插件出口方法对代码的修改更少,从而在升级时能确保更好的兼容性。不过,它的灵活性稍差一些,因为需要存在适合您需求的可用插件出口。