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);
|
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.
|
/** Add a symbol to this doclet's `augments` array.
|
||||||
@param {string} base - The longname of the base symbol.
|
@param {string} base - The longname of the base symbol.
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -62,8 +62,16 @@
|
|||||||
var [target, source] = parseBorrows(doclet, tag);
|
var [target, source] = parseBorrows(doclet, tag);
|
||||||
doclet.borrow(target, source);
|
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', {
|
dictionary.defineTag('class', {
|
||||||
onTagged: function(doclet, tag) {
|
onTagged: function(doclet, tag) {
|
||||||
|
|||||||
@ -29,7 +29,7 @@ exports.registerLink = function(longname, url) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// each container gets its own html file
|
// each container gets its own html file
|
||||||
var containers = ['class', 'module', 'namespace'];
|
var containers = ['class', 'module', 'namespace', 'mixin'];
|
||||||
|
|
||||||
/** Turn a doclet into a URL. */
|
/** Turn a doclet into a URL. */
|
||||||
exports.createLink = function(doclet) {
|
exports.createLink = function(doclet) {
|
||||||
|
|||||||
@ -156,6 +156,7 @@
|
|||||||
// kinds of containers
|
// kinds of containers
|
||||||
var globals = data.get( data.find({kind: ['property', 'function'], memberof: {isUndefined: true}}) ),
|
var globals = data.get( data.find({kind: ['property', 'function'], memberof: {isUndefined: true}}) ),
|
||||||
modules = data.get( data.find({kind: 'module'}) ),
|
modules = data.get( data.find({kind: 'module'}) ),
|
||||||
|
mixins = data.get( data.find({kind: 'mixin'}) ),
|
||||||
namespaces = data.get( data.find({kind: 'namespace'}) );
|
namespaces = data.get( data.find({kind: 'namespace'}) );
|
||||||
|
|
||||||
var outdir = opts.destination;
|
var outdir = opts.destination;
|
||||||
@ -179,7 +180,7 @@
|
|||||||
return url? '<a href="'+url+'">'+(linktext || longname)+'</a>' : (linktext || longname);
|
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) {
|
data.forEach(function(doclet) {
|
||||||
var url = helper.createLink(doclet);
|
var url = helper.createLink(doclet);
|
||||||
@ -208,17 +209,6 @@
|
|||||||
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.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'}) );
|
var classNames = data.get( data.find({kind: 'class'}) );
|
||||||
if (classNames.length) {
|
if (classNames.length) {
|
||||||
nav = nav + '<h3>Classes</h3><ul>';
|
nav = nav + '<h3>Classes</h3><ul>';
|
||||||
@ -235,7 +225,28 @@
|
|||||||
|
|
||||||
nav = nav + '</ul>';
|
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}}) );
|
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}) );
|
var namespaces = data.get( data.find({kind: 'namespace', longname: longname}) );
|
||||||
if (namespaces.length) generate('Namespace: '+namespaces[0].name, namespaces, helper.longnameToUrl[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');
|
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
|
<?js
|
||||||
if (doc.requires && doc.requires.length) {
|
if (doc.requires && doc.requires.length) {
|
||||||
?>
|
?>
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user