Added ancestry links. Namespaces are now shown in the nav.

This commit is contained in:
Michael Mathews 2011-02-27 10:40:47 +00:00
parent 71fc8b4e3c
commit 96b0cce002
2 changed files with 41 additions and 4 deletions

View File

@ -51,6 +51,18 @@
f.signature = (f.signature || '') + '('+pnames.join(', ')+')'; 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) { function addSignatureReturns(f) {
var returnTypes = []; var returnTypes = [];
@ -187,9 +199,12 @@
longnameToUrl[longname] = url; longnameToUrl[longname] = url;
}); });
// do this after the urls have all been generated
data.forEach(function(doclet) { data.forEach(function(doclet) {
if (doclet.classdesc) doclet.classdesc = renderLinks(doclet.classdesc); if (doclet.classdesc) doclet.classdesc = renderLinks(doclet.classdesc);
if (doclet.description) doclet.description = renderLinks(doclet.description); if (doclet.description) doclet.description = renderLinks(doclet.description);
doclet.ancestors = generateAncestry(doclet);
}); });
var nav = '', var nav = '',
@ -203,7 +218,17 @@
seen[m.longname] = true; seen[m.longname] = true;
}); });
nav = nav + '</ul>'; nav = nav + '</ul>';
}
var namespaceNames = data.get( data.find({kind: 'namespace'}) );
if (namespaceNames.length) {
nav = nav + '<h3>Namespaces</h3><ul>';
namespaceNames.forEach(function(n) {
if (!seen[n.longname]) nav += '<li>'+linkto(n.longname, n.name)+'</li>';
seen[n.longname] = true;
});
nav = nav + '</ul>';
} }
var classNames = data.get( data.find({kind: 'class'}) ); var classNames = data.get( data.find({kind: 'class'}) );
if (classNames.length) { if (classNames.length) {
@ -213,7 +238,7 @@
seen[c.longname] = true; seen[c.longname] = true;
}); });
nav = nav + '</ul>'; nav = nav + '</ul>';
} }
for (var longname in longnameToUrl) { for (var longname in longnameToUrl) {

View File

@ -26,9 +26,21 @@
<header> <header>
<?js <?js
if (doc.variation) { print('<h2>');
print('<h2 id="'+doc.variation+'" class="variation">'+doc.name+'<sup>'+doc.variation+'</sup></h2>');
if (doc.ancestors && doc.ancestors.length) {
print('<span class="ancestors">'+doc.ancestors.join(' » ')+'</span>');
print(' » '+doc.name);
} }
else {
print(doc.name)
}
if (doc.variation) {
print('<sup>'+doc.variation+'</sup>');
}
print('</h2>');
if (doc.classdesc) { if (doc.classdesc) {
print('<p class="class-description">'+doc.classdesc+'</p>'); print('<p class="class-description">'+doc.classdesc+'</p>');