#!/usr/bin/env node var fs = require("fs") , path = require("path") , root = path.resolve(__dirname, "..") , glob = require("glob") , 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] })) }) return function output (files) { console.log( "npm-index(7) -- Index of all npm documentation\n" + "==============================================\n") writeLines(files, 0) writeLines(files, 1, "Command Line Documentation") writeLines(files, 3, "API Documentation") writeLines(files, 5, "Files") writeLines(files, 7, "Misc") } function writeLines (files, sxn, heading) { if (heading) console.log("# %s\n", heading) files.filter(function (f) { return f[0] === sxn }).forEach(writeLine) } function writeLine (sd) { var sxn = sd[0] || 1 , doc = sd[1] , 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") }