Changelog History
Page 10
-
v3.0.2 Changes
- ๐ Infer rest parameters. Fixes #223
- ๐ Avoid filtering comments in lint mode. Fixes #186
- ๐ Nest both properties and params. Fixes #164
-
v3.0.1 Changes
- ๐ BUGFIX: Fix default theme resolution #212
-
v3.0.0 Changes
๐ The largest change to documentation.js so far.
โฌ๏ธ Dropping streams
๐ This a major refactor of the documentation.js interface with a focus on ๐ simplifying the system. Up until this point, documentation.js was built around node.js streams, which are low-level representations of asynchronous series of data. While this abstraction was appropriate for the input and github streams, which are asynchronous, the ๐ majority of documentation.js's internals are simple and synchronous functions for which basic functional composition makes more sense than stream semantics.
๐ Documentation 3.0.0 uses simple functional composition for operations like parmameter inference, rather than streams.
๐ Stronger support for ES6, ES7, and Flow
๐ We've switched to Babel as our source code parser, ๐ which means that we have much broader support of new JavaScript features, including import/export syntax and new features in ES6.
๐ Babel also parses Flow type annotations, and new inference code means that we can infer
- Parameter names & types
- Return types
Without any explicit JSDoc tags. This means that for many simple functions, ๐ we can generate great documentation with less writing.
๐ Stronger module support
๐ Documentation.js now has much better inference for membership and names of symbols exported via
exports
ormodule.exports
.๐ Support for nested symbols
The parent/child relationship between symbols is now fully hierarchical, and symbols can be nested to any depth. For instance:
/** * A global Parent class. */ var Parent = function () {}; /** * A Child class. */ Parent.Child = function () {}; /** * A Grandchild class. */ Parent.Child.Grandchild = function () {};
In addition, filtering by access is now applied to the entire hierarchy: if you mark a class as
@private
, neither it nor its children will be included in the 0๏ธโฃ output by default, regardless of the access specifiers of the children.mdast-based Markdown output
We've switched from templating Markdown output with Handlebars.js to generating an abstract syntax tree of desired output and stringifying it with mdast. ๐ This lets documentation.js output complex Markdown without having to worry about escaping and properly formatting certain elements.
โ Test coverage 100%
๐ documentation.js returns to 100% test coverage, so every single line โ of code is covered by our large library of text fixtures and specific tests.
๐ --lint mode
๐ Specifying the
--lint
flag makes documentation.js check for non-standard types, likeString
, or missing namespaces. If the encountered files have ๐จ any problems, it pretty-prints helpful debug messages and exits with status 1, and otherwise exits with no output and status 0.๐ฅ Breaking changes
- The
--version
flag is now--project-version
.--version
now outputs documentation.js's version
-
v2.0.1 Changes
- ๐ Fixes
@param
tags that refer to properties of unmentioned objects: these will warn instead of crashing. For instance,/** @param {boolean} foo.bar */
. - ๐ฆ Expose
--shallow
option in CLI
- ๐ Fixes
-
v2.0.0 Changes
- ๐ฅ Breaking: Removes
docset
support from documentation.js: this will be supported by a 3rd party tool in the future. This removal means that we no longer have node-sqlite3 as a dependency, and documentation can be installed on systems without a compile toolchain. - ๐จ JSDoc parse errors are now printed to stderr.
- Parameter tags that document sub-parameters, such as
@param {Type} options.option
, are now nested under their parent parameter. - HTML output now includes events.
- Error messages now include source file name and line number.
- @typedef names are now inferred correctly.
- ๐ฅ Breaking: Removes
-
v1.4.0 Changes
- Output for the
@throws
tag. - Output in HTML for the
@properties
tag.
- Output for the
-
v1.3.0 Changes
- Now infers
name
fromclass
andevent
tags - ๐ Support for documenting C++ code with the
polyglot
option and--polyglot
CLI option - ๐ Fixed github linking
- ๐ Support for JSDoc3-style bracketed optional parameters, like
/** * @param {Type} [param=defaultValue] */
- Now infers
-
v1.2.0 Changes
- ๐ฆ Transforms in package.json
browserify.transform
fields are now applied to source code so that babel, etc can be supported. - ๐ Fixes crash caused by requiring JSON files
- ๐ฆ Transforms in package.json
-
v1.1.0 Changes
- โ Add
external
option that allows the user to whitelist specific external modules to be included in with documentation.
- โ Add
-
v1.0.7 Changes
- ๐ Fixes sorting order of documentation
- Switches order of static and instance members in output