¿Es esta la forma correcta de crear un componente de tema?

Aunque esta forma de hacerlo es técnicamente posible, no es el enfoque ideal.

En lugar de usar etiquetas script y jQuery $(document).ready, sería mejor trabajar correctamente con el sistema de renderizado de Ember.

Para empezar, sería bueno crear un repositorio de componentes de tema con una estructura de carpetas adecuada para tu componente de tema. Echa un vistazo a la CLI discourse_theme, ya que esta generará esa estructura por ti y te facilitará el desarrollo del componente. (Alternativamente, también existe el esqueleto de tema si solo necesitas la estructura y no ninguna de las otras comodidades de la CLI de temas).

A partir de aquí, yo utilizaría las herramientas que Discourse tiene disponibles para la extensibilidad, como apiInitializers, la pluginAPI, los puntos de salida de plugins, etc., para lograr lo que estás intentando hacer.

La mejor manera de aprender sobre estas cosas es revisar las Guías para desarrolladores aquí en Meta (específicamente las secciones de tema/componente de tema). Además, te recomiendo que revises la categoría Customization > Theme component y busques sus repositorios de GitHub. Analizar su código y cómo logran las cosas también te ayudará.

¡Espero que esto sea de ayuda!