Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/robfletcher/gradle-compass
A SASS / Compass plugin for Gradle
https://github.com/robfletcher/gradle-compass
Last synced: about 1 month ago
JSON representation
A SASS / Compass plugin for Gradle
- Host: GitHub
- URL: https://github.com/robfletcher/gradle-compass
- Owner: robfletcher
- License: apache-2.0
- Created: 2013-05-09T11:30:40.000Z (over 11 years ago)
- Default Branch: master
- Last Pushed: 2020-01-10T02:05:19.000Z (almost 5 years ago)
- Last Synced: 2024-05-16T13:22:34.877Z (7 months ago)
- Language: Groovy
- Size: 313 KB
- Stars: 59
- Watchers: 6
- Forks: 39
- Open Issues: 36
-
Metadata Files:
- Readme: README.adoc
- License: LICENSE
Awesome Lists containing this project
- awesome-gradle - gradle-compass - Compile and watche SASS files. (Plugins / Web application development)
README
= Gradle Compass plugin
A http://sass-lang.com/[SASS] / http://compass-style.org/[Compass] plugin for http://gradle.org/[Gradle]. The plugin uses JRuby to install and run Compass.
image:https://travis-ci.org/robfletcher/gradle-compass.svg?branch=master["Build Status", link="https://travis-ci.org/robfletcher/gradle-compass"]
image::https://api.bintray.com/packages/robfletcher/gradle-plugins/compass-gradle-plugin/images/download.svg[link="https://bintray.com/robfletcher/gradle-plugins/compass-gradle-plugin/_latestVersion"]
== Tasks
The plugin adds the following tasks:
=== compassCompile
Compiles all SASS files. Equivalent to the `compass compile` command. The task supports incremental build.
=== compassWatch
Compiles and watches all SASS files. Equivalent to the `compass watch` command.
=== compassVersion
Prints out the compass version.
=== compassConfig
Writes compass configuration out to `config/compass.rb`.
== Installation
Add the plugin like this:
[code, lang=groovy]
----
apply plugin: "com.github.robfletcher.compass"buildscript {
repositories {
jcenter()
maven { url "http://dl.bintray.com/robfletcher/gradle-plugins" }
}
dependencies {
classpath "com.github.robfletcher:compass-gradle-plugin:2.0.5"
}
}
----== Configuration
General configuration for the plugin goes inside a `compass` block in your build file and will apply to all tasks. You can also specify configuration properties on the individual tasks (for example you may want to set `environment = "production"` on the *compileSass* and `debugInfo = true` on *watchSass*). For example:
[code, lang=groovy]
----
compass {
cssDir = file("public/styles")
sassDir = file("src/main/sass")
}
----=== Configuration parameters
The full set of parameters supported by the plugin is…
==== Paths
* `cssDir`: the target directory where compiled CSS is output. Equivalent to `--css-dir`. Defaults to `build/stylesheets`.
* `sassDir`: the source directory where you keep *.scss* and/or *.sass* files. Equivalent to `--sass-dir`. Defaults to `src/main/sass`.
* `imagesDir`: the source directory where you keep image files. Equivalent to `--images-dir`.
* `javascriptsDir`: the source directory where you keep JavaScript files. You don't need to specify this unless you have Compass extensions in your scripts. Equivalent to `--javascripts-dir`.
* `fontsDir`: the source directory where you keep fonts. Equivalent to `--fonts-dir`.
* `importPath`: a set of directories containing other Sass stylesheets. Specifying this allows you to reference those stylesheets in `@import` directives. Equivalent to `--import-paths`.
* `load`: loads a framework or extensions found in the specified directory. Equivalent to `--load`.
* `loadAll`: loads all frameworks or extensions found in the specified directory. Equivalent to `--load-all`.==== Compilation options
* `sourcemap`: if *true* Compass will generate a sourcemap during compilation. Equivaluent to `--sourcemap`.
* `debugInfo`: if *true* (the default) Compass adds debug information to the compiled CSS. Equivalent to `--debug-info` if set to *true* or `--no-debug-info` if set to *false*.
* `force`: if *true* Compass will overwrite existing files. Equivalent to `--force`.
* `environment`: sets default options when set to *'development'* (the default) or *'production'*. Equivalent to `--environment`.
* `noLineComments`: if *true* Compass will not output line comments to the compiled CSS files. Equivalent to `--no-line-comments`.
* `outputStyle`: selects the style for compiled CSS. One of *nested*, *expanded*, *compact* (the default) or *compressed*. Eqivalent to `--output-style`.
* `relativeAssets`: if *true* Compass will generate relative urls to assets. Equivalent to `--relative-assets`.
* `httpPath`: sets the path to the root of the web application when deployed. Equivalent to `--http-path`.
* `generatedImagesPath`: sets the path where generated images are stored. Equivalent to `--generated-images-path`.==== Command line output
* `time`: if *true* Compass will print timing information during compilation. Equivaluent to `--time`.
* `boring`: if *true* colorized output is disabled. Equivalent to `--boring`.
* `quiet`: if *true* Compass output is suppressed. Equivalent to `--quiet`.
* `trace`: if *true* Compass displays full stack traces on error. Equivalent to `--trace`.==== Dependency options
* `gemDir`: the directory where the Compass gem (and any other gems you specify) will be installed. Defaults to `build/tmp/gems`. You may want to override this to use a shared location in multi-project builds so that gems only get downloaded once.
=== Specifying the Compass version
By default the plugin will use the latest version of Compass available. If you need a specific version you can set the version using Gradle's dependency management. For example:
[code, lang=groovy]
----
dependencies {
compass "rubygems:compass:1.0.1"
}
----Gems are installed using the JRuby Gradle plugin. The Compass plugin creates a special _"compass"_ configuration that is used by all the plugin's tasks.
=== Cleaning output
The Compass plugin creates a `cleanCompassCompile` task automatically that will delete compiles CSS. The main `clean` task will also delete CSS assuming `cssDir` is inside the project's `build` directory.
=== Using additional gems
You can use Compass extensions from Ruby gems by adding dependencies to the _compass_ configuration. The plugin will automatically add a `--require` argument for each gem when invoking Compass commands. For example to use the _[Breakpoint][breakpoint]_ extension:
[code, lang=groovy]
----
dependencies {
compass "rubygems:breakpoint:2.5.0"
}
----=== Automatically recompiling stylesheets while other tasks are running
A typical use-case is to run `compassWatch` in the background while another task runs your web-server application. This is very easy with the Compass plugin.
Assuming you're using the http://www.gradle.org/docs/current/userguide/application_plugin.html[Application plugin]'s `run` task you would configure your build with:
[code, lang=groovy]
----
run.dependsOn compassWatchStart
run.finalizedBy compassWatchStop
----=== Advanced Gem Install Options
You can specify additional options to `gem install`:
[code, lang=groovy]
----
compass {
gems = [
[
name: "compass",
version: "0.12.7",
],
[
name: "compass-css-arrow",
version: "0.0.4",
opts: ["--ignore-dependencies"],
],
]
}
----= Version history
=== 2.0.5
* Fixes JDK version compatibility so plugin can be used with Java 1.7.
=== 2.0.5
* No custom `compassClean` task – instead apply the _base_ plugin so we get cleanup by convention.
=== 2.0.4
* Allow setting of directory where compass gems get installed (mainly this helps the integration tests run in a sane amount of time but it's also useful for multi-project builds).
=== 2.0.3
* Fixes problem with POM configuration that meant transitive dependencies didn't work.
=== 2.0.2
* Implements `compassWatch` using John Engleman's https://github.com/johnrengelman/gradle-processes[Process plugin].
=== 2.0
* JRuby is handled by the [JRuby Gradle plugin](https://github.com/jruby-gradle/jruby-gradle-plugin).
=== 1.0.10
* added ability to specify gem versions.
=== 1.0.9
* use additional gems without needing a *config.rb* file.
=== 1.0.8
* added ability to specify additional gems.
=== 1.0.7
* made `javascriptsDir`, `imagesDir` and `importPath` optional.
=== 1.0.6
* added ability to specify `importPath`.
=== 1.0.5
* added various command line options. Thanks [Ben Groves](http://github.com/bgroves).
=== 1.0.4
* added ability to specify file encoding used by JRuby.
[app-plugin]:
[compass]:http://compass-style.org/
[gradle]:http://gradle.org/
[sass]:http://sass-lang.com/
[breakpoint]:http://breakpoint-sass.com/