프로젝트

일반

사용자정보

통계
| 개정판:

root / HServer / 00.Server / 00.Program / node_modules / mongoose / website.js

이력 | 보기 | 이력해설 | 다운로드 (2.28 KB)

1
var fs = require('fs');
2
var jade = require('jade');
3
var package = require('./package');
4
var linktype = require('./docs/helpers/linktype');
5
var href = require('./docs/helpers/href');
6
var klass = require('./docs/helpers/klass');
7

    
8
const markdown = require('marked');
9
const highlight = require('highlight.js');
10
markdown.setOptions({
11
  highlight: function(code) {
12
    return highlight.highlight('JavaScript', code).value;
13
  }
14
});
15

    
16
jade.filters.markdown = markdown;
17

    
18
function getVersion() {
19
  return require('./package.json').version;
20
}
21

    
22
function getLatestLegacyVersion(startsWith) {
23
  var hist = fs.readFileSync('./History.md', 'utf8').replace(/\r/g, '\n').split('\n');
24
  for (var i = 0; i < hist.length; ++i) {
25
    var line = (hist[i] || '').trim();
26
    if (!line) {
27
      continue;
28
    }
29
    var match = /^\s*([^\s]+)\s/.exec(line);
30
    if (match && match[1] && match[1].startsWith(startsWith)) {
31
      return match[1];
32
    }
33
  }
34
  throw new Error('no match found');
35
}
36

    
37
// use last release
38
package.version = getVersion();
39
package.latest4x = getLatestLegacyVersion('4.');
40
package.latest38x = getLatestLegacyVersion('3.8');
41

    
42
var filemap = require('./docs/source');
43
var files = Object.keys(filemap);
44

    
45
function jadeify(filename, options, newfile) {
46
  options = options || {};
47
  options.package = package;
48
  options.linktype = linktype;
49
  options.href = href;
50
  options.klass = klass;
51
  jade.renderFile(filename, options, function(err, str) {
52
    if (err) {
53
      console.error(err.stack);
54
      return;
55
    }
56

    
57
    newfile = newfile || filename.replace('.jade', '.html');
58
    fs.writeFile(newfile, str, function(err) {
59
      if (err) {
60
        console.error('could not write', err.stack);
61
      } else {
62
        console.log('%s : rendered ', new Date, newfile);
63
      }
64
    });
65
  });
66
}
67

    
68
files.forEach(function(file) {
69
  var filename = __dirname + '/' + file;
70
  jadeify(filename, filemap[file]);
71

    
72
  if (process.argv[2] === '--watch') {
73
    fs.watchFile(filename, {interval: 1000}, function(cur, prev) {
74
      if (cur.mtime > prev.mtime) {
75
        jadeify(filename, filemap[file]);
76
      }
77
    });
78
  }
79
});
80

    
81
var acquit = require('./docs/source/acquit');
82
var acquitFiles = Object.keys(acquit);
83
acquitFiles.forEach(function(file) {
84
  var filename = __dirname + '/docs/acquit.jade';
85
  jadeify(filename, acquit[file], __dirname + '/docs/' + file);
86
});