| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Name | Name | Last commit date | ||
|---|---|---|---|---|
API documentation generator
Declarative, extensible, language neutral and fast API comments to commonmark compliant markdown.
Designed for small to medium sized libraries, for large projects use one of the many other documentation tools. Uses javascript for fenced code blocks by default but you can configure this library for any language.
See EXAMPLE.md or the api for example output.
npm i mkapi --save
For the command line interface install mkdoc globally (npm i -g mkdoc).
Pass files and options:
var parse = require('mkapi');
parse(['index.js'], {output: process.stdout});Print the documentation to stdout:
mkapi index.js
Create a markdown document from the comments in a source file:
mkapi index.js --title=API -o API.mdSet initial heading level:
mkapi index.js --title=API --level=2 -o API.mdInclude private symbols in the output:
mkapi index.js --private -o API.mdComments are parsed from /**...*/ at the moment, later the aim is to support other styles of comment declarations.
Whilst many tags allow for a description parameter it is recommended that the description starts the comment so that it is more prominent.
/**
* Module description.
*
* @module ModuleName
*/If you only have a short description use the description tag parameter:
/**
* @module ModuleName Short module description.
*/The general syntax for tags is:
@tag {type} name descriptionWhen a tag name is enclosed in [] it is deemed to be optional, for example:
/**
* @name {function} noop
* @param {Function} [cb] Callback function.
*/Meta tags are rendered as a list at the top of the block below the symbol description:
Notice tags are rendered as blockquote elements at the top or below meta tags when present:
The following tags are ways to add information to the output.
A type tag maps to a render function, see the render api docs.
You can specify the type using the tag itself:
/**
* @function getName
* @protected
*/Or you can use shorthand tags:
/**
* @protected {function} getName
*/Modifier tags give information about a symbol:
Tags specific to the {function} type:
Tags specific to the {property} type:
Type identifiers may be specified to some tags using a type {id}, the syntax is:
@tag {type} <name> [description]For example to declare a function symbol with the name noop:
@name {function} noop@name [{type}] <name>Sets the symbol name and optionally specifies the type of the symbol (see type tags).
/**
* @name {function} FunctionName
*//**
* @name FunctionName
* @function
*/@module <name>Document a module.
/**
* Module description.
*
* @module ModuleName
*/@class <name>Document a class.
/**
* Class description.
*
* @class ClassName
*/@constructor <name>Document a constructor function.
/**
* Constructor description.
*
* @constructor ConstructorName
*/@inherits <superclass...>Document inheritance hierarchy for a constructor function or class.
/**
* Constructor description.
*
* @constructor ConstructorName
* @inherits EventEmitter Object
*/The generated markdown includes certain visual cues in headings:
.member
Indicates a class member.
#member
Indicates a static class member, borrowed from HTML identifiers.
SubClass : SuperClass
Indicates an inheritance hierarchy.
Usage: mkapi [-ah] [--ast] [--[no]-private] [--[no]-protected] [--help]
[--version] [--output=<file>] [--title=<val>] [--level=<num>]
[--lang=<lang>] [--indent=<num>] <files...>
Documentation generator.
Options
-o, --output=[FILE] Write output to FILE (default: stdout)
-t, --title=[VAL] Title for initial heading
-l, --level=[NUM] Initial heading level (default: 1)
-L, --lang=[LANG] Language for fenced code blocks (default: javascript)
-i, --indent=[NUM] Number of spaces for JSON (default: 2)
-a, --ast Print AST as JSON
--[no]-private Enable or disable private symbols
--[no]-protected Enable or disable protected symbols
-h, --help Display help and exit
--version Print the version and exit
mkapi@1.2.2
parse(files[, opts], cb)var parse = require('mkapi')
, parse(['index.js'], {output: process.stdout});Accepts an array of files and iterates the file contents in series asynchronously.
Parse the comments in each file into a comment AST and transform the AST into commonmark compliant markdown.
The callback function is passed an error on failure: function(err).
Returns an event notifier.
register(type[, renderer])Register a render function for a given type tag.
Without the renderer option attempts to return a render function for the specified type.
Returns a renderer or the registry.
tag(name[, opts])Adds a tag to the list of known tags.
Use this to create custom tags.
Returns the tag definition.
new Tag()Encapsulates a tag definition.
Encapsulates operations on a comment AST token.
This implementation uses a cache map to look up tags in the underlying list of tags.
getDetail.prototype.getDetail([names])Get the details name, type tag and id for this comment.
Returns an object with name, type and id.
getInfo.prototype.getInfo(method)Gets an info object containing generic tag lookups.
If the method parameter is given the object is decorated with fields specific to the function type.
find.prototype.find(id)Finds the last tag in the tag list by tag id.
Returns a tag or undefined if not found.
collect.prototype.collect(id)Collects all tags with the specified id.
Returns an array of tags.
Every aspect of the program output may be modified by changing the configuration variables.
Constants representing each of the recognised tags are exposed on this module, for example: this.conf.MODULE yields module.
Array namesList of default tag names.
Object titleVariables for headings and notices, eg: Deprecated.
Array shorthandList of tag names that support the shorthand symbol type.
Object formatMap of format functions.
Object cuesMap of variables for visual cues.
Object renderMap of render functions.
Object includeMap of symbol types to include.
String LANG = javascript;Default language for fenced code blocks.
Provides string format functions.
heading(val, level)Gets a heading string.
Returns the heading.
meta(val, title)Gets a list item for the meta data.
Returns a list item for the meta data.
fenced(code, info)Gets a fenced code block.
Returns a fenced code block.
deprecated(tag)Gets a deprecated notice.
Returns a deprecation notice.
signature(params)Gets a function signature.
Returns a function signature.
parameter(tag)Gets a list item for parameter listings.
Returns a parameter list item.
returns(token, tag)Gets a returns statement.
Returns the returns value.
link(tag)Gets a link from a tag.
Returns formatted string.
getAccess(opts)Gets the access modifier for a symbol.
Returns the access for the symbol.
property(tag, opts)Gets a property code string.
Returns formatted string.
inherits(tag, opts)Gets the inheritance string for a class or constructor.
method(tag, opts[, title])Gets the heading title for a function.
getTodo(tag)Gets the todo list.
Returns The list of todo items.
Default render functions.
Render functions are called asynchronously and must invoke the callback function to process the next comment.
_class(type, token, cb)Render a class (or module) block.
_function(type, token, cb)Render a function block.
_property(type, token, cb)Render a property block.
Output writer helper functions.
Responsible for writing to the output output but should not perform any formatting of the output string, their role is to extract the relevant information; call a format function and write the result to the output appending newlines where necessary.
Render functions can access these methods using this.
These functions call the format functions using this.format.
heading(val, level)Write a heading at the specified level.
newline([num])Write one or more newlines.
fenced(code)Write a fenced code block.
signature(params, name, lang)Write a function signature as a fenced code block.
parameters(params)Write a list of parameters.
Used for writing param, option, throws etc.
meta(token)Write meta data (author, version, since etc) and handle writing the deprecated notice.
describe(type, token)Print the description for a token.
see(token, depth)Write the list of see also links.
new Writer()Writer helper functions, an instance of this class is the scope for program execution and is decorated with additional fields when parse is called.
MIT
Created by mkdoc on February 10, 2017
| Back | FazBrowse Home | New Git URL |