inline-critical/README.md

76 lines
2.2 KiB
Markdown
Raw Normal View History

2014-08-04 00:01:39 +02:00
# inline-critical
2014-08-04 00:05:54 +02:00
Inline critical-path css and load the existing stylesheets asynchronously.
2014-09-09 12:56:12 +02:00
Existing link tags will also be wrapped in ```<noscript>``` so the users with javscript disabled will see the site rendered normally.
2014-08-04 00:01:39 +02:00
2015-12-18 20:44:51 +01:00
[![build status](https://api.travis-ci.org/bezoerb/inline-critical.svg?branch=master)](http://travis-ci.org/bezoerb/inline-critical)
2016-09-03 00:07:49 +02:00
[![Build status](https://ci.appveyor.com/api/projects/status/qb9esocjkpp6hw3q/branch/master?svg=true)](https://ci.appveyor.com/project/bezoerb/inline-critical/branch/master)
2014-08-04 00:01:39 +02:00
## Installation
This module is installed via npm:
``` bash
$ npm install inline-critical
```
## Example Usage
``` js
2014-08-04 00:05:54 +02:00
var inline = require('inline-critical');
var html = fs.readFileSync('test/fixtures/index.html', 'utf8');
var critical = fs.readFileSync('test/fixtures/critical.css', 'utf8');
var inlined = inline(html, critical);
2014-08-04 00:01:39 +02:00
```
2014-10-19 03:16:34 +02:00
2015-06-09 17:19:31 +02:00
## Example Usage ignoring stylesheet per regex
``` js
var inline = require('inline-critical');
var html = fs.readFileSync('test/fixtures/index.html', 'utf8');
var critical = fs.readFileSync('test/fixtures/critical.css', 'utf8');
var inlined = inline(html, critical, {
ignore: [/bootstrap/]
});
2015-06-09 17:21:09 +02:00
```
2015-06-09 17:19:31 +02:00
2015-06-25 23:45:27 +02:00
## CLI
inline-critical works well with standard input.
You can either pass in the html
```bash
cat index.html | inline-critical critical.css
```
or just flip things around
```bash
cat critical.css | inline-critical index.html
```
or pass in the fileas as an option
```bash
inline-critical critical.css index.html
```
without having to worry about the correct order
```bash
inline-critical index.html critical.css
```
Run `inline-critical --help` to see the list of options.
2015-06-09 17:19:31 +02:00
## inline(html, styles, options?)
2014-10-19 03:16:34 +02:00
- `html` is the HTML you want to use to inline your critical styles, or any other styles
- `styles` are the styles you're looking to inline
- `options` is an optional configuration object
2016-04-18 06:34:32 +02:00
- `minify` will minify the styles before inlining (default: true)
2014-10-19 03:16:34 +02:00
- `extract` will remove the inlined styles from any stylesheets referenced in the HTML
- `basePath` will be used when extracting styles to find the files references by `href` attributes
2015-06-09 17:19:31 +02:00
- `ignore` ignore matching stylesheets when inlining.
- `selector` defines the element used by loadCSS as a reference for inlining.
2014-10-19 03:16:34 +02:00
## License
MIT