Security News
JSR Working Group Kicks Off with Ambitious Roadmap and Plans for Open Governance
At its inaugural meeting, the JSR Working Group outlined plans for an open governance model and a roadmap to enhance JavaScript package management.
jsdoc-to-markdown
Advanced tools
The jsdoc-to-markdown npm package is a tool that generates markdown documentation from JSDoc comments in your JavaScript code. It is useful for creating comprehensive and readable documentation for your projects.
Generate Markdown Documentation
This feature allows you to generate markdown documentation from JSDoc comments in your JavaScript files. The code sample demonstrates how to use jsdoc-to-markdown to read JSDoc comments from JavaScript files in the 'src' directory and output the generated markdown to 'docs/api.md'.
const jsdoc2md = require('jsdoc-to-markdown');
const fs = require('fs');
const inputFiles = 'src/**/*.js';
const outputFile = 'docs/api.md';
jsdoc2md.render({ files: inputFiles })
.then(output => fs.writeFileSync(outputFile, output));
Customizing the Output
This feature allows you to customize the output of the generated markdown documentation using a template. The code sample shows how to use a custom template to format the documentation for a specific module.
const jsdoc2md = require('jsdoc-to-markdown');
const fs = require('fs');
const inputFiles = 'src/**/*.js';
const outputFile = 'docs/api.md';
const template = `{{#module name="myModule"}}{{>docs}}{{/module}}`;
jsdoc2md.render({ files: inputFiles, template: template })
.then(output => fs.writeFileSync(outputFile, output));
Filtering Output
This feature allows you to filter the output of the generated markdown documentation. The code sample demonstrates how to disable GitHub Flavored Markdown (GFM) in the output by setting the 'no-gfm' option to true.
const jsdoc2md = require('jsdoc-to-markdown');
const fs = require('fs');
const inputFiles = 'src/**/*.js';
const outputFile = 'docs/api.md';
jsdoc2md.render({ files: inputFiles, 'no-gfm': true })
.then(output => fs.writeFileSync(outputFile, output));
The 'documentation' package is another tool for generating documentation from JSDoc comments. It offers a command-line interface and supports various output formats, including HTML and JSON. Compared to jsdoc-to-markdown, 'documentation' provides more flexibility in terms of output formats but may require more configuration.
The 'jsdoc' package is a popular tool for generating HTML documentation from JSDoc comments. It is highly configurable and supports a wide range of tags and plugins. While 'jsdoc' focuses on generating HTML documentation, jsdoc-to-markdown is specialized in generating markdown documentation, making it more suitable for projects that prefer markdown.
The 'esdoc' package is a documentation generator for JavaScript that supports ES6+ syntax. It generates HTML documentation and includes features like coverage reports and test integration. Compared to jsdoc-to-markdown, 'esdoc' is more focused on modern JavaScript syntax and provides additional features like coverage reports.
work in progress, unstable, draft documentation
#jsdoc-to-markdown Documented source code in, markdown out.. In development, any feedback welcome.
##Install
Ensure node.js is installed first. Linux/Mac users may need to run the following commands with sudo
.
###Globally
$ npm install -g jsdoc-to-markdown
###Bundled with your project
$ npm install jsdoc-to-markdown --save-dev
Then add an docs
build task to your package.json
scripts, e.g.:
{
"name": "my-web-app",
"version": "1.0.0",
"scripts": {
"docs": "jsdoc2md --index lib/*.js"
}
}
This approach abstracts implementation details away, saving collaborators the hassle of installing / learning jsdoc-to-markdown
. Docs are generated like so:
$ npm run docs
###As a grunt plug-in See grunt-jsdoc-to-markdown.
##Usage
Document your source code using correct jsdoc syntax, then run it through jsdoc2md
.
$ jsdoc2md <options> <source_files>
-t, --template <string> A custom handlebars template to insert the rendered documentation into,
overriding the default
-p, --preset <string> Use a preset template ('default', 'global' or 'modules')
-j, --json Output the template data only
-h, --help Print usage information
--src <array> The javascript source files. The default option.
--index Include an index for each module and class, linking to members
--skip-heading Skip the module heading, useful if you already have the heading
elsewhere in your template.
--private Include symbols marked @private in the output
##examples
These projects have readme files rendered by jsdoc2md
:
Example
var jsdoc2md = require("jsdoc-to-markdown");
###jsdoc2md.render(options) Params
object
- The render options
string
- A handlebars template to insert your documentation into.string
- Choose from one of the built-in templatesboolean
- Return the JSON template data onlyArray.<string>
- The javascript source filesboolean
- Include an index for each module and class, linking to membersboolean
- Skip the module heading, useful if you already have the heading elsewhere in your template.boolean
- Include symbols marked @private in the output
###callback: onRender
Called by jsdoc2md.render()
on completion.
Params
object
- An error instance if applicable, else null
string
- the rendered markdownScope: inner typedef of jsdoc-to-markdown
Type: function
FAQs
Generates markdown API documentation from jsdoc annotated source code
The npm package jsdoc-to-markdown receives a total of 119,380 weekly downloads. As such, jsdoc-to-markdown popularity was classified as popular.
We found that jsdoc-to-markdown demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 0 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
At its inaugural meeting, the JSR Working Group outlined plans for an open governance model and a roadmap to enhance JavaScript package management.
Security News
Research
An advanced npm supply chain attack is leveraging Ethereum smart contracts for decentralized, persistent malware control, evading traditional defenses.
Security News
Research
Attackers are impersonating Sindre Sorhus on npm with a fake 'chalk-node' package containing a malicious backdoor to compromise developers' projects.