1 | # Docdash
|
2 | [![Build Status](https://api.travis-ci.org/clenemt/docdash.png?branch=master)](https://travis-ci.org/clenemt/docdash) [![npm version](https://badge.fury.io/js/docdash.svg)](https://badge.fury.io/js/docdash) [![license](https://img.shields.io/npm/l/docdash.svg)](LICENSE.md)
|
3 |
|
4 | A clean, responsive documentation template theme for JSDoc 4.
|
5 |
|
6 | ![docdash-screenshot](https://cloud.githubusercontent.com/assets/447956/13398144/4dde7f36-defd-11e5-8909-1a9013302cb9.png)
|
7 |
|
8 | ![docdash-screenshot-2](https://cloud.githubusercontent.com/assets/447956/13401057/e30effd8-df0a-11e5-9f51-66257ac38e94.jpg)
|
9 |
|
10 | ## Example
|
11 | See http://clenemt.github.io/docdash/ for a sample demo. :rocket:
|
12 |
|
13 | ## Install
|
14 |
|
15 | ```bash
|
16 | $ npm install docdash
|
17 | ```
|
18 |
|
19 | ## Usage
|
20 | Clone repository to your designated `jsdoc` template directory, then:
|
21 |
|
22 | ```bash
|
23 | $ jsdoc entry-file.js -t path/to/docdash
|
24 | ```
|
25 |
|
26 | ## Usage (npm)
|
27 | In your projects `package.json` file add a new script:
|
28 |
|
29 | ```json
|
30 | "script": {
|
31 | "generate-docs": "node_modules/.bin/jsdoc -c jsdoc.json"
|
32 | }
|
33 | ```
|
34 |
|
35 | In your `jsdoc.json` file, add a template option.
|
36 |
|
37 | ```json
|
38 | "opts": {
|
39 | "template": "node_modules/docdash"
|
40 | }
|
41 | ```
|
42 |
|
43 | ## Sample `jsdoc.json`
|
44 | See the config file for the [fixtures](fixtures/fixtures.conf.json) or the sample below.
|
45 |
|
46 | ```json
|
47 | {
|
48 | "tags": {
|
49 | "allowUnknownTags": false
|
50 | },
|
51 | "source": {
|
52 | "include": "../js",
|
53 | "includePattern": "\\.js$",
|
54 | "excludePattern": "(node_modules/|docs)"
|
55 | },
|
56 | "plugins": [
|
57 | "plugins/markdown"
|
58 | ],
|
59 | "opts": {
|
60 | "template": "assets/template/docdash/",
|
61 | "encoding": "utf8",
|
62 | "destination": "docs/",
|
63 | "recurse": true,
|
64 | "verbose": true
|
65 | },
|
66 | "templates": {
|
67 | "cleverLinks": false,
|
68 | "monospaceLinks": false
|
69 | }
|
70 | }
|
71 | ```
|
72 |
|
73 | ## Options
|
74 | Docdash supports the following options:
|
75 |
|
76 | ```json5
|
77 | {
|
78 | "docdash": {
|
79 | "static": [false|true], // Display the static members inside the navbar
|
80 | "sort": [false|true], // Sort the methods in the navbar
|
81 | "sectionOrder": [ // Order the main section in the navbar (default order shown here)
|
82 | "Classes",
|
83 | "Modules",
|
84 | "Externals",
|
85 | "Events",
|
86 | "Namespaces",
|
87 | "Mixins",
|
88 | "Tutorials",
|
89 | "Interfaces"
|
90 | ],
|
91 | "disqus": "", // Shortname for your disqus (subdomain during site creation)
|
92 | "openGraph": { // Open Graph options (mostly for Facebook and other sites to easily extract meta information)
|
93 | "title": "", // Title of the website
|
94 | "type": "website", // Type of the website
|
95 | "image": "", // Main image/logo
|
96 | "site_name": "", // Site name
|
97 | "url": "" // Main canonical URL for the main page of the site
|
98 | },
|
99 | "meta": { // Meta information options (mostly for search engines that have not indexed your site yet)
|
100 | "title": "", // Also will be used as postfix to actualy page title, prefixed with object/document name
|
101 | "description": "", // Description of overal contents of your website
|
102 | "keyword": "" // Keywords for search engines
|
103 | },
|
104 | "search": [false|true], // Display seach box above navigation which allows to search/filter navigation items
|
105 | "commonNav": [false|true], // Group all html code for <nav> in a nav.inc.html fetched on each page (instead of include it in each html page, save {navSize}×{nb html pages} which can be huge on big project)
|
106 | "collapse": [false|true|top], // Collapse navigation by default except current object's navigation of the current page, top for top level collapse
|
107 | "wrap": [false|true], // Wrap long navigation names instead of trimming them
|
108 | "typedefs": [false|true], // Include typedefs in menu
|
109 | "navLevel": [integer], // depth level to show in navbar, starting at 0 (false or -1 to disable)
|
110 | "private": [false|true], // set to false to not show @private in navbar
|
111 | "removeQuotes": [none|all|trim],// Remove single and double quotes, trim removes only surrounding ones
|
112 | "scripts": [], // Array of external (or relative local copied using templates.default.staticFiles.include) js or css files to inject into HTML,
|
113 | "ShortenTypes": [false|true], // If set to true this will resolve the display name of all types as the shortened name only (after the final period).
|
114 | "menu": { // Adding additional menu items after Home
|
115 | "Project Website": { // Menu item name
|
116 | "href":"https://myproject.com", //the rest of HTML properties to add to manu item
|
117 | "target":"_blank",
|
118 | "class":"menu-item",
|
119 | "id":"website_link"
|
120 | },
|
121 | "Forum": {
|
122 | "href":"https://myproject.com.forum",
|
123 | "target":"_blank",
|
124 | "class":"menu-item",
|
125 | "id":"forum_link"
|
126 | }
|
127 | },
|
128 | "scopeInOutputPath": [false|true], // Add scope from package file (if present) to the output path, true by default.
|
129 | "nameInOutputPath": [false|true], // Add name from package file to the output path, true by default.
|
130 | "versionInOutputPath": [false|true] // Add package version to the output path, true by default.
|
131 | }
|
132 | }
|
133 | ```
|
134 |
|
135 | Place them anywhere inside your `jsdoc.json` file.
|
136 |
|
137 | ## Contributors
|
138 |
|
139 | Thanks to [lodash](https://lodash.com) and [minami](https://github.com/nijikokun/minami).
|
140 |
|
141 | ## License
|
142 | Licensed under the Apache License, version 2.0. (see [Apache-2.0](LICENSE.md)).
|