This file describes notable changes in each version of JSDoc 3. To download a specific version of JSDoc 3, see GitHub's tags page.
NOTE: This change history is a work in progress.
- Updated the
fs
andpath
modules to make their behavior more consistent with Node.js. (Multiple commits) - Updated or replaced numerous third-party modules. (Multiple commits)
- TODO: Closure Compiler types (if we don't have major improvements, mention #118, #226)
- JSDoc now provides a
-l/--lenient
option that tells JSDoc to continue running if it encounters a non-fatal error. (Multiple issues) - Node Package Manager (npm) can now install JSDoc from its GitHub repository. Note: JSDoc is not currently compatible with Node.js. However, this change allows JSDoc to be installed as a dependency of a Node.js project. (Multiple commits)
- A template's
publish.js
file should now assign itspublish
function toexports.publish
, rather than defining a globalpublish
function. The globalpublish
function is deprecated and may not be supported in future versions. JSDoc's built-in templates reflect this change. (#166) - The template helper (
templateHelper.js
) exports a variety of new functions for finding information within a set of doclets. These functions were previously contained within the default template. (#186) - JSDoc now embeds a version of Mozilla Rhino that recognizes Node.js packages, including
package.json
files. (Multiple commits)
- If a
README.md
file is passed to JSDoc, its contents will be included on theindex.html
page of the generated documentation. (#128) - The
@augments
tag can now refer to an undocumented member, such aswindow.XMLHTTPRequest
. (#160) - The
@extends
tag can now refer to an undocumented member, such aswindow.XMLHttpRequest
. In addition, you can now use@host
as a synonym for@extends
. (#145) - The
@lends
tag is now supported in multiline doclets. (#163) - The
@property
tag no longer results in malformed doclets. (20f87094) - On Windows,
jsdoc.cmd
now provides the same options as thejsdoc
shell script. (#127) - JSDoc now provides
setTimeout()
,clearTimeout()
,setInterval()
, andclearInterval()
functions. (Multiple commits) - JSDoc no longer provides a global
exit()
function. Useprocess.exit()
instead. (1228a8f7) - JSDoc can now be configured to pass a raw array of doclets, rather than a TaffyDB, to a template's
publish
function. To use this feature, edit yourconf.json
file to include atemplates.docletFormat
property with the valuearray
. Note: This option is not compatible with JSDoc's built-in templates. (#258) - JSDoc now includes additional shims for Node.js' built-in modules. Note: Many of these shims implement only the functions that JSDoc uses, and they may not be consistent with Node.js' behavior in edge cases. (Multiple commits)
- When running tests, you can now use the
--nocolor
option to disable colored output. On Windows, colored output is always disabled. (e17601fe, 8bc33541)
- The
jsdoc
andjsdoc.cmd
scripts now work correctly with paths that include spaces. (#127, #130) - The
jsdoc
script now works correctly on Cygwin and MinGW, and with thedash
shell. (#182, #184, #187) - The
-d/--destination
option is no longer treated as a path relative to the JSDoc directory. Instead, it can contain an absolute path, or a path relative to the current working directory. (f5e3f0f3) - JSDoc now provides default options for the values in
conf.json
. (#129) - Doclets for getters and setters are now parsed appropriately. (#150)
- If a doclet's text contains leading asterisks, such as bullets representing a Markdown unordered list, the leading asterisks are no longer removed. (#172)
- If a child member overrides an ancestor member, the ancestor member is no longer documented. (#158)
- If a member of a namespace has the same name as a namespace, the member is now documented correctly. (#214)
- When Markdown formatting is enabled, underscores in inline
{@link}
tags are no longer treated as Markdown formatting characters. (#259) - Markdown files for tutorials are now parsed based on the settings in
conf.json
, rather than using the "evilstreak" Markdown parser in all cases. (#220) - If a folder contains both tutorial source files and
.js
files, JSDoc no longer attempts to parse the.js
files as JSON files. (#222) - The "evilstreak" Markdown parser now works correctly with files that use Windows-style line endings. (#223)
- JSDoc no longer fails unit tests when the
conf.json
file is not present. (#206) - On Windows, JSDoc now passes all unit tests. (Multiple commits)
- The new
partial
plugin adds support for a@partial
tag, which links to an external file that contains JSDoc comments. (#156) - The new
eventDumper
plugin logs information about parser events to the console. (#242) - The new
verbose
plugin logs the name of each input file to the console. (#157)
- The default template can now be used if it is placed outside of the JSDoc directory. (#198)
- The default template no longer throws an error when a parameter does not have a name. (#175)
- The default template now omits the "Classes" header when no classes are documented. (eb0186b9)
- The default template now shows an "Inherited From" section when a member is inherited from another member. (#154)
- The default template now includes function signatures in headings. (#253)
- The default template now shows the type of events. (#192)
- The default template now links to a function's return type when appropriate. (#192)
- The default template now correctly generates output for tutorials. (#188)
- The default template now uses prettify.js as its syntax highlighter, and its files are included in JSDoc's output rather than downloaded from a remote server. (#193)
- The default template no longer overwrites the
index.html
output file if a namespace calledindex
has been documented. (#244) - The Haruki template now uses arrays rather than objects to contain members, allowing overloaded member to be documented. (#153)
- The Haruki template now provides a clearer error message when the output destination is not specified correctly. (#174)
- The
conf.json
file may now containsource.include
andsource.exclude
properties. (#56)source.include
specifies files or directories that JSDoc should always check for documentation.source.exclude
specifies files or directories that JSDoc should never check for documentation. These settings take precedence over thesource.includePattern
andsource.excludePattern
properties, which contain regular expressions that JSDoc uses to search for source files.
- The
-t/--template
option may now specify the absolute path to a template. (#122)
- JSDoc no longer throws exceptions when a symbol has a special name, such as
hasOwnProperty
. (1ef37251) - The
@alias
tag now works correctly when documenting inner classes as globals. (810dd7f7)
- The default template now sorts classes by name correctly when the classes come from several modules. (4ce17195)
- The Haruki template now correctly supports
@example
,@members
, and@returns
tags. (6580e176, 59655252, 31c8554d)
Initial release.