'use strict' var Handlebars = require('handlebars') var Remarkable = require('remarkable') var fs = require('fs') var md = new Remarkable('full', { html: true, linkify: true, typographer: true }) Handlebars.registerHelper('md', function (src) { var content = fs.readFileSync(src).toString() return new Handlebars.SafeString( md.render(content) ) }) function compileTemplate(cb) { fs.readFile('./src/index.hbs', function (err, content) { if (err) return cb(err) cb(null, Handlebars.compile(content.toString())) }) } compileTemplate(function (err, template) { if (err) throw err fs.writeFile('./public/index.html', template(), function (err) { if (err) throw err console.log('Wrote public/index.html') }) })