lout
API documentation generator for hapi

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
Lout depends on vision and inert, make sure you register them with hapi.
const Hapi = require('hapi');
const server = Hapi.server({ port: 80 });
await server.register([require('vision'), require('inert'), require('lout')]);
server.start().then(
console.log('Server running at:', server.info.uri)
);
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.
- '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
method and path and returns a boolean value to exclude routes.
- 'apiVersion' - an optional string representing the api version that would be displayed in the documentation.
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',
options: {
handler: [...],
[...]
plugins: {
lout: false
}
}
}
If you want to exclude multiple routes using conditions, you can use filterRoutes when registering lout :
server.register([require('vision'), require('inert'), {
plugin: require('lout'),
options: {
filterRoutes: (route) => {
return route.method !== '*' && !/^\/private\//.test(route.path);
}
}
}]).then(() => {
server.start(() => {
console.log('Server running at:', server.info.uri);
});
});
Current Tags
-
11.2.3
...
latest
(7 years ago)
74 Versions
-
11.2.3
...
7 years ago
-
11.2.2
...
7 years ago
-
11.2.1
...
7 years ago
-
11.2.0
[deprecated]
...
7 years ago
-
11.1.0
[deprecated]
...
8 years ago
-
11.0.1
[deprecated]
...
8 years ago
-
11.0.0
[deprecated]
...
8 years ago
-
10.0.3
[deprecated]
...
9 years ago
-
10.0.2
[deprecated]
...
9 years ago
-
10.0.1
[deprecated]
...
9 years ago
-
10.0.0
[deprecated]
...
9 years ago
-
9.2.0
[deprecated]
...
10 years ago
-
9.1.0
[deprecated]
...
10 years ago
-
9.0.1
[deprecated]
...
10 years ago
-
9.0.0
[deprecated]
...
10 years ago
-
8.1.1
[deprecated]
...
10 years ago
-
8.1.0
[deprecated]
...
10 years ago
-
8.0.1
[deprecated]
...
10 years ago
-
8.0.0
[deprecated]
...
10 years ago
-
7.2.0
[deprecated]
...
11 years ago
-
7.1.0
[deprecated]
...
11 years ago
-
7.0.0
[deprecated]
...
11 years ago
-
6.2.3
[deprecated]
...
11 years ago
-
6.2.2
[deprecated]
...
11 years ago
-
6.2.1
[deprecated]
...
11 years ago
-
6.2.0
[deprecated]
...
11 years ago
-
6.1.0
[deprecated]
...
11 years ago
-
6.0.1
[deprecated]
...
11 years ago
-
6.0.0
[deprecated]
...
11 years ago
-
6.0.0-rc2
...
11 years ago
-
6.0.0-rc1
...
11 years ago
-
5.2.0
[deprecated]
...
11 years ago
-
5.1.2
[deprecated]
...
11 years ago
-
5.1.1
[deprecated]
...
12 years ago
-
5.1.0
[deprecated]
...
12 years ago
-
5.0.2
[deprecated]
...
12 years ago
-
5.0.1
[deprecated]
...
12 years ago
-
5.0.0
[deprecated]
...
12 years ago
-
4.2.1
[deprecated]
...
12 years ago
-
4.2.0
[deprecated]
...
12 years ago
-
4.1.0
[deprecated]
...
12 years ago
-
4.0.0
[deprecated]
...
12 years ago
-
3.1.3
[deprecated]
...
12 years ago
-
3.1.2
[deprecated]
...
12 years ago
-
3.1.1
[deprecated]
...
12 years ago
-
3.1.0
[deprecated]
...
12 years ago
-
3.0.0
[deprecated]
...
12 years ago
-
2.2.0
[deprecated]
...
12 years ago
-
2.1.1
[deprecated]
...
12 years ago
-
2.1.0
[deprecated]
...
12 years ago
-
2.0.1
[deprecated]
...
12 years ago
-
2.0.0
[deprecated]
...
12 years ago
-
1.1.1
[deprecated]
...
12 years ago
-
1.1.0
[deprecated]
...
12 years ago
-
1.0.1
[deprecated]
...
12 years ago
-
1.0.0
[deprecated]
...
12 years ago
-
0.5.0
[deprecated]
...
13 years ago
-
0.4.2
[deprecated]
...
13 years ago
-
0.4.1
[deprecated]
...
13 years ago
-
0.4.0
[deprecated]
...
13 years ago
-
0.3.1
[deprecated]
...
13 years ago
-
0.3.0
[deprecated]
...
13 years ago
-
0.2.3
[deprecated]
...
13 years ago
-
0.2.2
[deprecated]
...
13 years ago
-
0.2.1
[deprecated]
...
13 years ago
-
0.2.0
[deprecated]
...
13 years ago
-
0.1.4
[deprecated]
...
13 years ago
-
0.1.3
[deprecated]
...
13 years ago
-
0.1.2
[deprecated]
...
13 years ago
-
0.1.1
[deprecated]
...
13 years ago
-
0.1.0
[deprecated]
...
13 years ago
-
0.0.3
[deprecated]
...
13 years ago
-
0.0.2
[deprecated]
...
13 years ago
-
0.0.1
[deprecated]
...
13 years ago