Skip to content

kellyirc/doks

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
bin
 
 
lib
 
 
 
 
 
 
 
 
 
 
 
 
 
 

doks

A configurable, bring-your-own-template documentation generator aimed for user and developer documentation based on source code.

Basic Use

You can either use doks as a command line tool (npm install -g doks) or programmatically, with var Parser = require('doks').Parser.

If you choose to run it from the command line, the best option is to create a doks.json file in the root of your repository, with a structure like this (taken from our doks.json):

{
  "language": "coffee",
  "glob": "lib/parser.coffee",
  "arrayTags": [
    "supports",
    "param"
  ]
}

Languages supported

  • coffee - coffeescript style comments, using ### as the start and end, or ###* as the start of the block, and ### as the end.
  • js - js/javadoc style comments, using /** and */ as the start and end tokens, respectively.
  • escapedCoffee - js-style comments, escaped for coffeescript usage. Tokens are the same as js-style comments, except they have a backtick (`) on the left of the opening token, and the right of the closing token.

Then just run doks and it will generate your documentation, based on your source code comments.

Whether you use the command line tool or run it yourself, the supported options are available here.

Themes

Themes are very flexible by design. You could build one from scratch, or work based off of the existing efforts put forth.

Themes should generally have a similar structure, like so:

core
vendor
views
config.json   // this is required
favicon.ico   // this should be the default doks favicon.ico
index.html    // this is required

A config.json should be structured like so:

{
  "keys": {
    "category": "package",
    "mainType": "category",
    "subType": "name"
  },
  "options": {
    "page": {
      "pageName": "Doks",
      "favicon": "favicon.ico",
      "showGitHubBadges": true
    },
    "nav": {
      "categorySeparate": false,
      "mainTypeRight": false,
      "useSearchBar": true
    },
    "content": {
      "showFileLabels": true,
      "sourceLink": "https://github.com/kellyirc/doks/tree/master/%filePath#L%lineNumber-L%endLineNumber"
    }
  }
}

However, the only required key here is options - doks uses that to merge user configuration into the theme configuration. Everything else is determined by the theme.

About

A configurable, bring-your-own-template documentation generator aimed for user and developer documentation based on source code.

Resources

License

Stars

Watchers

Forks

Packages

No packages published