diff --git a/bin/docdown b/bin/docdown
index faab52d..6121116 100755
--- a/bin/docdown
+++ b/bin/docdown
@@ -69,12 +69,12 @@ if (
'Usage:',
' docdown inputFile.js outputFile.md [options]',
'Options:',
- ' lang="js" The language indicator for code blocks.',
- ' sort=true|false Specify whether entries are sorted.',
- ' style="default|github" The hash style for links.',
- ' title="title" The documentation title.',
- ' toc="categories|properties" The table of contents organization style.',
- ' url="url" The source URL.'
+ ' lang="js" The language indicator for code blocks.',
+ ' sort=true|false Specify whether entries are sorted.',
+ ' style="default|github" The hash style for links.',
+ ' title="title" The documentation title.',
+ ' toc="categories|properties|none" The table of contents organization style.',
+ ' url="url" The source URL.'
].join('\n'));
process.exit(1);
}
diff --git a/lib/generator.js b/lib/generator.js
index 832e846..949f148 100644
--- a/lib/generator.js
+++ b/lib/generator.js
@@ -95,6 +95,7 @@ function makeAnchor(href, text) {
*/
function generateDoc(source, options) {
var api = [],
+ noTOC = options.toc == 'none',
byCategories = options.toc == 'categories',
entries = getEntries(source),
organized = {},
@@ -294,57 +295,61 @@ function generateDoc(source, options) {
else {
tocGroups.sort(util.compareNatural);
}
- // Start markdown for TOC categories.
- var tocMarkdown = ['\n'];
- _.each(tocGroups, function(group) {
- tocMarkdown.push(
- '\n',
- '## `' + group + '`'
- );
-
- if (sortEntries && organized[group]) {
- // Sort the TOC groups.
- organized[group].sort(function(value, other) {
- var valMember = value.getMembers(0),
- othMember = other.getMembers(0);
-
- return util.compareNatural(
- (valMember ? (valMember + getSeparator(value)) : '') + value.getName(),
- (othMember ? (othMember + getSeparator(other)) : '') + other.getName()
- );
- });
- }
- // Add TOC entries for each category.
- _.each(organized[group], function(entry) {
- var member = entry.getMembers(0) || '',
- name = entry.getName(),
- sep = getSeparator(entry),
- title = escape((member ? (member + sep) : '') + name);
-
- if (entry.isAlias()) {
- // An alias has a more complex html structure.
- var owner = entry.getOwner();
- tocMarkdown.push(
- '* `' +
- title + '` -> `' + owner.getName() + '`' +
- ''
- );
- } else {
- // Add a simple TOC entry.
- tocMarkdown.push(
- '* ' +
- makeAnchor(
- '#' + entry.getHash(style),
- '`' + title + '`'
- )
- );
+
+ var tocMarkdown = [];
+ if (!noTOC) {
+ // Start markdown for TOC categories.
+ tocMarkdown = ['\n'];
+ _.each(tocGroups, function(group) {
+ tocMarkdown.push(
+ '\n',
+ '## `' + group + '`'
+ );
+
+ if (sortEntries && organized[group]) {
+ // Sort the TOC groups.
+ organized[group].sort(function(value, other) {
+ var valMember = value.getMembers(0),
+ othMember = other.getMembers(0);
+
+ return util.compareNatural(
+ (valMember ? (valMember + getSeparator(value)) : '') + value.getName(),
+ (othMember ? (othMember + getSeparator(other)) : '') + other.getName()
+ );
+ });
}
+ // Add TOC entries for each category.
+ _.each(organized[group], function(entry) {
+ var member = entry.getMembers(0) || '',
+ name = entry.getName(),
+ sep = getSeparator(entry),
+ title = escape((member ? (member + sep) : '') + name);
+
+ if (entry.isAlias()) {
+ // An alias has a more complex html structure.
+ var owner = entry.getOwner();
+ tocMarkdown.push(
+ '* `' +
+ title + '` -> `' + owner.getName() + '`' +
+ ''
+ );
+ } else {
+ // Add a simple TOC entry.
+ tocMarkdown.push(
+ '* ' +
+ makeAnchor(
+ '#' + entry.getHash(style),
+ '`' + title + '`'
+ )
+ );
+ }
+ });
+ tocMarkdown.push('\n\n');
});
- tocMarkdown.push('\n\n');
- });
- // End markdown for the TOC.
- tocMarkdown.push('\n');
+ // End markdown for the TOC.
+ tocMarkdown.push('\n');
+ }
var docMarkdown = ['# '+ options.title + '\n'];
push.apply(docMarkdown, tocMarkdown);
@@ -355,7 +360,10 @@ function generateDoc(source, options) {
if (byCategories && !reSpecialCategory.test(group)) {
var groupName = '“' + group + '” Methods';
}
- docMarkdown.push('## `' + (groupName || group) + '`');
+ if (!noTOC) {
+ docMarkdown.push('## `' + (groupName || group) + '`');
+ }
+
_.each(organized[group], function(entry) {
if (entry.markdown) {
docMarkdown.push(entry.markdown);