UNPKG

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
# helper-ask [![NPM version](https://img.shields.io/npm/v/helper-ask.svg?style=flat)](https://www.npmjs.com/package/helper-ask) [![NPM downloads](https://img.shields.io/npm/dm/helper-ask.svg?style=flat)](https://npmjs.org/package/helper-ask) [![Build Status](https://img.shields.io/travis/helpers/helper-ask.svg?style=flat)](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._