thoughts/node_modules/mongoose/website.js
node_modules/mongoose/website.jsRaw
1
2var fs= require('fs')
3var jade = require('jade')
4var package = require('./package')
5var hl = require('./docs/helpers/highlight')
6var linktype = require('./docs/helpers/linktype')
7var href = require('./docs/helpers/href')
8var klass = require('./docs/helpers/klass')
9
10// add custom jade filters
11require('./docs/helpers/filters')(jade);
12
13// use last release
14package.version = getVersion();
15package.unstable = getUnstable(package.version);
16
17var filemap = require('./docs/source');
18var files = Object.keys(filemap);
19
20files.forEach(function (file) {
21 var filename = __dirname + '/' + file;
22 jadeify(filename, filemap[file]);
23
24 if ('--watch' == process.argv[2]) {
25 fs.watchFile(filename, { interval: 1000 }, function (cur, prev) {
26 if (cur.mtime > prev.mtime) {
27 jadeify(filename, filemap[file]);
28 }
29 });
30 }
31});
32
33function jadeify (filename, options) {
34 options || (options = {});
35 options.package = package;
36 options.hl = hl;
37 options.linktype = linktype;
38 options.href = href;
39 options.klass = klass;
40 jade.renderFile(filename, options, function (err, str) {
41 if (err) return console.error(err.stack);
42
43 var newfile = filename.replace('.jade', '.html')
44 fs.writeFile(newfile, str, function (err) {
45 if (err) return console.error('could not write', err.stack);
46 console.log('%s : rendered ', new Date, newfile);
47 });
48 });
49}
50
51function getVersion () {
52 var hist = fs.readFileSync('./History.md','utf8').replace(/\r/g, '\n').split('\n');
53 for (var i = 0; i < hist.length; ++i) {
54 var line = (hist[i] || '').trim();
55 if (!line) continue;
56 var match = /^\s*([^\s]+)\s/.exec(line);
57 if (match && match[1])
58 return match[1];
59 }
60 throw new Error('no match found');
61}
62
63function getUnstable(ver) {
64 ver = ver.replace("-pre");
65 var spl = ver.split('.');
66 spl = spl.map(function (i) {
67 return parseInt(i);
68 });
69 spl[1]++;
70 spl[2] = "x";
71 return spl.join('.');
72}