var path = require('path'), fs = require('fs'), Script = process.binding('evals').Script, dust = require('../lib/dust'), root = path.join(path.dirname(__filename), ".."); var src = fs.readFileSync(path.join(root, 'docs/index.dust.html'), 'utf8'); dust.loadSource(dust.compile(src, "index")); var sd = process.compile(fs.readFileSync(path.join(root, 'vendor/showdown.js'), 'utf8'), 'showdown.js'); var inliners = { css: function(names) { var out = ""; return out; }, js: function(names) { var out = ""; return out; } } var context = { inline: function(chk, ctx, bod, prm) { var names = prm.names.split(' '); return chk.write(inliners[prm.ext](names)); }, tmpl: function(chk, ctx, bod, prm) { var names = prm.names.split(' '); var out = ""; return chk.write(out); }, md: function(chk, ctx, bod, prm) { var converter = new sd(); return chk.tap(function(data) { return converter.makeHtml(data); }).render(bod.block, ctx).untap(); }, file: function(chk, ctx, bod, prm) { var name = prm.name; return chk.write(fs.readFileSync(path.join(root, 'docs', name), 'utf8')); } } function render() { dust.render("index", context, function(err, output) { if (err) throw err; fs.writeFileSync(path.join(root, 'index.html'), output); }); } render();