34 lines
1.1 KiB
JavaScript
34 lines
1.1 KiB
JavaScript
|
var _ = require('lodash');
|
||
|
|
||
|
module.exports = function generateDocsFromComments(log) {
|
||
|
return {
|
||
|
$runAfter: ['files-read'],
|
||
|
$runBefore: ['parsing-tags'],
|
||
|
$process: function(docs) {
|
||
|
var commentDocs = [];
|
||
|
docs = _.filter(docs, function(doc) {
|
||
|
if (doc.docType !== 'atScriptFile') {
|
||
|
return true;
|
||
|
} else {
|
||
|
_.forEach(doc.fileInfo.comments, function(comment) {
|
||
|
|
||
|
// we need to check for `/**` at the start of the comment to find all the jsdoc style comments
|
||
|
comment.range.toString().replace(/^\/\*\*([\w\W]*)\*\/$/g, function(match, commentBody) {
|
||
|
|
||
|
// Create a doc from this comment
|
||
|
commentDocs.push({
|
||
|
fileInfo: doc.fileInfo,
|
||
|
startingLine: comment.range.start.line,
|
||
|
endingLine: comment.range.end.line,
|
||
|
content: commentBody,
|
||
|
codeTree: comment.treeAfter,
|
||
|
docType: 'atScriptDoc'
|
||
|
});
|
||
|
});
|
||
|
});
|
||
|
}
|
||
|
});
|
||
|
return docs.concat(commentDocs);
|
||
|
}
|
||
|
};
|
||
|
};
|