Este é o jeito correto de criar um componente de tema?

Embora essa forma de fazer as coisas seja tecnicamente possível, não é a abordagem ideal.

Em vez de usar tags de script e $(document).ready do jQuery, seria melhor trabalhar corretamente com o sistema de renderização do Ember.

Para começar, seria bom criar um repositório de componente de tema com uma estrutura de pastas adequada para o seu componente de tema. Dê uma olhada na CLI discourse_theme, pois ela criará essa estrutura para você e facilitará o desenvolvimento do componente. (Alternativamente, há também o esqueleto de tema se você precisar apenas da estrutura e não de nenhum outro recurso da CLI de tema).

A partir daqui, eu usaria as ferramentas que o Discourse tem para extensibilidade, como apiInitializers, a pluginAPI, plugin outlets, etc., para alcançar o que você está tentando fazer.

A melhor maneira de aprender sobre essas coisas é consultar os Guias do Desenvolvedor aqui no Meta (especificamente as seções de tema/componente de tema). Além disso, eu percorreria a categoria Theme component e encontraria seus repositórios no GitHub. Examinar o código deles e como eles realizam as coisas também ajudará você.

Espero que isso ajude!

7 curtidas