GlimmerベースのテーマコンポーネントのHTMLでアセットの画像をどう使うか?

ここに載っているヒントと、ask.discourse.com のボットからのいくつかのヘルプのおかげで、動作させることができました。

  • discourse_theme CLI が生成したものの上に適用した、関連するコミットはこちらです。
  • 上の投稿で言及した、以前の失敗した試みとの差分はこちらです。

@NateDhaliwal さん、ありがとうございます!

これまでの道のりで苦労した主な点:

  • テンプレートでは、二重の波括弧内では、任意の JavaScript 式(関数呼び出しなど)もフィルター式(some-transormation-function someVariableOrLiteral の形式)も機能しません。補間できるのは単一の変数だけです。
  • 2つのアセットのうちの1つで、about.json の対応するファイルパスの値にディレクトリ名 assets/ を含め忘れていました。これはサイレントに失敗し、対応する設定が undefined になったため、テンプレート全体がサイレントに省略されたか、何か別の問題が発生したのだと思います。
  • 開発中に、discourse_theme watch ... で同期されたテーマコンポーネントが、プレビューでも明示的に有効化しても、効果がない状態になりました。discourse_theme watch ... にインスタンス上のコンポーネントの新しいコピーを作成させ(以前のコピーを削除して)、それが解決しました。正確に何が起こっていたのかはよくわかりません。