Website/node_modules/metalsmith-register-helpers/README.md

86 lines
2.1 KiB
Markdown
Raw Normal View History

2015-12-05 18:44:51 -05:00
# metalsmith-register-helpers
A Metalsmith plugin for registering Handlebars helpers.
## CLI Usage
Install via npm and then add the `metalsmith-register-partials` key to your `metalsmith.json` plugins, like so:
```
{
"plugins": {
"metalsmith-register-helpers": {
"directory": "path/to/helpers"
}
}
}
```
This will register all helpers in the specified directory, and use the first part of the filename as the helper name. As a simple (and admittedly contrived) example, you could add a helper that wraps everything in `<strong>` tags, stored in the file `strong.js`:
```js
module.exports = function (content) {
return '<strong>' + content + '</strong>'
}
```
And then access it in your templates:
```html
<pre><code>{{ strong myJSONMetadata }}</code></pre>
```
## Adding Handlebars Helpers
There are lots of helpers you could try this with in the [Handlebars Helpers](https://github.com/assemble/handlebars-helpers) library. For example, add the `capitalizeFirst` helper into `helpers/ellipsis.js`:
```js
/**
* capitalizeFirst.js
* http://git.io/vUJU2
*/
module.exports = function (str) {
if (str && typeof str === "string") {
return str.charAt(0).toUpperCase() + str.slice(1)
}
}
```
Now, you can access it in your templates:
```html
<h1>{{ capitalizeFirst "the lost typo devision." }}</h1>
```
## Adding `devDependencies` as helpers
If youd prefer, this is another way to include helpers installed as `dependencies` in your `package.json` file into your Metalsmith project. For example, you can install the [Moment Handlebars helper](https://www.npmjs.com/package/helper-moment):
```sh
npm install --save helper-moment
```
Then, add it as a helper in `_helpers/moment.js`:
```js
var helperMoment = require('helper-moment');
module.exports = function (str, pattern){
return helperMoment(str, pattern)
}
```
You can now access it in your template:
```html
<time date-time="{{ date }}">{{ moment date format="MMMM Do, YYYY"}}</time>
```
## License
[The MIT License (MIT)](LICENSE.md)
Copyright © 2015 [Kenneth Ormandy](http://kennethormandy.com)<br/>
Copyright © 2015 [Lin Clark](http://lin-clark.com/)