-
-
Save wolfeidau/960150 to your computer and use it in GitHub Desktop.
| module Jekyll | |
| # Sass plugin to convert .scss to .css | |
| # | |
| # Note: This is configured to use the new css like syntax available in sass. | |
| require 'sass' | |
| class SassConverter < Converter | |
| safe true | |
| priority :low | |
| def matches(ext) | |
| ext =~ /scss/i | |
| end | |
| def output_ext(ext) | |
| ".css" | |
| end | |
| def convert(content) | |
| begin | |
| puts "Performing Sass Conversion." | |
| engine = Sass::Engine.new(content, :syntax => :scss, :load_paths => ["./css/"]) | |
| engine.render | |
| rescue StandardError => e | |
| puts "!!! SASS Error: " + e.message | |
| end | |
| end | |
| end | |
| end |
Thanks @wolfeidau. I have put this plugin in the _plugins directory of my jekyll project but I can't figure out why my scss files are not converted. Am I missing something?
Thanks!
Thanks @wolfeidau. I have put this plugin in the _plugins directory of my jekyll project but I can't figure out why my scss files are not converted. Am I missing something?
Thanks!
I'm in the same boat as @Omarfouad. I've added it and nothing is converting for me. What am I missing?
@cjdsie, @Omarfouad. I think you have to make sure you include a YAML front-matter statement at the top of any file (in this case a scss file) that you want to convert.
This is mentioned in Jekyll's Plugin page under Converters: "Jekyll will only convert files that have a YAML header at the top, even for converters you add using a plugin."
For example:
---
title: stylesheet.scss
---
body { background: red; }
That seemed to do the trick for me.
Front matter can be empty, thus
---
---should work as well.
Had to change
engine = Sass::Engine.new(content, :syntax => :scss, :load_paths => ["./css/"])
to
engine = Sass::Engine.new(content, :syntax => :scss, :load_paths => ["#{@config['source']}/css/"])
to support running jekyll build with a different --source flag
I added a colorize function to highlight sass errors in the console output:
Then applyied it on the error thrown by Sass:
e[31m = red
Run
jekyll serve --watchto see the errors colorized in red.Cheers! :)