こんにちは!初心者なので、ご協力いただけると幸いです。「header」…「/header」のコンテンツを変更したいです。ソースファイルを開くと、「header-content」ウィジェットに次のように表示されています。
createWidget("header-contents", {
tagName: "div.contents.clearfix",
template:hbs`
{{home-logo attrs=attrs}}
{{#if attrs.topic}}
{{header-topic-info attrs=attrs}}
{{/if}}
<div class="panel clearfix" role="navigation">{{yield}}</div>
`,
});
common/head_tag.html に次のように記述しました。
<script type="text/discourse-plugin" version="0.8.13">
api.reopenWidget("header-contents", {
tagName: "div.contents.clearfix",
template:hbs`
<h1>Hello! Help Me Please!!!</h1>
<div class="panel clearfix" role="navigation">{{yield}}</div>
`
});
</script>
これは機能しません。助けてください。
「いいね!」 1
Johani
(Joe)
2
Deomid_Fedorovさん、Metaへようこそ:wave:
ブラウザのコンソールを確認すると、次のようなものが表示されます。
ReferenceError: hbs is not defined
しかし、それを修正したとしても、テンプレートはクライアント側ではなくサーバー側で事前にコンパイルされることになっているため、それでも問題が発生します。
ヘッダーをカスタマイズする方法はたくさんあります。何をしようとしているのか教えていただければ、目的の結果を達成する方法を共有できるかもしれません。
「いいね!」 3
ジョー様、ご丁寧な対応ありがとうございます。Discourseは非常に気に入ってきましたが、まだ解決できていない問題がいくつかあります。全体として、一つ大きな要望があります。それは、好きな場所に、好きなタグでHTMLコードを埋め込めるようにしたいということです。また、不要だと考える要素を削除できるようにしたいです。
Developing Discourse Themes & Theme Components の投稿を読みましたが、これらの指示だけでは問題を解決するには不十分でした。
具体的な例に移りましょう。
<header> タグ内の <div class="title"> と <div class="navigation"> ブロックの間に、自分のコードをどのように埋め込むことができますか?
<ul id="navigation-bar"> 要素の生成を無効にするにはどうすればよいですか?
英語の知識は完璧ではないため、文章に誤りがあるかもしれませんが、ご理解いただければ幸いです。
「いいね!」 1
Johani
(Joe)
4
心配いりません、解決できますよ。
おっしゃっているのはここですね。
しかし、ここでどの要素を指しているのか分かりません。
新しい要素を追加したい場所のスクリーンショットを追加していただけますか?
サイトでその要素が必要ない場合は、CSSで非表示にすることができます。例えば、次のような方法です。
#navigation-bar {
display: none;
}
とはいえ、その要素はユーザーがトピックリストのさまざまなフィルター間を簡単に移動できる方法を提供しており、特にモバイルでは削除しないことをお勧めします。
しかし、コミュニティのことを最もよく知っているのはあなたです。もしそれがあなたにとってうまくいくなら、それで良いでしょう 
「いいね!」 2
それが私が言いたいことです。スクリーンショットで矢印で指した場所にカスタムブロックを配置する必要があります。
どのような結果を得たいのかをよりよく理解していただくために、別のスクリーンショットをアップロードします。
改めて、迅速なご対応ありがとうございます。私はCSSのスキルはかなり良いです。display: noneと書けば要素を非表示にできることは知っています。しかし、より強力な体験をしたいのです。テンプレートやウィジェットを真のプロのように管理できるようになりたいです。もっと正しく行う方法があるはずです。例えば、テンプレートを書き直すとか、何か他の方法があるはずです。