diff options
Diffstat (limited to 'deps/node/deps/npm/scripts/index-build.js')
-rwxr-xr-x | deps/node/deps/npm/scripts/index-build.js | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/deps/node/deps/npm/scripts/index-build.js b/deps/node/deps/npm/scripts/index-build.js new file mode 100755 index 00000000..e782716d --- /dev/null +++ b/deps/node/deps/npm/scripts/index-build.js @@ -0,0 +1,58 @@ +#!/usr/bin/env node +var fs = require('fs') +var path = require('path') +var root = path.resolve(__dirname, '..') +var glob = require('glob') +var conversion = { 'cli': 1, 'api': 3, 'files': 5, 'misc': 7 } + +glob(root + '/{README.md,doc/*/*.md}', function (er, files) { + if (er) throw er + + output(files.map(function (f) { + var b = path.basename(f) + if (b === 'README.md') return [0, b] + if (b === 'index.md') return null + var s = conversion[path.basename(path.dirname(f))] + return [s, f] + }).filter(function (f) { + return f + }).sort(function (a, b) { + return (a[0] === b[0]) + ? (path.basename(a[1]) === 'npm.md' ? -1 + : path.basename(b[1]) === 'npm.md' ? 1 + : a[1] > b[1] ? 1 : -1) + : a[0] - b[0] + })) +}) + +function output (files) { + console.log( + 'npm-index(7) -- Index of all npm documentation\n' + + '==============================================\n') + + writeLines(files, 0) + writeLines(files, 1, 'Command Line Documentation', 'Using npm on the command line') + writeLines(files, 3, 'API Documentation', 'Using npm in your Node programs') + writeLines(files, 5, 'Files', 'File system structures npm uses') + writeLines(files, 7, 'Misc', 'Various other bits and bobs') +} + +function writeLines (files, sxn, heading, desc) { + if (heading) { + console.log('## %s\n\n%s\n', heading, desc) + } + files.filter(function (f) { + return f[0] === sxn + }).forEach(writeLine) +} + +function writeLine (sd) { + var sxn = sd[0] || 1 + var doc = sd[1] + var d = path.basename(doc, '.md') + + var content = fs.readFileSync(doc, 'utf8').split('\n')[0].split('-- ')[1] + + console.log('### %s(%d)\n', d, sxn) + console.log(content + '\n') +} |