Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/gamtiq/grunt-uniator
Grunt plugin for uniator: combine style-tags and CSS-files linked by HTML-file into one or several files or style-tags
https://github.com/gamtiq/grunt-uniator
Last synced: about 7 hours ago
JSON representation
Grunt plugin for uniator: combine style-tags and CSS-files linked by HTML-file into one or several files or style-tags
- Host: GitHub
- URL: https://github.com/gamtiq/grunt-uniator
- Owner: gamtiq
- License: mit
- Created: 2014-02-18T17:45:05.000Z (over 10 years ago)
- Default Branch: master
- Last Pushed: 2016-03-20T21:21:16.000Z (over 8 years ago)
- Last Synced: 2024-09-29T19:16:17.397Z (about 1 month ago)
- Language: JavaScript
- Size: 13.7 KB
- Stars: 0
- Watchers: 3
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE-MIT
Awesome Lists containing this project
README
# grunt-uniator
Combine style-tags and CSS-files linked by HTML-file into one or several files or style-tags.
Grunt plugin for [uniator](https://github.com/gamtiq/uniator)
[![NPM version](https://badge.fury.io/js/grunt-uniator.png)](http://badge.fury.io/js/grunt-uniator)
[![Build Status](https://secure.travis-ci.org/gamtiq/grunt-uniator.png?branch=master)](http://travis-ci.org/gamtiq/grunt-uniator)
[![Built with Grunt](https://cdn.gruntjs.com/builtwith.png)](http://gruntjs.com/)## Getting Started
This plugin requires Grunt `>=0.4.0`If you haven't used [Grunt](http://gruntjs.com/) before, be sure to check out the [Getting Started](http://gruntjs.com/getting-started) guide, as it explains how to create a [Gruntfile](http://gruntjs.com/sample-gruntfile) as well as install and use Grunt plugins. Once you're familiar with that process, you may install this plugin with this command:
```shell
npm install grunt-uniator --save-dev
```Once the plugin has been installed, it may be enabled inside your Gruntfile with this line of JavaScript:
```js
grunt.loadNpmTasks('grunt-uniator');
```## The "uniator" task
### Overview
The `uniator` task is multi task.In your project's Gruntfile, add a section named `uniator` to the data object passed into `grunt.initConfig()`.
```js
grunt.initConfig({
uniator: {
options: {
// Task-specific options go here.
},
your_target: {
// Target-specific file lists and/or options go here.
}
}
});
```### Options
The supported options are equal to settings that can be passed into `uniator.collectCssInFile()`
(see [uniator API](https://github.com/gamtiq/uniator#api) for details).The most important options are mentioned below.
#### options.cssFile
Type: `String`
Default value: `style`Base of name of file into which collected styles will be saved.
Should not contain an extension.
Can contain path, for example `path/to/collected`.#### options.destDir
Type: `String`
Default value: directory of source HTML-filePath to directory relative to which files should be created.
#### options.encoding
Type: `String`
Default value: `utf8`Encoding of source files.
#### options.include
Type: `Boolean`
Default value: `false`Whether collected styles should be included into contents of HTML-file.
#### options.minifyCss
Type: `Boolean` | `Object`
Default value: `false`Whether collected styles should be minified.
Object as option value can be used to specify options for minification
(see [How to use clean-css programmatically?](https://github.com/GoalSmashers/clean-css#how-to-use-clean-css-programmatically)).#### options.removeSourceFile
Type: `Boolean`
Default value: `false`Whether collected source CSS-files should be removed.
#### options.skipCssFile
Type: `Array` | `String`A CSS-file or list of CSS-files that should not be collected.
Each file can be specified by name or by path.
If file has `.css` extension the extension can be omitted.#### options.updateUrl
Type: `Boolean` | `Function`
Default value: `false`Whether URLs found in CSS-files should be updated to be accessible from destination file.
A function can be used as the option value. In the latter case the function will be called
instead of predefined function to get new URL. If the function returns a string value, that value will be used as new URL.
A non-string value returned by the function will be ignored (i.e. the source URL will not be changed).
Data object will be passed into the function (see [getUpdatedUrl](https://github.com/gamtiq/uniator#getUpdatedUrl) for details).### Usage Examples
#### Combine all styles from HTML-file into one file `style.css`
```js
grunt.initConfig({
uniator: {
combine: {
src: ["path/to/source/index.html"]
}
}
});
```#### Combine and minify all styles from HTML-file, save styles into `path/to/out/css/combined.css`, update URLs in result CSS-file, create new HTML-file `path/to/out/processed.html`, remove source CSS-files
```js
grunt.initConfig({
uniator: {
combine_minify: {
options: {
cssFile: "css/combined",
destDir: "path/to/out",
minifyCss: true,
removeSourceFile: true,
updateUrl: true
},
src: ["source.html"],
dest: "path/to/out/processed.html"
}
}
});
```#### Combine and minify all styles from HTML-file besides `plugins.css` and `controls.css`, include styles into source HTML-file
```js
grunt.initConfig({
uniator: {
combine_minify_include: {
options: {
include: true,
minifyCss: true,
skipCssFile: ["plugins", "controls"]
},
src: ["index.html"]
}
}
});
```## Related projects
If you need more advanced control over files combining, try one of the following plugins/tools:
* [processhtml](https://github.com/dciccale/grunt-processhtml) - Grunt plugin
* [usemin](https://github.com/yeoman/grunt-usemin) - Grunt plugin
* [useref](https://github.com/pajtai/grunt-useref) - Grunt plugin
* [HTML Builder](https://github.com/spatools/grunt-html-build) - Grunt plugin
* [Solidify](https://github.com/Stylish-Fantasy/solidify) - CLI toolAlso you may find useful:
* [grunt-init-pack](https://github.com/gamtiq/grunt-init-pack)
* [grunt-pretest](https://github.com/gamtiq/grunt-pretest)## Contributing
In lieu of a formal styleguide, take care to maintain the existing coding style.
Add unit tests for any new or changed functionality.
Lint and test your code using [Grunt](http://gruntjs.com/).## Release History
* 0.1.0 / 2016-03-21
- Add support for Grunt 1.0.* 0.0.3 / 2014-05-05
- Update [uniator](https://github.com/gamtiq/uniator) package to 0.0.3* 0.0.2 / 2014-02-20
- Update [uniator](https://github.com/gamtiq/uniator) package to 0.0.2
- Add `release` tasks in Gruntfile## License
Copyright (c) 2014-2016 Denis Sikuler
Licensed under the MIT license.