node package manager
We need your input. Help make JavaScript better: Take the 2017 JavaScript Ecosystem survey »


sia - doc generator for AngularJS modules

sia is a documentation generator built on dgeni that uses Angular Material and is heavily inspired by it's docs.


npm install sia --save-dev
// gulpfile.js 
var gulp = require('gulp');
var pkg = require('./package.json');
require('sia')(gulp, {
  basePath: __dirname,
  moduleTitle: 'My Module',
  modulePrefix: 'myModule',
  ngVersion: '1.4.6',
  moduleJs: ['../my-module.js'],
  moduleCss: ['../my-module.css'],
  repositoryUrl: pkg.repository && pkg.repository.url.replace(/^git/, 'https').replace(/(\.git)?\/?$/,'')

Generate docs:

gulp docs

Serve docs with local webserver:

gulp docs:serve


  • basePath string - Base path where src and docs folders are located.
  • moduleTitle string - Title displayed in docs.
  • modulePrefix string - Module prefix used when determining module ids from folder structure.
  • ngVersion string - AngularJS version to load. (angular, angular-animate, angular-route, angular-aria, and angular-messages are automatically loaded)
  • moduleJs Array - JavaScript files to load.
  • moduleCss Array - CSS files to load.
  • repositoryUrl string - Repository base URL.
  • debug boolean - Debug mode. Default false.


Markdown files in {basePath}/docs that have @ngdoc content are included in the generated docs. Create the documentation homepage at docs/

<!-- docs/ -->
@ngdoc content
@name Introduction

To display a file in the docs sidenav use @area nav.


Components in {basePath}/src} that have @ngdoc service, @ngdoc directive, or @ngdoc filter are included in the docs if they belong to a documented module.

For example:

 * @ngdoc module
 * @name myApp.components.accordion
 * @ngdoc directive
 * @name accordion
 * @module myApp.components.accordion
 * @description
 * Accordion