A variation of the base template available with JsDoc Toolkit 2.4.0 The template may be compatible with earlier versions, try it and see. When new versions come out and I find time, I check for differences and update this template. Now that it is publically revisioned, I will make tags of it before I integrate changes from a newer version of the Toolkit. This should make it easier to find the latest version of the script which will be compatible with a given Toolkit version. As it is based on the default JsDoc Toolkit template, it is subject to the same license as the Toolkit (currently the MIT License).

I recommend if you intend to check out directly into the JsDoc Toolkit templates dir is to use
 git clone "+template"
so you at least remember what it is and/or why you have it.

Noteworthy changes:
- links to _global_ are only present when there's global properties, methods, or events
- formatted code/src files, the file listing page, and the link to the file listing page are not output if the -s opt is used
- namespaces do not show constructor info
- the stylesheet is copied to the output and linked from each file instead of output into each file
- support for listing of subclasses; use -D="augments:on" to enable
- support for @calls, for indicating function interactions; use -D="calls:on" to enable (see below for details)
- support for a hierarchical class listing; use -D="hierarchy:on" to enable (see below for details)
- a header can be added by providing a relative path to a file via --define="header:file.html"
- extra marker tags can be provided via --define="summtags:..." (see below for details)
- table colors are green to differentiate further from the original template

The hierarchy flag is based on parent [name]spaces, not extensions. The latter would be about the same difficulty to implement and may make an appearance in a later feature as -D="hierarchy:augments".

/** @namespace */
var A = {};

/** @class */
A.B = new function() {};

/** @class */
A.B.C = new function() {};

/** @class */
var D = {};

Would result in a class listing like so:

The @calls tag is similar to @see, in that it links to other documented symbols and can include arbitrary text after the symbol. Unlike @see, it only works on functions and {@link} tags found in the arbitrary text are processed. It is intended to provide support for a simple graph of major interactions between functions. It is not worth the time and effort to keep it updated for every little detail, but can be useful to indicate what other major functions within a framework or library are called by a given function. Each function will list which functions it calls and which functions call it. Since this is a template-based enhancement, functions that are targets of an @calls declaration but not otherwise documented will not show up in the output.

 * @calls b
function a() {}

// Calls listing in the output won't be a link, as the target isn't documented.
function b() {}

 * @calls d
function c() {}

 * Calls and Called By listings will be links, as both the caller and callee are documented.
function d() {}

The marker tags are semi-colon delimited. Anything after the first space is considered an alias. Marker tags with no alias are output as listed. Spaces after the first colon and after semi-colons are ignored (removed).

One tag, no alias:
--define="summtags: tag1"

One tag, with an alias
--define="summtags:tag1 tag"
--define="summtags:tag1 an alias"
--define="summtags: tag1 an alias"

Multiple tags:
--define="summtags:tag1 an alias;tag2;tag3 tagged"
--define="summtags:tag1 an alias;tag2; tag3 tagged"
--define="summtags:tag1 an alias; tag2; tag3 tagged"
--define="summtags: tag1 an alias; tag2; tag3 tagged"

They can be used in the same manner as no-argument built-in tags (like @static). When used, a tag's alias will be output in the summary column of the summary tables and in front of the item name in the appropriate details section. As they're pretty simplistic, they're really only good as markers for information (like the built-in static, inner, etc). Perhaps a different user-defined variable for tags with parameters and more usefulness will be available in the future.