如何从自定义主题覆盖 site-header.hbs 文件?

我正在尝试覆盖自定义主题中的 site-header.hbs。Discourse 中该文件的路径是 plugins/styleguide/assets/javascripts/discourse/components/sections/organisms/site-header.hbs

我尝试在我的主题的 head_tag.html 文件中添加:

<script type="text/x-handlebars" data-template-name="javascripts/components/sections/organisms/site-header">
  <StyleguideExample @title="site header - in topic - scrolled">
    <div class="d-header-wrap">
        test
    </div>
  </StyleguideExample>
</script>

我也尝试了多种变体:

<script type="text/x-handlebars" data-template-name="components/sections/organisms/site-header">
<div xmlns="http://www.w3.org/1999/xhtml">test</div>
</script>

<script type="text/x-handlebars" data-template-name="javascripts/components/sections/organisms/site-header">
<div xmlns="http://www.w3.org/1999/xhtml">test</div>
</script>

<script type="text/x-handlebars" data-template-name="javascripts/components/site-header">
<div xmlns="http://www.w3.org/1999/xhtml">test</div>
</script>

<script type="text/x-handlebars" data-template-name="javascripts/components/sections/organisms/site-header">
<div xmlns="http://www.w3.org/1999/xhtml">test</div>
</script>

但都没有奏效。您能帮帮我吗?

1 个赞

您正在尝试做其他事情,您认为覆盖模板是解决方案。覆盖模板很脆弱,并且可能在以后引起问题。您想对标题做什么,而插件出口无法做到?

2 个赞

@pfaffman 感谢您的回答。
主要问题是我需要在主题中保留所有自定义设置,而不是在插件中。是否有其他更安全的方法可以使用自定义主题来实现这一点?

主题中的插件插口已更新。请参阅 Using Plugin Outlet Connectors from a Theme or Plugin

是的。您想做什么?

4 个赞

@pfaffman 我想移除 logo 显示,添加一个自定义按钮。并且在 header 的上方,我想显示一个自定义组件中的动态链接。

您无需覆盖 hbs 来执行任何这些操作。

也许可以看看 Custom Header Links

您可以使用 CSS 隐藏徽标。

New Topic Header Button 添加了一个按钮

另请参阅 (deprecated) Plugin outlet locations theme component

3 个赞

@pfaffman 谢谢。我完全理解您的建议。但是,我想知道是否可以通过自定义主题来定制文件,例如 site-header.hbs。这有意义吗?

不支持。您是否阅读了您在我之前(重复的?)帖子后分享给我的链接?

4 个赞

@merefield 是的,我读了你的文章。我只是想确认一下。
好的,非常感谢。

2 个赞

这或许会有所帮助(并确保您的自定义设置经久不衰)

4 个赞

如果您正在寻找带有下拉子菜单的标题菜单,这个 Theme component 也可能是一个考虑因素

使用现有组件(尤其是官方组件或合作伙伴的组件)的好处是,它可能会得到维护,并且不太可能出现故障。

3 个赞

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.