vuepress-plugin-autodoc
v0.1.7
Published
Automatic Code Documentation for VuePress
Maintainers
Readme
Vuepress Autodoc Plugin
Overview
VuePress plugin for automatic code documentation via JSDoc with an API similar to sphinx.ext.autodoc.
Installation
Install in Project
To use this library in a Vue project, add the package to your package dependencies via:
npm install --save-dev vuepress-plugin-autodocOr, with yarn:
yarn add -D vuepress-plugin-autodocQuickstart
Configuration
To use this in documentation for a project, follow the VuePress guidelines. Here is a quick example:
module.exports = {
plugins: [ 'vuepress-plugin-autodoc' ]
}Referencing Code
Once you've configured VuePress to use this plugin, you can automatically generate API documentation for code in your project using:
# API Section
## Full Documentation
/autodoc src/index.js
## Document Specific Objects
/autodoc src/index.js myFunction MyClass myConst
This will automatically render styled API documentation for code elements with JSDoc-compatible docstrings.
This type of dynamic auto-documentation allows developers to be clear in how their API is structured, providing context alongside their API documentation. For example, let's say we have a file in our project that looks like:
// contents of src/index.js
/**
* Generic number class
*/
export class Number {
/**
* Constructor for object.
* @param {Number} input - Number to add.
* @param {String} name - Name for number.
*/
constructor(input) {
this.number = input || 0;
this.name = name;
}
/**
* Return number from class.
* @return {Number} The number value.
*/
value() {
return this.number;
}
/**
* Add another number and return result.
* @param {Number} other - Other number to add.
* @return {Number} Other number to add.
*/
increment(other) {
return this.number + other;
}
}
/**
* Function for adding two numbers.
* @param {Number} x - Left operand.
* @param {Number} y - Right operand.
*/
export function add(x, y) {
return x + y;
}
/**
* Object with functions and data.
*/
const utils = {
/**
* Item in utils array.
*/
item: false,
/**
* Echo value.
*
* @param {Number} value - Value to echo.
*/
echo: value => console.log(value),
}We can render pre-formatted code documentaton for specific items using the following markdown syntax:
// contents of docs/README.md
# API Documentation
Here is documentation for specific elements from our module:
/autodoc src/index.js add Number utils
And here are all of the documented elements:
/autodoc src/index.js
To show sidebar links for auto-documented items, place a header tag with the name of the item immediately before the /autodoc statement:
# Classes
## Number
/autodoc src/index.js Number
# Functions
## add
/autodoc src/index.js add
## subtract
/autodoc src/index.js subtract
Example
See a demo of the documentation here.
