arnaucube
arnaucube/thoughtsPublic Self-hosted repository
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}