# 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 `` tags, stored in the file `strong.js`: ```js module.exports = function (content) { return '' + content + '' } ``` And then access it in your templates: ```html
{{ strong myJSONMetadata }}
``` ## 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

{{ capitalizeFirst "the lost typo devision." }}

``` ## Adding `devDependencies` as helpers If you’d 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 ``` ## License [The MIT License (MIT)](LICENSE.md) Copyright © 2015 [Kenneth Ormandy](http://kennethormandy.com)
Copyright © 2015 [Lin Clark](http://lin-clark.com/)