You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

63 lines
1.4 KiB

#!/usr/bin/env node
var fs = require("fs")
, path = require("path")
, cli = path.resolve(__dirname, "..", "doc", "cli")
, clidocs = null
, api = path.resolve(__dirname, "..", "doc", "api")
, apidocs = null
, readme = path.resolve(__dirname, "..", "README.md")
fs.readdir(cli, done("cli"))
fs.readdir(api, done("api"))
function done (which) { return function (er, docs) {
if (er) throw er
docs.sort()
if (which === "api") apidocs = docs
else clidocs = docs
if (apidocs && clidocs) next()
}}
function filter (d) {
return d !== "index.md"
&& d.charAt(0) !== "."
&& d.match(/\.md$/)
}
function next () {
console.log(
"npm-index(1) -- Index of all npm documentation\n" +
"==============================================\n")
apidocs = apidocs.filter(filter).map(function (d) {
return [3, path.resolve(api, d)]
})
clidocs = clidocs.filter(filter).map(function (d) {
return [1, path.resolve(cli, d)]
})
writeLine([1, readme])
console.log("# Command Line Documentation")
clidocs.forEach(writeLine)
console.log("# API Documentation")
apidocs.forEach(writeLine)
}
function writeLine (sd) {
var sxn = sd[0]
, doc = sd[1]
, d = path.basename(doc, ".md")
, s = fs.lstatSync(doc)
if (s.isSymbolicLink()) return
var content = fs.readFileSync(doc, "utf8").split("\n")[0].split("--")[1]
console.log("## npm-%s(%d)\n", d, sxn)
console.log(content + "\n")
}