https://github.com/thlorenz/wicked
Generates github wiki compatible API documentation from your project's jsdocs and adds them to your wiki.
https://github.com/thlorenz/wicked
Last synced: 3 months ago
JSON representation
Generates github wiki compatible API documentation from your project's jsdocs and adds them to your wiki.
- Host: GitHub
- URL: https://github.com/thlorenz/wicked
- Owner: thlorenz
- License: mit
- Created: 2013-12-08T23:29:36.000Z (over 11 years ago)
- Default Branch: master
- Last Pushed: 2018-12-11T04:18:27.000Z (over 6 years ago)
- Last Synced: 2025-03-30T13:34:28.811Z (4 months ago)
- Language: JavaScript
- Homepage: https://github.com/thlorenz/wicked
- Size: 4.39 MB
- Stars: 51
- Watchers: 3
- Forks: 10
- Open Issues: 12
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# wicked [](http://travis-ci.org/thlorenz/wicked)
A tool that generates github wiki compatible API documentation from your project's jsdocs and adds them to your wiki.

**That is wicked!**
## Installation
npm install -g wicked
## Usage
### Steps
1. Create wiki by checking `wiki` in your project **Features** settings
2. Initialize wiki by accessing the wiki (the book icon in the navbar) which links to `http://github.com/yourname/yourproject/wiki`
3. Install wicked `npm install -g wicked`
4. Go to the root of your github project on your machine
5. Run `wicked`Steps **4 - 5** can be repeated everytime you want to re-generate API docs for your project.
**wicked does not overwrite other pages you created in your wiki** so keep running wicked all you need.More specifically **wicked only removes old `*.API.md` files** from your wiki and updates the links `_Sidebar.md` **without affecting any other links in the sidebar**.
See an example of API docs added by `wicked` in its own [wiki](https://github.com/thlorenz/wicked/wiki).
### Command Line Options```
usage: wicked --Generates wiki API docs for the gihub project in the current directory.
Both options are optional, jsdoc-options get passed to [jsdoc](http://usejsdoc.org/about-commandline.html).
Note: overriding the jsdoc destination (-d, --destination) is not possible since wicked will write files to a temp dir
OPTIONS:
--noclean don't remove the temp directory into which wiki is checked out when finished
--nocommit don't commit the updated wiki automatically nor remove the temp directory
-t, --toc causes wicked to generate a table of contents on top of each wiki page
-l, --loglevel level at which to log: silly|verbose|info|warn|error|silent -- default: info
-h, --help Print this help message.EXAMPLES:
Generate with default options:
wickedGenerate and include table of contents:
wicked --tocOverride [jsdocconf.json](http://usejsdoc.org/about-configuring-jsdoc.html):
wicked -- --configure ./myconf.json
Override loglevel and jsoc configuration and don't remove temp directory:
wicked --loglevel silly --noclean -- --configure ./myconf.json
```## Helpful links and techniques
Since wicked is using [jsdoc](http://usejsdoc.org/) under the hood, it is helpful to review its documentation. I
**highly recommend** [this page](https://developers.google.com/closure/compiler/docs/js-for-compiler#types) explaining
how to specify `@param` types among other useful specs.In order to avoid all functions being attached to the `global` namespace resulting in one API page per function, I namespaced functions in wicked with
`@namespace` and `@memberof` working together. As an example the `Internal` namespace is [defined
here](https://github.com/thlorenz/wicked/blob/59a28777ec777512e7ddab7b75098d8b1b0acd06/index.js#L79-L81) and used by all
the lib functions [like this
one](https://github.com/thlorenz/wicked/blob/59a28777ec777512e7ddab7b75098d8b1b0acd06/lib/wikify.js#L110).Feel free to study the commenting style used in wicked itself and compare with the wiki pages it produced.
In order to make your wicked API pages appear properly styled, please [install the chrome extension or bookmarklet](http://thlorenz.github.io/jsdoc-githubify-inject/).
## API
<static> wicked(args, jsdocargs, cb)Generates jsdoc wiki pages for project of current working directory and updates github wiki with them.
Note
It is assumed that this is run from the root of the project whose wiki should be generated.
Additionally the currently checked out branch will be used when generating blob urls to link source examples.However the github remote and branch can also be set via environment vars as explained in the
documentation of jsdoc-githubify which is used
by wicked under the hood.Parameters:
Name
Type
Description
args
Object
consumed by wicked
Properties
Name
Type
Argument
Description
noclean
Boolean
<optional>
(false) if true, the temp directory into which wiki is checked out will not be removed when done
nocommit
Boolean
<optional>
(false) if true, the updated wiki will not be committed automatically
toc
Boolean
<optional>
(false) if true, a table of contents is added to each generated wiki
loglevel
String
<optional>
(info) level at which to log: silly|verbose|info|warn|error|silent
jsdocargs
Array.<String>
consumed by jsdoc
cb
function
called back when wicked finished generating the wiki page
*generated with [docme](https://github.com/thlorenz/docme)*
## License
MIT