UNPKG

grunt-inlinestyles

Version:
122 lines (91 loc) • 3.04 kB
# grunt-inlinestyles > A Grunt plugin to inline a selected CSS file. Ideal for inlining critical CSS. This will take a HTML stylesheet link and inline the target CSS. This means that: ``` <link rel="stylesheet" href="/css/stylesheet.css" data-inline="true"> ``` will become: ``` <style>h1{font-style:italic}</style> ``` This module does *not* inline javascript, images or fonts. ## Getting Started This plugin requires Grunt. 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-inlinestyles --save-dev ``` Once the plugin has been installed, it may be enabled inside your Gruntfile with this line of JavaScript: ```js grunt.loadNpmTasks('grunt-inlinestyles'); ``` ## The "inlinestyles" task ### Overview In your project's Gruntfile, add a section named `inlinestyles` to the data object passed into `grunt.initConfig()`. ```js grunt.initConfig({ inlinestyles: { options: { // Task-specific options go here. basepath: './', minify: true, tag: '[data-inline="true"]' }, your_target: { // Target-specific file lists and/or options go here. files: { 'destination.html': 'source.html' } }, }, }) ``` ### Options #### options.basepath Type: `String` Default value: `'process.cwd()'` A string value that is used to indicate the root of your website. 'Absolute' CSS links are relative to this value. #### options.minify Type: `boolean` Default value: `true` A boolean that is used to turn minification of the inlined CSS on or off. #### options.tag Type: `String` Default value: `'[data-inline="true"]'` A string value that is used to designate a CSS link that is to be inlined. ### Usage Examples #### Default Options In this example, the default options are used to inline CSS inside `source.html`. So if the `source.html` file has the content `<link rel="stylesheet" href="/css/stylesheet.css" data-inline="true">` the generated result would contain `<style>h1{font-style:italic}</style>` ```js grunt.initConfig({ inlinestyles: { options: {}, files: { 'destination.html': 'source.html' } }, }) ``` #### Custom Options In this example, custom options are used to specify a new basepath, disable CSS minification and to add a new inlining tag. ```js grunt.initConfig({ inlinestyles: { options: { basepath: 'subpath', minify: false, tag: '[data-inlinethisstyle="true"]' }, files: { 'destination.html': 'source.html' } }, }) ``` ## Contributing Contributions are welcome! Hit me up via [@sonniesedge](https://twitter.com/sonniesedge) ## Release History v0.0.1 Initial release ## License Copyright (c) 2014 . Licensed under the MIT license.