NDoc - JavaScript documentation generator
NDoc is an inline comment parser and JavaScript documentation generator written in Node.JS. This project was inspired by PDoc. It tries to keep compatibility, but has some differences:
- NDoc is primarily a CLI tool, so you don't need to code your documentor, although it can be easily used as library.
- Clarified EBNF syntax. Definitions now MUST be separated with an empty line from the following comments.
- Added options for
deprecated
tag: you can set versions, when tag was deprecated and when method/property will be removed. - Added new tags:
read-only
,internal
,chainable
- Events support.
How to Install
We suppose that you already have Node
and npm
installed.
If not - try nvm.
npm install -g ndoc
Usage
usage: ndoc [-h] [-v] [--exclude PATTERN] [-o PATH] [--use PLUGIN]
[--alias MAPPING] [-r RENDERER] [--link-format FORMAT]
[-t TEMPLATE] [--show-all] [--package PACKAGE] [--index FILE]
[--gh-ribbon URL] [--broken-links ACTION] [--noenv]
PATH[PATH ...]
Positional arguments:
PATH Source files location
Optional arguments:
-h, --help Show this help message and exit.
-v, --version Show program's version number and exit.
--exclude PATTERN Glob patterns of filenames to exclude (you
can use wildcards: ?, *, **).
-o PATH, --output PATH Resulting file(s) location.
--use PLUGIN Load custom plugin.
--alias MAPPING Registers extensions alias. For example
`cc:js` will register `cc` extension as an
alias of `js`
-r RENDERER, --render RENDERER Documentation renderer (html, json). More
can be added by custom plugins.
--link-format FORMAT View sources link (no links by default)
format. You can use `{file}` and `{line}`
and any of `{package.*}` variables for
interpolation.
-t TEMPLATE, --title TEMPLATE Documentation title template. You can use
any of `{package.*}` variables for
interpolation. DEFAULT: `{package.name}
{package.version} API documentation`
--show-all By default `internal` methods/properties
are not shown. This trigger makes ndoc show
all methods/properties
--package PACKAGE Read specified package.json FILE. When not
specified, read ./package.json if such file
exists.
--index FILE Index file (with introduction text), e.g.
README.md file.
--gh-ribbon URL Add "Fork me on GitHub" ribbon with given
URL. You can use any of `{package.*}`
variables for interpolation.
--broken-links ACTION What to do if broken link occurred (show,
hide, throw). DEFAULT: `show`.
--noenv Ignore .ndocrc
Syntax
NDoc Syntax. It is similar to PDoc one, with some extensions (see start of this doc for details).
For developers
You can generate prototype documentation for test:
make test
Then open ./tests/prototype-doc/index.html
.
Custom parsers and renderers
You can create and use your own parser/renderer via --use
option. Get one of
the parsers or renderers as a base template, copy it
into separate folder. Create package.json and modify it to fit your needs. Then
attach it with --use my-module
argument.
Using NDoc as module
You can use NDoc as module, for example, to override default options processing.
var NDoc = require('ndoc');
var options = {
linkFormat : 'http://example.com/{file}#{line}',
output: : 'doc'
};
var ast;
try {
ast = NDoc.parse(['lib/my-module.js'], options);
} catch (err) {
console.error(err);
process.exit(1);
}
try {
NDoc.render('html', ast, options);
} catch (err) {
console.error(err);
process.exit(1);
}
License
This project is distributed under MIT license.