From 96b0cce00222f23f056e331c0261902e1f959d66 Mon Sep 17 00:00:00 2001 From: Michael Mathews Date: Sun, 27 Feb 2011 10:40:47 +0000 Subject: [PATCH] Added ancestry links. Namespaces are now shown in the nav. --- templates/default/publish.js | 29 +++++++++++++++++++++++++-- templates/default/tmpl/container.tmpl | 16 +++++++++++++-- 2 files changed, 41 insertions(+), 4 deletions(-) diff --git a/templates/default/publish.js b/templates/default/publish.js index 98a239c8..cb9064bc 100644 --- a/templates/default/publish.js +++ b/templates/default/publish.js @@ -51,6 +51,18 @@ f.signature = (f.signature || '') + '('+pnames.join(', ')+')'; } + function generateAncestry(doc) { + var ancestors = []; + + while (doc = doc.memberof) { + doc = data.get( data.find({longname: doc}) ); + if (doc) { doc = doc[0]; } + if (!doc) break; + ancestors.unshift( linkto(doc.longname, doc.name) ); + } + return ancestors; + } + function addSignatureReturns(f) { var returnTypes = []; @@ -187,9 +199,12 @@ longnameToUrl[longname] = url; }); + // do this after the urls have all been generated data.forEach(function(doclet) { if (doclet.classdesc) doclet.classdesc = renderLinks(doclet.classdesc); if (doclet.description) doclet.description = renderLinks(doclet.description); + + doclet.ancestors = generateAncestry(doclet); }); var nav = '', @@ -203,7 +218,17 @@ seen[m.longname] = true; }); - nav = nav + ''; + nav = nav + ''; + } + var namespaceNames = data.get( data.find({kind: 'namespace'}) ); + if (namespaceNames.length) { + nav = nav + '

Namespaces

'; } var classNames = data.get( data.find({kind: 'class'}) ); if (classNames.length) { @@ -213,7 +238,7 @@ seen[c.longname] = true; }); - nav = nav + ''; + nav = nav + ''; } for (var longname in longnameToUrl) { diff --git a/templates/default/tmpl/container.tmpl b/templates/default/tmpl/container.tmpl index 04c00f36..faa3bd93 100644 --- a/templates/default/tmpl/container.tmpl +++ b/templates/default/tmpl/container.tmpl @@ -26,10 +26,22 @@
'+doc.name+''+doc.variation+''); + print('

'); + + if (doc.ancestors && doc.ancestors.length) { + print(''+doc.ancestors.join(' » ')+''); + print(' » '+doc.name); + } + else { + print(doc.name) } + if (doc.variation) { + print(''+doc.variation+''); + } + + print('

'); + if (doc.classdesc) { print('

'+doc.classdesc+'

'); }