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.
We suppose that you already have Node
and npm
installed.
If not - try nvm.
npm install -g ndoc
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
NDoc Syntax. It is similar to PDoc one, with some extensions (see start of this doc for details).
You can generate prototype documentation for test:
make test
Then open ./tests/prototype-doc/index.html
.
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.
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);
}
This project is distributed under MIT license.