UNPKG

apidoc-core

Version:

Core parser library to generate apidoc result following the apidoc-spec

45 lines (36 loc) 1.02 kB
var trim = require('../utils/trim'); var unindent = require('../utils/unindent'); function parse(content, source) { source = trim(source); var title = ''; var text = ''; var type; // Search for @apiExample "[{type}] title and content // /^(@\w*)?\s?(?:(?:\{(.+?)\})\s*)?(.*)$/gm; var parseRegExpFirstLine = /(@\w*)?(?:(?:\s*\{\s*([a-zA-Z0-9\.\/\\\[\]_-]+)\s*\}\s*)?\s*(.*)?)?/; var parseRegExpFollowing = /(^.*\s?)/gm; var matches; if ( (matches = parseRegExpFirstLine.exec(source)) ) { type = matches[2]; title = matches[3]; } parseRegExpFollowing.exec(content); // ignore line 1 while ( (matches = parseRegExpFollowing.exec(source)) ) { text += matches[1]; } if (text.length === 0) return null; return { title : title, content: unindent(text), type : type || 'json' }; } /** * Exports */ module.exports = { parse : parse, path : 'local.examples', method: 'push' };