Skip to content

Instantly share code, notes, and snippets.

@davidpots
Last active March 10, 2019 16:42
Show Gist options
  • Star 10 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save davidpots/5853188 to your computer and use it in GitHub Desktop.
Save davidpots/5853188 to your computer and use it in GitHub Desktop.
#
# Jekyll Generator for SCSS
#
# (File paths in this description relative to jekyll project root directory)
# Place this file in ./_plugins
# Place .scss files in ./_scss
# Compiles .scss files in ./_scss to .css files in whatever directory you indicated in your config
# Config file placed in ./_sass/config.rb
#
require 'sass'
require 'pathname'
require 'compass'
require 'compass/exec'
module Jekyll
class CompassGenerator < Generator
safe true
def generate(site)
Dir.chdir File.expand_path('../_sass', File.dirname(__FILE__)) do
Compass::Exec::SubCommandUI.new(%w(compile)).run!
end
end
end
end
@mgudapak
Copy link

mgudapak commented Jan 2, 2014

Hi David

I am using your plugin with the latest Jekyll version but the css never gets generated inside the "_site" folder on running 'jekyll serve --watch'

Here's how my config.rb looks like

http_path = "/"
sass_dir = "./"
css_dir = "../_site/css"
images_dir = "../_site/img"
javascripts_dir = "../_site/js"
output_style = :expanded
relative_assets = true

My jekyll directories are setup just like you mentioned. Is it possible that compass generates the css files in the said directory but that is followed by jekyll which erases and recreates the '_site' directory so the css files are getting deleted?

if I set the css_dir = "../css" things are okay but the issue is the stylesheets get compiled outside of the '_site' directory and I'd like it inside of it.

Am i doing something silly here or is it the expected behavior that you cannot generate the css inside '_site'.

Thanks for your help.
Regards
Mahesh

@ThomasHoadley
Copy link

Hi there. Thanks for the great tutorial over at http://davidpots.com/blog/jekyll-github-pages-compass/.

I was wondering if you could explain how to generate the site into it's own separate folder so I can host it as a static site with a host other than github?

Any help would be much appreciated!

@josephrexme
Copy link

@ThomasHoadley The site generates into _site. You can point your domain name to your _site folder in jekyll. On a second thought of this whole hack, why not just use jekyll-assets ?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment