diff --git a/templates/default/publish.js b/templates/default/publish.js index 3f8629b8..b28ef627 100644 --- a/templates/default/publish.js +++ b/templates/default/publish.js @@ -35,6 +35,27 @@ function hashToLink(doclet, hash) { return '' + hash + ''; } +function needsSignature(doclet) { + var needsSig = false; + + // function and class definitions always get a signature + if ( doclet.kind === ('function' || 'class') ) { + needsSig = true; + } + // typedefs that contain functions get a signature, too + else if (doclet.kind === 'typedef' && doclet.type && doclet.type.names && + doclet.type.names.length) { + for (var i = 0, l = doclet.type.names.length; i < l; i++) { + if (doclet.type.names[i].toLowerCase() === 'function') { + needsSig = true; + break; + } + } + } + + return needsSig; +} + function addSignatureParams(f) { var params = helper.getSignatureParams(f, 'optional'); @@ -365,7 +386,7 @@ exports.publish = function(taffyData, opts, tutorials) { doclet.id = doclet.name; } - if (doclet.kind === 'function' || doclet.kind === 'class') { + if ( needsSignature(doclet) ) { addSignatureParams(doclet); addSignatureReturns(doclet); addAttribs(doclet); diff --git a/templates/default/tmpl/container.tmpl b/templates/default/tmpl/container.tmpl index 2760fc3c..cd3e5a65 100644 --- a/templates/default/tmpl/container.tmpl +++ b/templates/default/tmpl/container.tmpl @@ -120,11 +120,20 @@ var typedefs = self.find({kind: 'typedef', memberof: title === 'Global' ? {isUndefined: true} : doc.longname}); if (typedefs && typedefs.length && typedefs.forEach) { ?> -