lout

API documentation generator plugin for hapi

BSD-3-Clause 74 个版本
安装
npm install lout
yarn add lout
pnpm add lout
bun add lout
README

lout

API documentation generator for hapi

Build Status

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);
    });
});
版本列表
11.2.3 2019-04-24
11.2.2 2019-04-24
11.2.1 2019-04-24
11.2.0 2019-04-22
11.1.0 2018-08-11
11.0.1 2018-04-30
11.0.0 2018-02-28
10.0.3 2017-10-02
10.0.2 2017-07-19
10.0.1 2017-03-22
10.0.0 2017-03-11
9.2.0 2016-09-21
9.1.0 2016-07-13
9.0.1 2016-06-15
9.0.0 2016-02-16
8.1.1 2016-01-14
8.1.0 2016-01-08
8.0.1 2015-12-17
8.0.0 2015-12-17
7.2.0 2015-10-02
7.1.0 2015-09-13
7.0.0 2015-08-14
6.2.3 2015-06-30
6.2.2 2015-03-31
6.2.1 2015-02-26
6.2.0 2015-02-15
6.1.0 2015-01-05
6.0.1 2014-12-11
6.0.0 2014-12-09
6.0.0-rc2 2014-12-08
6.0.0-rc1 2014-12-05
5.2.0 2014-11-19
5.1.2 2014-11-14
5.1.1 2014-09-21
5.1.0 2014-09-20
5.0.2 2014-08-18
5.0.1 2014-06-22
5.0.0 2014-06-12
4.2.1 2014-06-05
4.2.0 2014-05-28
4.1.0 2014-05-22
4.0.0 2014-05-20
3.1.3 2014-05-19
3.1.2 2014-05-16
3.1.1 2014-05-11
3.1.0 2014-04-17
3.0.0 2014-04-12
2.2.0 2014-04-05
2.1.1 2014-03-16
2.1.0 2014-03-05
2.0.1 2014-02-10
2.0.0 2014-01-21
1.1.1 2013-12-11
1.1.0 2013-12-09
1.0.1 2013-11-28
1.0.0 2013-11-26
0.5.0 2013-08-27
0.4.2 2013-08-21
0.4.1 2013-07-13
0.4.0 2013-04-30
0.3.1 2013-04-08
0.3.0 2013-04-03
0.2.3 2013-03-19
0.2.2 2013-03-09
0.2.1 2013-03-06
0.2.0 2013-03-04
0.1.4 2013-02-20
0.1.3 2013-02-17
0.1.2 2013-02-15
0.1.1 2013-02-08
0.1.0 2013-02-07
0.0.3 2012-12-17
0.0.2 2012-12-06
0.0.1 2012-11-14