Created
May 7, 2011 02:43
-
-
Save wolfeidau/960150 to your computer and use it in GitHub Desktop.
Sass plugin for Jekyll
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |
@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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
I'm in the same boat as @Omarfouad. I've added it and nothing is converting for me. What am I missing?