Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/ugate/jsdocp

JSDoc/git publishing agent that generates versioned documentation, CHANGELOGs, auto-deployment to a documentation hosting service (e.g. gh-pages, etc.) and much more!
https://github.com/ugate/jsdocp

continuous-integration documentation gh-pages git jsdoc publish travis-ci

Last synced: 2 days ago
JSON representation

JSDoc/git publishing agent that generates versioned documentation, CHANGELOGs, auto-deployment to a documentation hosting service (e.g. gh-pages, etc.) and much more!

Awesome Lists containing this project

README

        



# ![](https://raw.githubusercontent.com/ugate/jsdocp/master/jsdocp/static/favicon-32x32.png) jsdocp

[![npm version](https://badgen.net/npm/v/jsdocp?color=orange&icon=npm)](https://www.npmjs.com/package/jsdocp)
[![Build Status](https://badgen.net/travis/ugate/jsdocp?icon=travis)](https://travis-ci.com/ugate/jsdocp)
[![Dependency Status](https://badgen.net/david/dep/ugate/jsdocp)](https://david-dm.org/ugate/jsdocp)
[![Dev Dependency Status](https://badgen.net/david/dev/ugate/jsdocp)](https://david-dm.org/ugate/jsdocp?type=dev)

The links to the Tutorials and API docs below are examples of what can be generated by `jsdocp`:

![Generated jsdoc/jsdocp pages](https://ugate.github.io/jsdocp/screenshot.png?raw=true "Example: generated jsdoc/jsdocp pages using minami theme")

### JSDoc publishing
`jsdocp` is a [`jsdoc`](http://usejsdoc.org/)/[`git`](https://git-scm.com/) publishing agent that generates versioned documentation, CHANGELOGs, auto-deployment to a documentation hosting service (e.g. `gh-pages`, etc.) and much more!

With `jsdocp` any number of [`jsdoc` templates](https://github.com/jsdoc3/jsdoc#templates) can be used for a personalized experience without the added complexities of setting up your own template extension.

* [Tutorials](https://ugate.github.io/jsdocp/tutorial-1-start.html)
* [API Docs](https://ugate.github.io/jsdocp/jsdocp.html)

### Features:

> __Page customizations:__
 

- __Use virtually any [JSDoc supported template](https://github.com/jsdoc3/jsdoc#templates)__- adds a responsive navigation bar to the doc pages that contains icons/links to the `npm` module (optional), CHANGELOG (optional), source code (optional) and doc version selection
- Branded documentation using your own logo
- Add your own `CSS`, `JavaScript` and `meta` to the documentation pages without altering the chosen template

> __Versioned documentation:__
 

- Each time docs are tagged/deployed to GitHub or any other `git` supported documentation hosting service, the old docs are archived in a versioned directory
- `versions.json` generation for real-time version selections in previously deployed docs (no more wiping out old docs, and old docs auto-reference an updated set of versions!)
- Tag filtering option to restrict doc generation for tagged versions that are released for [`major` or `minor` versions](https://semver.org) rather than every version that is tagged

> __CHANGELOG generation:__
 

- Each time docs are tagged/deployed a `CHANGELOG.md` as well as a markdown parsed `CHANGELOG.html` are generated (optional)
- Customizable CHANGELOG __header__ and __lines__ using markdown, [git formatting](https://git-scm.com/docs/pretty-formats) (e.g. `%h`, etc.) and package/publishing parameter substitutions using [Template Literal](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals) syntax
- Customizable [grep](https://git-scm.com/docs/git-log#git-log---grepltpatterngt) regular expressions for determining which commit messages will appear in the logs (including support for sub-sectioning into __Breaking Changes__, __Features__, __Fixes__ and __Merges/Pull Requests__)

> __Documentation deployment:__
 

- Page deployment execution via [Node.js cli](https://nodejs.org/api/cli.html) from the command line or via the provided API
- Easy integration in continuous integration services like [travis-ci](https://travis-ci.com/), etc.

> __Markdown extensions:__
 

- Include preprocessed source files into any of your tutorial pages. For example, if we have `path/to/my/project/file.js` that we want to include in a tutorial page that contains:
```js
function sum(a, b, c) {
return a + b + c;
}
```
And the following markdown is added to the page:


```jsdocp path/to/my/project/file.js
// Lets include some file sources in our docs!
```

The published docs will contain:

```js
// Lets include some file sources in our docs!
function sum(a, b, c) {
return a + b + c;
}
```

#### >> Check out the [Tutorials](https://ugate.github.io/jsdocp/tutorial-1-start.html) to get started (also generated by `jsdocp`)