Package Exports
- lout
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (lout) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme

API documentation generator for hapi
Lead Maintainer: Nicolas Morel
Description
lout is a documentation generator for hapi servers, providing a human-readable guide for every endpoint using the route configuration. The module allows full customization of the output.
Live demo
You can find a live demo of lout using the unit tests routes. The routes are of course fake but you can get a grasp of what lout looks like given various inputs.
Usage
var Hapi = require('hapi');
var server = new Hapi.Server();
server.connection({ port: 80 });
server.register({ register: require('lout') }, function(err) {
});
server.start();Usage before Hapi 8.x
var Hapi = require('hapi');
var server = new Hapi.Server(80);
server.pack.register({ plugin: require('lout') }, function() {
server.start();
});Usage before Hapi 7.x
var Hapi = require('hapi');
var server = new Hapi.Server(80);
server.route([{
your routes...
}]);
server.pack.require('lout', function() {
server.start();
});
Parameters
The following options are available when registering the plugin:
- 'engines' - an object where each key is a file extension (e.g. 'html', 'jade'), mapped to the npm module name (string) used for rendering the templates. Default is { html: 'handlebars' }.
- 'endpoint' - the path where the route will be registered. Default is /docs.
- 'basePath' - the absolute path to the templates folder. Default is the lout templates folder.
- 'cssPath' - the absolute path to the css folder. Default is the lout css folder. It must contain a style.css.
- 'helpersPath' - the absolute path to the helpers folder. Default is the lout helpers folder. This might need to be null if you change the basePath.
- 'partialsPath' - the absolute path to the partials folder. Default is the lout templates folder. This might need to be null if you change the basePath.
- 'auth' - the route configuration for authentication. Default is to disable auth.
- 'indexTemplate' - the name of the template file to contain docs main page. Default is 'index'.
- 'routeTemplate' - the name of the route template file. Default is 'route'.
- 'filterRoutes' - a function that receives a route object containing
methodandpathand returns a boolean value to exclude routes.
Ignoring a route in documentation
If you want a specific route not to appear in lout's documentation, you have to set lout settings for this specific route to false.
Here is an example snippet of a route configuration :
{
method: 'GET',
path: '/myroute',
config: {
handler: [...],
[...]
plugins: {
lout: false
}
}
}
If you want to exclude multiple routes using conditions, you can use filterRoutes when registering lout :
server.pack.register({
plugin: require('lout'),
options: {
filterRoutes: function (route) {
return route.method !== '*' && !/^\/private\//.test(route.path);
}
}
}, function() {
server.start();
});