Tema-Componente v Plugin: ¿Cuál es la diferencia

No soy un principiante en Discourse, pero tampoco soy un experto.

  1. Un componente de tema utiliza HTML, CSS y JavaScript para mejorar un tema base. Hago énfasis en “tema base” porque normalmente se le llama simplemente “tema” y a veces la gente no distingue la diferencia, por lo que hay que inferirla. Un tema y/o un componente de tema puede ser instalado por un administrador sin necesidad de tomar el sitio fuera de línea, y si eres cliente de Discourse, también puedes agregarlos (lista). Consulta también: Guía para principiantes sobre el uso de temas en Discourse

  2. Un plugin utiliza Ruby y puede hacer prácticamente cualquier cosa posible. Si eres cliente de Discourse, tienes un conjunto limitado de plugins que puedes activar; sin embargo, si estás alojando el sitio tú mismo, puedes agregar todos los que quieras. Ten en cuenta que he visto muchos posts donde plugins personalizados rompen el sitio durante una actualización. Estos tampoco requieren reinicio al activarse; sospecho que un reinicio podría ser necesario al instalarlos por primera vez. Otros pueden ampliar esta información, ya que mi única experiencia con plugins es activarlos desde los menús de administración (lista). Consulta también: Guía para principiantes sobre la creación de plugins para Discourse - Parte 1

  3. No he desarrollado un plugin, así que supongo que te refieres a Discourse API Ruby Gem. Consulta: Use the Discourse API ruby gem

  4. También existe la API, que incluye webhooks y se utiliza típicamente con curl u otro lenguaje de programación. Esto es conveniente porque te libera de tener que usar Ruby.

  5. Aunque tampoco he probado esto, podrías programar a nivel de la base de datos PostgreSQL, pero no lo recomendaría a menos que seas muy hábil y muy seguro de tus capacidades.

Espero que esto ayude.


EDIT

Ronda extra si quieres comprometerte por completo como desarrollador de Discourse

Consulta: Cómo empezar a crear cosas para Discourse si eres principiante (como yo)