2014-10-20 16:56:45 -04:00
|
|
|
/**
|
|
|
|
@overview Adds support for reusable partial jsdoc files.
|
|
|
|
@module plugins/partial
|
|
|
|
@author Ludo Antonov <ludo@hulu.com>
|
|
|
|
*/
|
2014-10-22 10:11:40 -04:00
|
|
|
'use strict';
|
2014-10-20 16:56:45 -04:00
|
|
|
|
|
|
|
var fs = require('jsdoc/fs');
|
|
|
|
var path = require('path');
|
|
|
|
|
|
|
|
exports.handlers = {
|
2015-01-28 15:33:44 -05:00
|
|
|
/**
|
|
|
|
* Include a partial jsdoc
|
|
|
|
*
|
|
|
|
* @param e
|
|
|
|
* @param e.filename
|
|
|
|
* @param e.source
|
|
|
|
* @example
|
|
|
|
* @partial "partial_doc.jsdoc"
|
|
|
|
*/
|
2014-10-20 16:56:45 -04:00
|
|
|
beforeParse: function(e) {
|
|
|
|
e.source = e.source.replace(/(@partial \".*\")+/g, function($) {
|
2015-01-28 15:33:44 -05:00
|
|
|
var pathArg = $.match(/\".*\"/)[0].replace(/"/g, '');
|
|
|
|
var fullPath = path.join(e.filename, '..', pathArg);
|
2014-10-20 16:56:45 -04:00
|
|
|
|
2015-01-28 15:33:44 -05:00
|
|
|
var partialData = fs.readFileSync(fullPath, global.env.opts.encoding);
|
2014-10-20 16:56:45 -04:00
|
|
|
|
|
|
|
return partialData;
|
|
|
|
});
|
|
|
|
}
|
|
|
|
};
|