Website/node_modules/metalsmith-register-helpers/README.md
2015-12-05 18:44:51 -05:00

86 lines
2.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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/)