| /** |
| * Adds support for reusable partial jsdoc files. |
| * |
| * @module plugins/partial |
| */ |
| const env = require('jsdoc/env'); |
| const fs = require('jsdoc/fs'); |
| const path = require('path'); |
| |
| exports.handlers = { |
| /** |
| * Include a partial jsdoc |
| * |
| * @param e |
| * @param e.filename |
| * @param e.source |
| * @example |
| * @partial "partial_doc.jsdoc" |
| */ |
| beforeParse(e) { |
| e.source = e.source.replace(/(@partial ".*")+/g, $ => { |
| const pathArg = $.match(/".*"/)[0].replace(/"/g, ''); |
| const fullPath = path.join(e.filename, '..', pathArg); |
| |
| const partialData = fs.readFileSync(fullPath, env.opts.encoding); |
| |
| return partialData; |
| }); |
| } |
| }; |