mirror of
https://github.com/jsdoc/jsdoc.git
synced 2025-12-08 19:46:11 +00:00
Added @mixes tag.
This commit is contained in:
parent
0c64dc6a1f
commit
c1ed8d84c3
@ -124,6 +124,17 @@
|
||||
this.borrowed.push(about);
|
||||
}
|
||||
|
||||
exports.Doclet.prototype.mix = function(source) {
|
||||
if (!this.mixes) {
|
||||
/**
|
||||
A list of symbols that are mixed into this one, if any.
|
||||
@type Array.<string>
|
||||
*/
|
||||
this.mixes = [];
|
||||
}
|
||||
this.mixes.push(source);
|
||||
}
|
||||
|
||||
/** Add a symbol to this doclet's `augments` array.
|
||||
@param {string} base - The longname of the base symbol.
|
||||
*/
|
||||
|
||||
@ -62,8 +62,16 @@
|
||||
var [target, source] = parseBorrows(doclet, tag);
|
||||
doclet.borrow(target, source);
|
||||
}
|
||||
})
|
||||
.synonym('mixes');
|
||||
});
|
||||
|
||||
// that adds all of it's members to me
|
||||
dictionary.defineTag('mixes', {
|
||||
mustHaveValue: true,
|
||||
onTagged: function(doclet, tag) {
|
||||
var source = firstWordOf(tag.value);
|
||||
doclet.mix(source);
|
||||
}
|
||||
});
|
||||
|
||||
dictionary.defineTag('class', {
|
||||
onTagged: function(doclet, tag) {
|
||||
|
||||
@ -29,7 +29,7 @@ exports.registerLink = function(longname, url) {
|
||||
}
|
||||
|
||||
// each container gets its own html file
|
||||
var containers = ['class', 'module', 'namespace'];
|
||||
var containers = ['class', 'module', 'namespace', 'mixin'];
|
||||
|
||||
/** Turn a doclet into a URL. */
|
||||
exports.createLink = function(doclet) {
|
||||
|
||||
@ -156,6 +156,7 @@
|
||||
// kinds of containers
|
||||
var globals = data.get( data.find({kind: ['property', 'function'], memberof: {isUndefined: true}}) ),
|
||||
modules = data.get( data.find({kind: 'module'}) ),
|
||||
mixins = data.get( data.find({kind: 'mixin'}) ),
|
||||
namespaces = data.get( data.find({kind: 'namespace'}) );
|
||||
|
||||
var outdir = opts.destination;
|
||||
@ -179,7 +180,7 @@
|
||||
return url? '<a href="'+url+'">'+(linktext || longname)+'</a>' : (linktext || longname);
|
||||
}
|
||||
|
||||
var containers= ['class', 'module', 'namespace'];
|
||||
var containers = ['class', 'module', 'namespace', 'mixin'];
|
||||
|
||||
data.forEach(function(doclet) {
|
||||
var url = helper.createLink(doclet);
|
||||
@ -208,17 +209,6 @@
|
||||
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.hasOwnProperty(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'}) );
|
||||
if (classNames.length) {
|
||||
nav = nav + '<h3>Classes</h3><ul>';
|
||||
@ -235,7 +225,28 @@
|
||||
|
||||
nav = nav + '</ul>';
|
||||
}
|
||||
//console.log('classNames', classNames);
|
||||
|
||||
var namespaceNames = data.get( data.find({kind: 'namespace'}) );
|
||||
if (namespaceNames.length) {
|
||||
nav = nav + '<h3>Namespaces</h3><ul>';
|
||||
namespaceNames.forEach(function(n) {
|
||||
if ( !seen.hasOwnProperty(n.longname) ) nav += '<li>'+linkto(n.longname, n.name)+'</li>';
|
||||
seen[n.longname] = true;
|
||||
});
|
||||
|
||||
nav = nav + '</ul>';
|
||||
}
|
||||
|
||||
var mixinNames = data.get( data.find({kind: 'mixin'}) );
|
||||
if (mixinNames.length) {
|
||||
nav = nav + '<h3>Mixins</h3><ul>';
|
||||
mixinNames.forEach(function(m) {
|
||||
if ( !seen.hasOwnProperty(m.longname) ) nav += '<li>'+linkto(m.longname, m.name)+'</li>';
|
||||
seen[m.longname] = true;
|
||||
});
|
||||
|
||||
nav = nav + '</ul>';
|
||||
}
|
||||
|
||||
var globalNames = data.get( data.find({kind: ['property', 'function'], 'memberof': {'isUndefined': true}}) );
|
||||
|
||||
@ -258,6 +269,9 @@
|
||||
|
||||
var namespaces = data.get( data.find({kind: 'namespace', longname: longname}) );
|
||||
if (namespaces.length) generate('Namespace: '+namespaces[0].name, namespaces, helper.longnameToUrl[longname]);
|
||||
|
||||
var mixins = data.get( data.find({kind: 'mixin', longname: longname}) );
|
||||
if (mixins.length) generate('Mixin: '+mixins[0].name, mixins, helper.longnameToUrl[longname]);
|
||||
}
|
||||
|
||||
if (globals.length) generate('Global', [{kind: 'globalobj'}], 'global.html');
|
||||
|
||||
@ -85,6 +85,22 @@
|
||||
}
|
||||
?>
|
||||
|
||||
<?js
|
||||
if (doc.mixes && doc.mixes.length) {
|
||||
?>
|
||||
<h3 class="subsection-title">Mixes In</h3>
|
||||
|
||||
<ul><?js
|
||||
doc.mixes.forEach(function(a) {
|
||||
?>
|
||||
<li><?js= linkto(a, a) ?></li>
|
||||
<?js
|
||||
});
|
||||
?></ul>
|
||||
<?js
|
||||
}
|
||||
?>
|
||||
|
||||
<?js
|
||||
if (doc.requires && doc.requires.length) {
|
||||
?>
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user