diff --git a/docs/dgeni-package/processors/processClassDocs.js b/docs/dgeni-package/processors/processClassDocs.js index 4dffe0c133..71598d6693 100644 --- a/docs/dgeni-package/processors/processClassDocs.js +++ b/docs/dgeni-package/processors/processClassDocs.js @@ -17,15 +17,20 @@ module.exports = function processClassDocs(log, getJSDocComment) { // Create a new doc for each member of the class _.forEach(classDoc.elements, function(memberDoc) { - if (ignorePrivateMembers && memberDoc.name.literalToken.value.charAt(0) === '_') return; + var memberName = memberDoc.name.location.toString(); + + if (ignorePrivateMembers && memberName.charAt(0) === '_') return; - classDoc.members.push(memberDoc); memberDocs.push(memberDoc); memberDoc.docType = 'member'; memberDoc.classDoc = classDoc; - memberDoc.name = memberDoc.name.literalToken.value; - + memberDoc.name = memberName; + if (memberDoc.parameterList) { + memberDoc.params = memberDoc.parameterList.parameters.map(function(param) { + return param.location.toString(); + }); + } if (memberDoc.commentBefore ) { // If this export has a comment, remove it from the list of @@ -37,6 +42,14 @@ module.exports = function processClassDocs(log, getJSDocComment) { _.assign(memberDoc, getJSDocComment(memberDoc.commentBefore)); } + + // Constuctor is a special case member + if (memberName === 'constructor') { + classDoc.constructorDoc = memberDoc; + } else { + insertSorted(classDoc.members, memberDoc, 'name'); + } + }); } }); @@ -45,3 +58,13 @@ module.exports = function processClassDocs(log, getJSDocComment) { } }; }; + + +function insertSorted(collection, item, property) { + var index = collection.length; + while(index>0) { + if(collection[index-1][property] < item[property]) break; + index -= 1; + } + collection.splice(index, 0, item); +} diff --git a/docs/dgeni-package/services/ExportTreeVisitor.js b/docs/dgeni-package/services/ExportTreeVisitor.js index e0aa83d9f0..4fa63fb361 100644 --- a/docs/dgeni-package/services/ExportTreeVisitor.js +++ b/docs/dgeni-package/services/ExportTreeVisitor.js @@ -38,7 +38,9 @@ module.exports = function ExportTreeVisitor(ParseTreeVisitor, log) { this.updateExport(tree); this.currentExport.name = tree.name.identifierToken.value; this.currentExport.functionKind = tree.functionKind; - this.currentExport.parameters = tree.parameterList.parameters; + this.currentExport.parameters = tree.parameterList.parameters.map(function(param) { + return param.location.toString(); + }); this.currentExport.typeAnnotation = tree.typeAnnotation; this.currentExport.annotations = tree.annotations; this.currentExport.docType = 'function'; diff --git a/docs/dgeni-package/templates/class.template.html b/docs/dgeni-package/templates/class.template.html index 8dace000b8..c3072985ab 100644 --- a/docs/dgeni-package/templates/class.template.html +++ b/docs/dgeni-package/templates/class.template.html @@ -1,13 +1,18 @@ -{% extends 'layout/base.template.html' %} +{% include "lib/paramList.html" -%} +{% extends 'layout/base.template.html' -%} {% block body %} -
exported from {$ doc.moduleDoc.id $}
{$ doc.description | marked $}
{$ doc.constructorDoc.description | marked $}
+{% endif -%} +{%- for member in doc.members %} +{$ member.description | marked $}
{% endfor %} diff --git a/docs/dgeni-package/templates/function.template.html b/docs/dgeni-package/templates/function.template.html new file mode 100644 index 0000000000..2ccd7fc009 --- /dev/null +++ b/docs/dgeni-package/templates/function.template.html @@ -0,0 +1,9 @@ +{% include "lib/paramList.html" -%} +{% extends 'layout/base.template.html' -%} + +{% block body %} +exported from {$ doc.moduleDoc.id $}
+{$ doc.description | marked $}
+ +{% endblock %} \ No newline at end of file diff --git a/docs/dgeni-package/templates/lib/paramList.html b/docs/dgeni-package/templates/lib/paramList.html new file mode 100644 index 0000000000..c5e4bd6e2b --- /dev/null +++ b/docs/dgeni-package/templates/lib/paramList.html @@ -0,0 +1,7 @@ +{% macro paramList(params) -%} + {%- if params -%}( + {%- for param in params -%} + {$ param $}{% if not loop.last %}, {% endif %} + {%- endfor %}) + {%- endif %} +{%- endmacro -%}