SyedAhkam / sass-rocket-fairing

A rocket fairing to compile sass files automagically on change
MIT License
2 stars 4 forks source link

Sass Rocket Fairing

sass-rocket-fairing is a Fairing/middleware for rocket.rs facilitating sass compilation. It compiles your sass files on change automagically ✨

Powered by rsass (Sass reimplementation in Rust) under the hood.

Installing

Add the following to your Cargo.toml file

sass-rocket-fairing = "0.2"

OR using git

sass-rocket-fairing = {version = "0.2", git="https://github.com/SyedAhkam/sass-rocket-fairing.git"}

Usage

#[macro_use]
extern crate rocket;

use sass_rocket_fairing::SassFairing;

#[launch]
fn rocket() -> _ {
    rocket::build().attach(SassFairing::default())
}

Configuration

SassFairing takes advantage of rocket's advanced configuration system. There are two ways to configure it.

  1. Using Rocket.toml (recommended)

    Add a Rocket.toml file in root directory of your crate and add the following to it:

[default]
sass_dir = "static/sass"
css_dir = "static/css"
  1. Using enviroment variables

    Set the following environment variables:

    • ROCKET_SASS_DIR
    • ROCKET_CSS_DIR

Where

Change output format

You can change the output format of the css files by setting the format parameter while creating a new SassFairing.

rsass have been re-exported for convenience.

#[macro_use]
extern crate rocket;

use sass_rocket_fairing::{SassFairing, rsass};

#[launch]
fn rocket() -> _ {
    rocket::build()
        .attach(SassFairing::new(rsass::output::Format {
                style: output::Style::Compressed,
                .. Default::default()
            }
        )
    )
}

Todo

Thanks

I've stolen a big chunk of code from rocket_dyn_templates and adapted it to my needs.

Contributing

Feel free to send me a pull request! My code might be a little iffy but that's because I'm new to the rust ecosystem.

License

Licensed under the most permissive license, MIT.