Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/npm/cli.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorisaacs <i@izs.me>2013-07-12 01:12:02 +0400
committerisaacs <i@izs.me>2013-07-12 01:12:02 +0400
commite600886532351c18852a9fe5a1386fffb773ba8d (patch)
tree039fe5c0680685c6ccdc6027534e46f8f84e014e /scripts
parent4b30c14f7d77a6e7497a49d4cd1ac8d75f2a2065 (diff)
doc: update index builder for new format
Diffstat (limited to 'scripts')
-rwxr-xr-xscripts/index-build.js91
1 files changed, 45 insertions, 46 deletions
diff --git a/scripts/index-build.js b/scripts/index-build.js
index 551bb1d56..56827fcc7 100755
--- a/scripts/index-build.js
+++ b/scripts/index-build.js
@@ -1,63 +1,62 @@
#!/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 () {
+ , 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 [1, 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
+ : path.basename(a[1]) === "README.md" ? -1
+ : path.basename(b[1]) === "README.md" ? 1
+ : a[1] > b[1] ? 1 : -1 )
+ : a[0] - b[0]
+ }))
+})
+
+return
+
+function output (files) {
console.log(
- "npm-index(1) -- Index of all npm documentation\n" +
+ "npm-index(7) -- 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)
+ writeLines(files, 1, "Command Line Documentation")
+ writeLines(files, 3, "API Documentation")
+ writeLines(files, 5, "Files")
+ writeLines(files, 7, "Misc")
+}
- console.log("# API Documentation")
- apidocs.forEach(writeLine)
+function writeLines (files, sxn, heading) {
+ console.log("# %s\n", heading)
+ files.filter(function (f) {
+ return f[0] === sxn
+ }).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]
+ var content = fs.readFileSync(doc, "utf8").split("\n")[0].split("-- ")[1]
- console.log("## npm-%s(%d)\n", d, sxn)
+ console.log("## %s(%d)\n", d, sxn)
console.log(content + "\n")
}