/** * Generates the appropriate JSDoc from some (PIXI) YUIDoc. * This could be turned into a more general pacakge. * * Requires: yuidocjs */ 'use strict'; function generateYuiDoc (sourcePaths, grunt) { var Y = require('yuidocjs'); var options = { parseOnly: true, quiet: true, paths: sourcePaths }; return (new Y.YUIDoc(options)).run(); } module.exports = function (grunt) { grunt.registerTask('pixidoc', 'Generates JSDoc from the PIXI YUIdocs', function () { var sources = ['src/pixi']; var output = 'docs/pixi-jsdoc.js'; var yui2jsdoc = require('./yuidoc-to-jsdoc/converter'); var fs = require('fs'); var path = require('path'); // Right now yuidocsjs requires an absolute path so it emits an // absolute path in the jsdoc (or the JSDoc will error on missing files) sources = sources.map(function (source) { return path.resolve(source); }); var data = generateYuiDoc(sources); if (!data) { grunt.fail.warn("PIXI YUIDoc not generated - nothing to do"); return; } // Fake in namespace (current limitation) // A preamble/warning wrt the YUIDoc-to-JSDoc with proper link-outs could // also be added here. var header = "/**\n" + "* @namespace PIXI\n" + "*/"; var comments = yui2jsdoc.convert(data); comments.unshift(header); fs.writeFileSync(output, comments.join("\n")); }); };