1 | /**
|
2 | * Adds support for reusable partial jsdoc files.
|
3 | *
|
4 | * @module plugins/partial
|
5 | */
|
6 | ;
|
7 |
|
8 | var env = require('jsdoc/env');
|
9 | var fs = require('jsdoc/fs');
|
10 | var path = require('path');
|
11 |
|
12 | exports.handlers = {
|
13 | /**
|
14 | * Include a partial jsdoc
|
15 | *
|
16 | * @param e
|
17 | * @param e.filename
|
18 | * @param e.source
|
19 | * @example
|
20 | * @partial "partial_doc.jsdoc"
|
21 | */
|
22 | beforeParse: function(e) {
|
23 | e.source = e.source.replace(/(@partial ".*")+/g, function($) {
|
24 | var pathArg = $.match(/".*"/)[0].replace(/"/g, '');
|
25 | var fullPath = path.join(e.filename, '..', pathArg);
|
26 |
|
27 | var partialData = fs.readFileSync(fullPath, env.opts.encoding);
|
28 |
|
29 | return partialData;
|
30 | });
|
31 | }
|
32 | };
|