Le Blog du Geek Joyeux

Plus moins vite tu codes, moins plus vite ça plante

Rails - Utiliser Sass avec theme_support

| Commentaires

J’ai eu l’occasion de me prendre un petit moment la tête aujourd’hui sur comment utiliser des feuilles de styles SASS au sein de thèmes dans une application Rails.

Pour la gestion des thèmes, j’ai utilisé theme_support qui permet de créer, pour chaque thème, un dossier ayant l’arborescence suivante :

un_theme
├── images
|   └── preview.png
├── javascripts
├── stylesheets
├── views
└── about.markdown

Ce que je cherchais à faire était de pouvoir mettre des fichiers SASS dans le dossier stylesheets, mais que les CSS compilées soient placées dans public/stylesheets.

Le plus simple moyen que j’ai trouvé pour faire ça, est d’ajouter le script suivant dans config/initializers/theme_sass.rb :

1
2
3
4
5
6
7
# :template_location est normalement une String, on la convertie donc en Array
Sass::Plugin.options[:template_location] = [[Sass::Plugin.options[:template_location], Sass::Plugin.options[:css_location]]]

# Pour chaque thème, on ajoute son dossier stylesheets à la liste des sources SASS
Theme.find_all.map(&:name).each do |theme|
  Sass::Plugin.options[:template_location] << ["#{RAILS_ROOT}/themes/#{theme}/stylesheets", Sass::Plugin.options[:css_location]]
end

Commentaires