helper-ask
Version:
Async helper that prompts the user for a value and uses the answer as context for rendering the template.
120 lines (78 loc) • 4.32 kB
Markdown
# helper-ask [](https://www.npmjs.com/package/helper-ask) [](https://npmjs.org/package/helper-ask) [](https://travis-ci.org/helpers/helper-ask)
> Async helper that prompts the user for a value and uses the answer as context for rendering the template.
## Install
Install with [npm](https://www.npmjs.com/):
```sh
$ npm install --save helper-ask
```
## Compatibility
This helper can be used with the following applications:
* [assemble](https://github.com/assemble/assemble)
* [verb](https://github.com/verbose/verb)
* [update](https://github.com/update/update)
* [generate](https://github.com/generate/generate)
* [templates](https://github.com/jonschlinkert/templates)
## Usage
This helper requires the [base-questions](https://github.com/node-base/base-questions) plugin to be registered first. Uses the [ask-when](https://github.com/jonschlinkert/ask-when) library to conditionally prompt the user. See that project for available options and additional API documentation.
```js
var ask = require('helper-ask');
var questions = require('base-questions');
var templates = require('templates');
var app = templates();
app.use(questions());
// register the helper, make sure to pass `app` to the function
app.asyncHelper('ask', ask(app));
```
**Example**
If you're using [templates](https://github.com/jonschlinkert/templates) directly, you'll need to create a collection and add a template engine.
```js
app.create('pages');
app.engine('*', require('engine-base'));
app.option('engine', '*');
```
With the other apps you should be able to do the following:
```js
var page = app.page('foo', {content: '<%= ask("name") %>'});
app.option('askWhen', 'not-answered');
app.data('name', 'Brian');
app.render(page, function(err, view) {
if (err) return cb(err);
console.log(view.contents.toString());
//=> 'Brian'
cb();
});
```
## API
**Params**
* `app` **{Object}**
* `returns` **{Function}**: Returns the helper function
**Example**
```html
<%= ask('author.name') %>
```
## About
### Related projects
* [handlebars-helpers](https://www.npmjs.com/package/handlebars-helpers): More than 130 Handlebars helpers in ~20 categories. Helpers can be used with Assemble, Generate… [more](https://github.com/assemble/handlebars-helpers) | [homepage](https://github.com/assemble/handlebars-helpers "More than 130 Handlebars helpers in ~20 categories. Helpers can be used with Assemble, Generate, Verb, Ghost, gulp-handlebars, grunt-handlebars, consolidate, or any node.js/Handlebars project.")
* [template-helpers](https://www.npmjs.com/package/template-helpers): Generic JavaScript helpers that can be used with any template engine. Handlebars, Lo-Dash, Underscore, or… [more](https://github.com/jonschlinkert/template-helpers) | [homepage](https://github.com/jonschlinkert/template-helpers "Generic JavaScript helpers that can be used with any template engine. Handlebars, Lo-Dash, Underscore, or any engine that supports helper functions.")
### Contributing
Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new).
### Building docs
_(This document was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme) (a [verb](https://github.com/verbose/verb) generator), please don't edit the readme directly. Any changes to the readme must be made in [.verb.md](.verb.md).)_
To generate the readme and API documentation with [verb](https://github.com/verbose/verb):
```sh
$ npm install -g verb verb-generate-readme && verb
```
### Running tests
Install dev dependencies:
```sh
$ npm install -d && npm test
```
### Author
**Jon Schlinkert**
* [github/jonschlinkert](https://github.com/jonschlinkert)
* [twitter/jonschlinkert](http://twitter.com/jonschlinkert)
### License
Copyright © 2016, [Jon Schlinkert](https://github.com/jonschlinkert).
Released under the [MIT license](https://github.com/helpers/helper-ask/blob/master/LICENSE).
***
_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.1.31, on October 01, 2016._