Как программно добавить на страницу свои стили CSS

Добавить на страницу свои стили CSS можно посредством административного интерфейса, программировать не обязательно.
Однако программная реализация этой задачи обладает своими преимуществами:

  • программная реализация не требует ручной работы от администратора
    (администратор подключает модуль — и всё работает)
  • программную реализацию можно повторно использовать на разных сайтах (так, у меня 3 форума на движке Discourse, и намного быстрее поправить плагин в одном месте, чем настраивать админку каждого сайта)
  • программная реализация может являться частью более общей функциональности плагина

Discourse программно расширяется и модифицируется посредством плагинов.
Для программного добавления на страницу стилей CSS надо подключить их посредством плагина.
Для этого предназачена директива register_asset, которую надо разместить внутри основного программного файла плагина plugin.rb.
Например:

register_asset "stylesheets/main.scss"

Сам файл со стилями разместите в подпапке assets/stylesheets плагина.
Обратите внимание, что для правил CSS можно использовать не только язык CSS, но и более мощный и лаконичный язык SASS (как в примере выше).

В качестве примера можно посмотреть два стандартных плагина, которые включены в дистрибутив Discourse: https://github.com/discourse/discourse/tree/master/plugins