Website/node_modules/metalsmith-fingerprint/README.md

70 lines
1.6 KiB
Markdown
Raw Normal View History

2015-12-03 09:45:33 -05:00
# metalsmith-fingerprint
[![Build Status](https://travis-ci.org/christophercliff/metalsmith-fingerprint.png?branch=master)](https://travis-ci.org/christophercliff/metalsmith-fingerprint)
A [fingerprint][fingerprint] plugin for [Metalsmith][metalsmith].
## Installation
```
npm install metalsmith-fingerprint
```
## Usage
```js
var fingerprint = require('metalsmith-fingerprint')
Metalsmith(__dirname)
.use(fingerprint(options))
.build()
```
### Options
- **`match`** `String|Array<String>`
A [pattern][multimatch] to filter source files. Required.
## Example
Say you want to fingerprint the file `css/index.css`:
```js
Metalsmith(__dirname)
.use(fingerprint({ pattern: 'css/index.css' }))
.use(template({ engine: 'handlebars' }))
.build()
```
The plugin does two things:
1. create a duplicate of `index.css` with a fingerprinted filename
2. create a `fingerprint` object on the Metalsmith metadata
The `fingerprint` object is accessible from the Handlebars template:
```html
<link href="{{ fingerprint.[css/index.css] }}" rel="stylesheet" type="text/css" />
```
And the template renders the fingerprinted filename:
```html
<link href="css/index-724af9dd72a48c18dd570790c2445fb4.css" rel="stylesheet" type="text/css" />
```
## Tests
```
$ npm test
```
## License
See [LICENSE](https://github.com/christophercliff/metalsmith-fingerprint/blob/master/LICENSE.md).
[fingerprint]: http://guides.rubyonrails.org/asset_pipeline.html#what-is-fingerprinting-and-why-should-i-care-questionmark
[metalsmith]: http://www.metalsmith.io/
[multimatch]: https://github.com/sindresorhus/multimatch